MBRパーティションスキームを使用してfdisk
(バージョン2.20.1)のプライマリパーティションまたは拡張パーティションを作成すると、セクター2048から開始します。覚えている場合、古いバージョンのはfdisk
セクター63で最初のパーティションを開始しました。 512バイトの場合、最初のパーティションがセクター2で開始しないのはなぜですか?これらの2047セクターには何が保持されていますか?ブートローダーのいくつかの段階?
MBRパーティションスキームを使用してfdisk
(バージョン2.20.1)のプライマリパーティションまたは拡張パーティションを作成すると、セクター2048から開始します。覚えている場合、古いバージョンのはfdisk
セクター63で最初のパーティションを開始しました。 512バイトの場合、最初のパーティションがセクター2で開始しないのはなぜですか?これらの2047セクターには何が保持されていますか?ブートローダーのいくつかの段階?
回答:
MBRとファイルシステムの最初のセクターの間の古い32KiBギャップはDOS互換性領域またはMBRギャップと呼ばれます。DOSはパーティションがシリンダー境界で開始する必要があるためです(各シリンダーには64セクター、つまり64セクター* 512バイト/セクター= 32KiBスペース) 。
レガシーGRUB(GRUB1)は、それを使用してGRUB1 1.5ステージブートローダーをhttp://www.gnu.org/software/grub/manual/grub.html#BIOS-installationにインストールすることができます。
追加リンク:
grub-install -v
私GRUB2がインストールされていると私は実行している場合dd if=/dev/sda obs=1 ibs=1 skip=512 count=2047 2>/dev/null | strings -n4
、そこ「ロード」、「はGeom」、「読む」、「エラー」がこの地域にあり、彼らはGRUB2に属している必要があります。
これはパフォーマンスの最適化であり、ハードウェアだけではLinuxとはまったく関係ありません。最近のディスク(いわゆる「4K」ディスク)は、512ではなく4096バイトの物理セクターを使用します。単一の512バイトセクターをアドレス指定できますが、パーティション(またはファイルシステム)が4Kにアライメントされていない場合、パフォーマンスに重大な影響を与える可能性があります。
この要件には、セクター64の開始で十分です。2048への増加は予防的なようです(たとえば、ディスクを後でGPTに変換する必要がある場合に、UEFIブートパーティションをそこに配置できるようにします)。
fdisk
に導入されました。Windows Vistaは2006-11年にリリースされました。util-linux-ng-2.17.1/fdisk/fdisk.c
update_sector_offset(void)