GRUB 入りフロッピーイメージを作る
GRUB で起動する OS を書きたいとき用のメモ。とりあえず、Ubuntu で。GRUB2 ではないのでその辺注意。
準備
いろいろ必要なものを入れる。
% sudo aptitude install e2tools grub e2fsprogs
e2tools は mtools*1 の ext2 版みたいなの。なくても何とかなるけどたぶん、自動化はしにくくなる。
あと、fuseext2 とか入れておくといちいち root にならなくてもイメージをマウントできて良いかもしれない。
ファイルシステムを作る
とりえずイメージを作る。
% dd if=/dev/zero of=fd.img bs=512 count=2880 % mkfs.ext2 -F fd.img
イメージ上にファイルシステムができたら、e2tools を使って、stage1 stage2 をコピー。
% e2mkdir fd.img:/boot % e2cp /boot/grub/stage{1,2} fd.img:/boot
GRUBをインストール
device map を指定して、grub shell を起動し、grub の stage1 と stage2 を書きこむ。
% cat > device.map <<EOD (fd0) fd.img EOD % grub --batch --device-map=device.map <<EOD install (fd0)/boot/stage1 (fd0) (fd0)/boot/stage2 (fd0)/boot/menu.cfg EOD
これでたぶん完成。あとは OS のイメージをコピーするとかmenu.cfg をいじって qemu で確認とか。
*1:っていまどき知らない人が多そうだけど