フロッピードライブなしでのGRUBブートフロッピーの作成
stage1, stage2を生書きするやり方しか見つからなかったのでファイルシステム上に作成する方法をソースを解析しながら試してみた。
● フロッピーディスクイメージの作成
Debianの場合はまず、DOSツールをインストールする。
# apt-get install dosfstools
ddコマンドでイメージファイルを作成する。
# dd if=/dev/zero of=floppy.img bs=1k count=1440
作成したイメージファイルをFATでフォーマットする。
# mkdosfs floppy.img
floppy.imgをループバックデバイスとして適当なディレクトリィにマウントする。
# mount -t vfat floppy.img mnt/fd -o loop
● GRUB設定ファイルの作成
マウントディレクトリィを通じてイメージファイルへFATとしてアクセスできるようになったので、必要なファイルをコピーする。
# cd mnt/fd/boot/grub
# cp /usr/lib/grub/i386-pc/stage1 .
# cp /usr/lib/grub/i386-pc/stage2 .
#cp /boot/grub/device.map .
stage1,stage2は/boot/grubにあるものではなく、/usr/lib/grub/i386-pcより持ってくる。# cp /usr/lib/grub/i386-pc/stage1 .
# cp /usr/lib/grub/i386-pc/stage2 .
#cp /boot/grub/device.map .
Debianの場合は、/boot/grubにdevice.mapがあるが、ない場合は以下のようにして作成する。
# grub --device-map=device.map
grub> quit
grubを--device-mapオプションを指定して立ち上げ、すぐに終了する。grub> quit
これでカレントディレクトリィに、device.mapが作成される。
続いてgrubが自動作成したdevice.mapを修正する。
(fd0) /home/floppy.img
(hd0) /dev/hda
fd0のデバイスファイル名としてフロッピーイメージファイルを記述する(hd0) /dev/hda
● GRUBインストール
device.mapを指定してgrubを起動して、fd0へインストールする。
# grub --device-map=device.map
grub> root (fd0)
grub> setup (fd0)
これで、floppy.imgにgrubがインストールできた。grub> root (fd0)
grub> setup (fd0)
menu.lstをおけばメニューも出せるはず。
0 件のコメント:
コメントを投稿