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などの仮想化ソフトウェアからイメージディスクを起動させることができます。


関連ページ