GRUB 2(1.96)からハードディスク上のライブCDを起動するテスト
GRUB 2はISO9660ファイルシステムを扱うことができ、その中に入っているLinuxカーネルを起動することができる。しかし、この機能があるからといって、CDブートの感覚でハードディスク上のISO9660ファイルから起動できるというわけではない。*1使用するのは、ISO9660ファイルからの起動をサポート*2するライブCDである必要がある。ここで扱うsiduxというDebian sid(不安定版)ベースのライブCDは、ISO9660ファイルからの起動をサポートしている。
siduxの起動
今回は2008-01版の
ftp.tw.debian.org/pub/Sidux/release/sidux-2008-01-nyx-kde-lite-i386-200804112335.iso
を使用した。
[任意]ファイル名: /etc/grub.d/25_sidux
#! /bin/sh -e # -*- encoding: utf-8 -*- prefix=/ exec_prefix=${prefix} libdir=/lib #libdir=/usr/lib . ${libdir}/grub/update-grub_lib dev="(hd0,1)" # ISOファイルを含むパーティションを指定 isopath="/sidux-2008-01-nyx-kde-lite-i386-200804112335.iso" # ISOイメージのパス name="ライブCD (sidux)" vga="0x317" kernel_version="2.6.24-2.6.24.4.slh.5-sidux-686" echo "Add sidux \"${name}\"" >&2 cat << EOF menuentry "${name}" { loopback loop ${dev}${isopath} linux (loop)/boot/vmlinuz-${kernel_version} lang=ja boot=fll quiet vga=${vga} fromiso=${isopath} initrd (loop)/boot/initrd.img-${kernel_version} boot } EOF
下は起動デモ。音声はなし。
Xvid形式の動画ファイルは
http://cid-3f9be5b1cd4a806c.skydrive.live.com/self.aspx/%e5%85%ac%e9%96%8b/%e3%83%87%e3%83%a2/GRUB2%e3%81%a7sidux%e3%82%92%e8%b5%b7%e5%8b%95/sidux-200801-grub2-fromiso_xvid.avi
にアップロードした。
参考URL:
失敗例
うまくいくことのほうが少なく、失敗する(対応していない)場合が多数となる。
systemrescuecd
下の設定で試したが
[任意]ファイル名: /etc/grub.d/25_systemrescuecd
#! /bin/sh -e # -*- encoding: utf-8 -*- prefix=/ exec_prefix=${prefix} libdir=/lib #libdir=/usr/lib . ${libdir}/grub/update-grub_lib dev="(hd0,1)" isopath="/systemrescuecd-x86-1.0.2.iso" name="復旧ディスクイメージ(systemrescuecd)" echo "Add systemrescuecd \"${name}\"" >&2 cat << EOF menuentry "${name}" { loopback loop ${dev}/${isopath} linux (loop)/isolinux/rescuecd boot=fll fromiso=${isopath} initrd (loop)/isolinux/initram.igz boot } EOF
「CDドライブが見つからない」状態となり処理が進まなくなった。
boot=fllもfromiso=も効果がない(initrd側が対応していない)と思われる。
knoppix
ISOイメージからの起動がサポートされているようで
- boot=fll fromiso=/[ファイル名].iso
- boot=fll bootfrom=/dev/hda1/[ファイル名].iso
- boot=fll fromhd=/dev/hda1 fromiso=/[ファイル名].iso
あたりを試したのだが、
このように、ISOファイルの検出に失敗(?)してしまった。
使用したのは下のファイル(オプションはbootfrom=で記述した状態)。
[任意]ファイル名: /etc/grub.d/25_knoppix
#! /bin/sh -e # -*- encoding: utf-8 -*- prefix=/ exec_prefix=${prefix} libdir=/lib #libdir=/usr/lib . ${libdir}/grub/update-grub_lib dev_grub="(hd0,1)" # ISOファイルを含むパーティションを指定 dev_linux="/dev/hda1" isopath="/knoppix_v5.1.1CD_20070104-20070122+IPAFont_AC20070123.iso" # ISOイメージのパス name="ライブCD (knoppix)" ramdisk_size=100000 vga="0x317" echo "Add Knoppix \"${name}\"" >&2 cat << EOF menuentry "${name}" { loopback loop ${dev_grub}${isopath} linux (loop)/boot/isolinux/linux boot=fll ramdisk_size=${ramdisk_size} init=/etc/init lang=ja apm=power-off vga=${vga} initrd=minirt.gz nomce loglevel=0 quiet bootfrom=${dev_linux}${isopath} initrd (loop)/boot/isolinux/minirt.gz boot } EOF
ファイルにも書かれているが、使用したISOファイルはknoppix_v5.1.1CD_20070104-20070122+IPAFont_AC20070123.iso。
関連記事:
- ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(全般とカーネル関係)
- ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(背景・色関係)
- ヘルパースクリプトを使用した場合のGRUB 2(1.96)の設定方法(他のOSの起動、電源オフなど)
関連URL:
- http://sidux.com/ - sidux公式サイト
- http://www.sysresccd.org/ - systemrescuecd公式サイト
- http://unit.aist.go.jp/itri/knoppix/ - 日本語版knoppixの配布サイト
使用したバージョン:
- GRUB 1.96