2

Linuxマシンと同じように、ラズベリーパイ(SDCARDにラズビアンがロードされている)からMBRを抽出しようとしました。

dd if=/dev/<devname> of=mbr.bin bs=512 count=1

ただし、fileonmbr.binを実行すると、次のメッセージが表示されます:-

mbr.bin: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 114688 sectors; partition 2: ID=0x83, starthead 0, startsector 122880, 15400960 sectors, code offset 0xb8

なぜそれがであると言うのx86 boot sectorですか?

[編集]ここで起動シーケンスについても読みました。ラズベリーパイはMBRを使用しますか?

4

1 に答える 1

3

x86 ブート セクタであると表示されるのはなぜですか?

その理由は。技術的には「x86」でさえ広範すぎるため、「IBM PC-XT 互換」の方が正確ですが、最近の MBR は、長年にわたる IBM 互換のユビキタスのおかげで、最小公分母の事実上の標準の 1 つです。

ラズベリーパイはMBRを使用しますか?

はいといいえ。MBR には (16 ビット) BIOS ブートストラップ コードパーティション テーブルの両方が含まれているため、IBM 互換の BIOS* を介して起動しないものは、後者を考慮しますが、前者は無視できます。MBR と FAT フォーマットの両方のシンプルさのおかげで (30 年前のものであるため)、ファームウェアがデータ構造にたどり着き、最初のパーティションを引き出して、必要なファイルを探すのは非常に簡単です。 Pi doを含む多くのシステム-質問にリンクされているページからの引用:

また、アクティブ (起動可能) としてマークされたパーティションがないことにも注意してください。RPi ファームウェアは、最初の FAT32 パーティション (通常の MBR) でファイル bootcode.bin を探すようにコーディングされています。パーティションのブート プロセスは実行されません。

複雑な BIOS チェーン ブートストラップ セットアップ全体は、128k の RAM を搭載した 16 ビット マシンの遺産です。EFI と GPT のおかげで、ROM BASIC やオーディオ カセット インターフェースなど、そのマシンの他の機能と同じ道をたどることができました ;)


* 最近のほとんどの x86 PC を含みます。これは、EFI が「8086 のふりをして 16 ビット リアル モードで起動する」というばかげたことを処理するためです。

于 2014-06-06T08:57:47.863 に答える