質問: grubのstage1_5がmbrの直後にない場合 centos 5を使っています。 grubでは通常、mbrにstage1が書き込まれ、その直後の約30kbの領域にstage1_5が書き込まれており、実行時にはstage1_5がファイルシステムを認識して/boot/grub/stage2を実行するものと理解しています。 そこで dd if=/dev/sda of=head.img bs=512 count=100 のようにしてディスク先頭を見てみたところ、mbr直後はほぼ0で埋まっており、stage1_5が見つかりませんでした。 この場合、stage1_5を飛ばしてstage2が実行されているのでしょうか? そうだとすると、stage2の位置がmbrに書き込まれているのでしょうか? rmコマンドでいったんstage2を削除、同名で同内容のファイルを作成した場合、起動できなくなりますか?
回答: >grubでは通常、mbrにstage1が書き込まれ、その直後の約30kbの領域にstage1_5が書き込まれており、実行時にはstage1_5がファイルシステムを認識して/boot/grub/stage2を実行するものと理解しています。 その認識でokかと。 >dd if=/dev/sda of=head.img bs=512 count=100 環境依存するのかどうかは不明ですが...当方のcentos5.xの環境ではmbr直後から...ですね。 od -a x -t x1 /usr/share/grub/i386-redhat/e2fs_stage1_5 | head でstage1.5のバイナリを確認。 od -a x -t x1 head.img | grep " 52 56 be" で調べると、0x000200から(mbrの次のセクタから)書き込まれています。 4kセクターなhddの場合はどうですかねぇ......。 http://www.gnu.org/software/parted/user.jp によると、grubでもstage1.5を使用しないパターンもあるようで。