このページの翻訳:
ソースの表示
最近の変更サイトマップ

ESPの容量は512MB (512MiB)以上が推奨らしい

FreeBSDのブート環境をEFIにすべく調べてたら、EFI System Partitionについて留意すべき事が幾つかあるようなので殴り書き。公式仕様書といった一次情報は未見、かつEFI黎明期のバッドノウハウが混じってる可能性もあるので、本記事の正確性については保証できますん( ゚ω゚ )

ESPのファイルシステム:

  • FAT32が正式
  • 一部のLinuxディストリビューションはFAT16で作ることがある
  • FreeBSDのnewfs_msdos -F 32で作ったFAT32は、一部のEFI実装で正しく読めない事がある。この場合はFAT12, FAT16で作ればよい。
  • Linux/FreeBSDではFAT12, FAT16のESPでも問題ないが、WindowsはFAT32しかだめ。
  • 大抵のUEFIはどのFATでも大丈夫だが、一部の実装ではFAT32以外だとダメ。

ESPのサイズ:

  • 正式な言及はなし
  • ただし、FAT32の最小サイズは65527クラスタで、1クラスタの最小単位は1セクタであるから、(最小ESPサイズ)=(セクタサイズ)×65527 となる。(なぜかFreeBSDのnewfs_msdosコマンドは最低65525クラスタ必要と言ってくる。)すなわちセクタサイズごとの最小ESPサイズは以下となる。
    • 512バイト/セクタの場合:33549824B=32763.5KiB≒31.995MiB
    • 4096バイト/セクタの場合:268398592B=262108KiB≒255.964MiB
  • しかし一部のEFI実装は512MiB未満のESPを正しく扱えない事がある。
    • こっちの資料には、FAT32は最小クラスタサイズ4KiBで最小ボリュームサイズが512MiBとあるので、最小クラスタが4KiB想定の実装があるのかも?
  • 一方で、Windows/MacはESPを200MiBで作るので最早訳ワカメ状態(512Eドライブまでなら規格上も問題ないんだろうけど…)
  • Linuxのmkdosfsコマンドは520MiBまでのパーティションをFAT16で作るのがデフォ挙動なので要注意。
  • FAT12, FAT16の場合、最小サイズ制限はない

ファーム、OS、ストレージのそれぞれの都合が絡み合って何とも複雑な状況っぽい。

FAT32の最小容量制約を考慮すると、FreeBSD 11デフォの800KiBのESPなんぞ以ての外ですな。今後、ネイティブ4Kストレージが増えてく事を考えると、Windowsを使ってFAT32な512MiBのESPを作るのが最良か。まぁ、天下のWindows様が200MiBで確保してるんだから、それで問題ないとは思いますけどね。

参考サイト

Comments




blog/2017/2017-09-22.txt · 最終更新: 2019-09-19 11:40 by Decomo
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0