GRUBブートフロッピーの作成
LinuxでGRUBブートフロッピーを作成する。
GRUB(Grand Unified Bootloader)はマルチブート仕様(様々なOSをブートすることができる)ブートローダーです。
フロッピーディスクイメージにGRUBを導入することで、自作OS用ブートローダとして利用することができます。
1. フロッピーのイメージファイルを作成する。
1.44MBのイメージデータを作成する
$ dd if=/dev/zero of=fd.img bs=1k count=1440
MS-DOSファイルシステムを作成する
$ sudo mkdosfs fd.img
2. GRUB関連ファイルをイメージファイルにコピーする。
イメージファイルをマウントします。
$ mkdir floppy
$ sudo mount -t vfat -o loop fd.img floppy
GRUB関連ファイルをコピーします。
$ sudo mkdir -p ./floppy/boot/grub
$ sudo cp -p /usr/lib/grub/i386-pc/*stage* floppy/boot/grub
マウントを解除します。
$ sudo umount floppy
3. GRUBシェルからセットアップを行う。
$ sudo grub --batch
Probing devices to guess BIOS drives. This may take a long time.
GNU GRUB version 0.97-4vl6 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename.]
grub> device (fd0) fd.img
device (fd0) fd.img
grub> root (fd0)
root (fd0)
Filesystem type is fat, using whole disk
grub> setup (fd0)
setup (fd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/fat_stage1_5" exists... yes
Running "embed /boot/grub/fat_stage1_5 (fd0)"... failed (this is not fatal)
Running "embed /boot/grub/fat_stage1_5 (fd0)"... failed (this is not fatal)
Running "install /boot/grub/stage1 (fd0) /boot/grub/stage2 p /boot/grub/grub.conf "... succeeded
Done.
grub> quit
quit
以上でGRUBブートフロッピーが完成します。
VirtualBoxなどの仮想化ソフトウェアからイメージディスクを起動させることができます。