
次の内部ハードドライブがあります/dev/sda
。
Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00042134
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 293048319 146523136 83 Linux
/dev/sda2 293050366 312580095 9764865 5 Extended
/dev/sda5 293050368 312580095 9764864 82 Linux swap / Solaris
xxd /dev/sda | less
これで、最初のセクタにあるMBRを簡単に見つけることができます。 ~によるとウィキペディア私の場合、VBRは最初の起動可能なパーティションの最初のセクタになければなりませんでした/dev/sda1
。ただし、最初のセクタで/dev/sda1
実行すると0のみが表示されますxxd /dev/sda1 | less
。
実際にGRUBバイナリをそこで探したいのですが、どこにありますか?
答え1
通常、そこにはインストールされていません。ほとんどの場合、GRUB(最初のステップ)はMBRにインストールされます。ただ、Linuxでは。
GRUBバージョン1は常にMBR(ステップ1.5、ファイルシステムドライバ)から30kBでわずかにオーバーフローしましたが、GRUBバージョン2を使用すると、MBRにインストールされたコードはネイティブ読み取りコード(手順1.5)を介して他のより大きなコードをロードできます。あります。セクタに保存されます(ただし、通常はGRUB 1の動作に従います。つまり、MBR以降30kBでコードをロードします)。
この30kBは、通常、分割されていない「空き」ディスク領域として使用できます。歴史的理由ディスクの最初のパーティションがセクタ63より前に始まり、MBRの後に少なくとも512 * 62 = 31kiBが残る場合は非常にまれです。
/boot
その後、通常、メニュー(menu.lst
またはgrub.cfg
ファイルシステムドライバ)、追加のファイルシステムドライバなどのメニューからいくつかのファイルをロードします。これが2段階です。
その後、オペレーティングシステムを起動するだけで十分です。
現在のVBRの場合、それ十分に信頼できないため、Linuxパーティションでは通常使用されません。ただし、MS Windowsでは通常、システム(C:\)パーティションの先頭にインストールされます。 Windowsを起動するには、GRUBがこれを行います。このプロセスをチェーンロードと呼びます。あるブートローダが別のブートローダを起動します。これはまた、そこで使用されるファイルシステムを意味します。〜しなければならないそれ以外の場合はVBRを上書きする可能性があるため、パーティションの先頭を変更せずにそのままにしてください。利用可能な「手の届かない」スペースの量はファイルシステムによって異なりますので、良い保証はありません。非常に小さい可能性が高いです。
「珍しい」場所でのステージ1.5ローディング情報前述したように、GRUB 2はディスク上のすべてのセクタからステージ1.5をロードできます。ファイルから来る可能性がありますが、いつでもファイルシステムがファイルをディスク上の他のセクタに移動することを決定することができ(さらに悪くは断片化する可能性があります)、GRUBが新しいセクタ番号を更新する必要があるため、これは危険です。 MBRごとに...
興味深い事例はGUIDパーティションテーブル(GPT).ステージ1.5に常に十分なスペース(30kB)を確保するには大きすぎます。この場合、推奨される回避策は、ファイルシステムではなくGRUBデータのステップ1.5をホストする専用の「ブートローダパーティション」(GPTが128パーティションをサポートできるため問題ではありません)を使用することです。これにより、動かずに十分なスペースを確保できます。
本当に読まなければならないWikipediaのGRUB記事ほとんどの情報をどこで入手できますか?
答え2
実際、GRUB2は通常VBRにインストールされません。この慣行に反対することをお勧めします。
これは、/boot のファイルシステムモジュールを結び付けるのに十分なスペースがないようです。歴史的に、MBRディスクはこれらのブートコードに62の「予約済み」セクタを提供してきました。 (最初のパーティションはシリンダー境界で始まるためです。シリンダーを無視しますが、4Kセクタードライブサポート、SSD / RAIDサポートなどのために完全なメガバイトにソートされます。)VBRではそれほど良い保証はありません。
GRUB2のメッセージは、パーティション(VBR)のインストールがモジュール(ファイルシステムドライバなど)のブロック番号の保存に依存する必要があることを示しています。これは信頼性が低下します。持つこれらのモジュールファイルは更新時に再インストールする必要があります。