USBメモリからのブートその4

しつこく調べる。

ちょっと気になったので

# dd if=/dev/zero of=/dev/sda bs=446 count=1

としてMBRを0で埋めたUSBメモリで起動してみたところ
(パーティションテーブルより前を0で埋めた)
何事も無かったかのように第1パーティションの先頭からブートシーケンスが始まった。

BIOS
↓
FATパーティションのブートセクタ

と遷移したっぽい。
MBRがスルーされている。
道理でうまく行かないわけだ。
MBRを通っていないとすると

ケース1 GRUBMBRにインストールした場合

生のままのfatブートセクタに処理が進み、"this not a bootable disk"で停止する。

ケース2 GRUBのstage1とstage2を直接ライト

パーティションテーブルが無いから先頭から処理か?

ケース3 syslinux

fatブートセクタからシーケンスが進んで正常起動


となるか。
手元のAMDの自作機とDELLのノートinspiron mini9が同じ動作をしていることから
USBブートの時はMBRを通らないというのは、わりとありがちな動作かもしれない。
となれば

MBR
↓
パーティションのブートセクタ

となるようにしてブートセクタから独立して起動できるように
しておけばMBRを通っても通らなくてもブートできるはずだ。


調べてみるとまさにこれに相当する情報があった。
マルチブートするなら2段階ブート方式に統一しよう
http://wikiwiki.jp/disklessfun/?multipleboot


なるほど、
grubMBRからパーティションのブートセクタをスルーして
シーケンスを進めるのが混乱の一因であるのはたしかにそうだ。


MBMをMBRにインストールするパッケージ
http://wikiwiki.jp/disklessfun/?mbm#inst-pack


これで

MBR(MBM)
すきま(MBMの一部)
PBRもしくはブートセクター(GRUB stage1)
ファイルシステム(GRUB stage2)

という構成が見えてきた。
しかし、GRUBをPBRにインストールするのがうまく行かない。
もう少しなのだが。