- ベストアンサー
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を削除、同名で同内容のファイルを作成した場合、起動できなくなりますか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>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を使用しないパターンもあるようで。
お礼
ありがとうございます。 引き続き調べてみたところ、やはりstage1の中にstage2の第1セクタの位置が書かれていて、 stage2ファイルのセクタが変わってしまうと起動しなくなるようですね。 http://www.mtl.t.u-tokyo.ac.jp/~iizuka/linux/grub.html http://www.geocities.co.jp/SiliconValley-Bay/3897/grub/grub-6.html