準・究極の選択

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を削除、同名で同内容のファイルを作成した場合、起動できなくなりますか?

A 回答 (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を使用しないパターンもあるようで。
    • good
    • 0
この回答へのお礼

ありがとうございます。

引き続き調べてみたところ、やはりstage1の中にstage2の第1セクタの位置が書かれていて、
stage2ファイルのセクタが変わってしまうと起動しなくなるようですね。

http://www.mtl.t.u-tokyo.ac.jp/~iizuka/linux/gru …
http://www.geocities.co.jp/SiliconValley-Bay/389 …

お礼日時:2013/05/18 09:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!