GRUBが使用できる最大ディスクサイズは何ですか?

GRUBが使用できる最大ディスクサイズは何ですか?

バグ/特異点がなく、セクタサイズが512で、LBA48アドレスが指定され、拡張ディスクドライブをサポートするかなり近代的なBIOS(2005-)を想定します。

要求する理由は、INT 13h 拡張読取り呼び出しによる単純読取りの場合、オフセットセクタが使用可能なディスクより 8ZiB 大きく、LBA48 アドレス指定範囲外であるためです。しかし、より小さな制限への参照だけが見つかりましたが、GRUBは実際に何をサポートできますか?

boot.img/diskboot.imgで使用されるブロックリストは、どのサイズフィールドで構成されていますか?

ベストアンサー1

GNU GRUB(とも呼ばれるgrub2)ブロックリストエントリには、LBA番号の64ビット()フィールドがあるため、uint64_t8バイトの値を格納できます。ただし、ほとんどの場合、制限要因は BIOS INT13h 拡張読み取りルーチンが許可することです。デフォルトのハードウェア制限がLBA48の場合、制限は2 ^ 48ブロックになり、これは512バイトのブロックサイズから128PiBまで動作します。または約144ペタバイトです。

GRUBレガシー(GRUB 0.9x)について話している場合、そのブロックリストは32ビット(uint32_t)LBA値のみを保持できます。

ファームウェアディスクアクセスAPIが9.4ZBに制限され、grubx64.efiUUIDで識別されたGPTパーティションから特別に名前付きファイルのみをロードするようにファームウェアに指示できるUEFIシステムでは、GRUBの制限がまったく適用されない場合があります。もちろん、ファームウェアがサポートしていないファイルシステムタイプを使用している場合は、そのサイズのファイルシステムをサポートできるGRUBのファイルシステムドライバに頼る必要があります。 :-)

おすすめ記事