web-dev-qa-db-ja.com

UEFI exFATパーティション?

ExFATパーティションでUEFIから起動することはできますか?

NTFSではなくFAT32である必要があることを読んでいましたが、exFATフォーマットのUSBからSteamOSを起動することができました-特にエラーがありましたが...エラーのようです。

私の診断ではexFATであったという事実を除外するようにお願いします。

--EDITこの投稿は、私がかなり遠くまで行ったように見えるwiki投稿よりも優れている可能性があるため、互換性があることはおそらく明らかです...

7
Alex KeySmith

公式UEFI仕様 [警告:13 MiB PDF]では、FAT32がサポートされているとは言われていません。「EFIシステムパーティション」と呼ばれるファイルシステムが定義されており、FAT32との互換性が「発生」し、 C12A7328-F81F-11D2-BA4B-00A0C93EC93BのGPTパーティションタイプと0xEFのMBRパーティションIDを割り当てます(以前は多かれ少なかれ使用されていませんでした)。

§12.3.1(ファイルシステムフォーマット)から:

拡張ファームウェアインターフェイスでサポートされているファイルシステムは、FATファイルシステムに基づいています。 EFIは、明示的に文書化され、テスト可能な特定のバージョンのFATを定義しています。 EFI仕様とその関連参照ドキュメントへの準拠は、EFIをサポートするために実装する必要があるFATの唯一の定義です。 EFIファイルシステムを純粋なFATと区別するために、新しいパーティションファイルシステムタイプが定義されています。

EFIには、システムパーティションにはFAT32、リムーバブルメディアにはFAT12またはFAT16の使用が含まれます。 FAT32システムパーティションは、以前のバージョンのFATを識別するために使用されたもの以外のOSType値によって識別されます。この一意のパーティションタイプは、EFI定義のファイルシステムを通常のFATファイルシステムと区別します。 EFIでサポートされるファイルシステムには、長いファイル名のサポートが含まれます。

EFIファイルシステムの定義は仕様によって維持され、OSファイルシステムドライバーまたはファイルシステムユーティリティでのエラッタまたはバリアントの解釈に対処するために時間をかけて進化することはありません。 FATの将来の拡張機能と互換性の拡張機能は、EFIファイルシステムに自動的に含まれません。 EFIファイルシステムは、EFI仕様、およびEFI仕様によって明示的に参照されるその他の仕様によって修正されるターゲットです。

したがって、サポートされているファイルシステムとしてexFATが言及されていないだけでなく、正式にESP形式がサポートされています。

では、なぜSteamOSをロードできたのですか?いくつかのオプションと可能性があります。ほとんどのEFIファームウェア実装では、ESPパーティションが定義されていない場合、すべてが検索されますが、ブート関連ファイルを検索する前に、明示的にESPパーティションをチェックしません。 EFIブートファイルをネイティブに読み取ることができるファイルシステム(通常はFAT12/16/32のみ)。ただし、それができたとしても、exFAT形式のUSBからロードするEFIアプリケーションは、そのファイルシステムを理解できません。独自のファイルシステム...ハードコードされていない限り、それを引き離すこともできます。

もう1つの可能性は、EFIマシンを使用していて、USBがexFATでフォーマットされているにもかかわらず、BIOS/MBRモードでUSBから起動してしまった可能性です。ほとんどのEFIファームウェア設定(別名「BIOS」)アプリケーションは、「CSM」または「レガシーブート」モードを有効にして、オペレーティングシステムの従来のBIOS/MBR /ブートセクターの読み込みに最優先するか、 ESPが見つからなかったか、ESPに有効なブートターゲットが含まれていなかった場合、フォールバックとしてUSB自体からSteamOSを起動するための有効なブートコードを含むブートセクターを備えたMBR。

NeoSmart Technologiesでのテストでは、CSM /レガシーブートを有効にするオプションのない、厳密にEFIのみのマザーボード/ファームウェアでも、最小限のBIOSシムを使用して外部デバイスからロードします。 CDなどからロードする場合、ほとんどの場合ネイティブEFIブートに代わる手段が必要になるため、そのコードは依然として必要です(仕様にはそのための対応策もあります)。

結論:詳細情報が必要です。 USBの最初の512または1024バイトのダンプは、マザーボードとそのEFIファームウェアおよび構成に関する情報と同様に、問題に多くの光を当てます。 EFIはexFATと互換性がなく、exFATはFAT32と下位互換性がありません(正式に互換性がないだけでなく、明示的に下位互換性を壊すため、exFATに対応していないプラットフォームはexFATデータを変更および破損しません)。そのため、エラーのあるexFATファイルシステムを介してFAT32対応のファームウェアが「進む」ほど単純ではありません。

12

マフムードの答えは良いです。しかし、私はいくつかの点を追加したいと思います:

  • ブートディスクがどのように作成されたかは明確ではありませんが、コメントの一部から、ddを使用してコピーしたと思われます(例:dd if=image.iso of=/dev/sdc)またはUnetbootinやRufusなどのユーティリティを使用して作業を行いました。どちらの場合も、ディスク上に作成したパーティションやファイルシステムは上書きされている可能性があるため、実際にディスクが何であったかは、考えたものと関係がない可能性がありますディスクがあった。
  • EFIシステムパーティション(ESP)と残りのディスクを区別することは重要です。 ESPはFATパーティションです(技術的には別の名前で、Mahmoudが言うように-しかし実際にはFATファイルシステムを作成するためのツールによって作成され、OSのFATドライバーによって操作されます)が、それはそうではありませんtは、ディスクの残りの部分がFATでなければならないことを意味します。したがって、簡単にFAT ESPおよび別の(おそらくそれよりも大きい)exFATパーティションを持つことができます。ブートローダーはESPに移行します。 exFATドライバーを含むか、exFATパーティションからカーネルやその他の重要なファイルをロードする他の方法を提供します。これにより、Windows、OS X、Linux、およびその他のEFI対応OSが起動します。
2
Rod Smith

2014回答:はい、可能ですが、通常のFAT ESPを最初に実行することなく、移植性はありません。

Rufus フラッシュドライブライターは EFI:NTFS と呼ばれる方法でNTFSまたはexFATドライブからのUEFIブートをサポートします。 READMEはそれが何をするかについては非常に明確です:小さなFAT ESPはNTFS "ESP"の後に作成されます。ファームウェアが何らかの形でNTFSをサポートしている場合、最初のパーティションにあるEFI/BOOT/BOOT{Arch}.efiで問題ありません。それ以外の場合は、2番目のESPが読み込まれます。これには NTFSまたはexFATドライバー と、それを読み込んで最初のパーティションからEFI/BOOT/BOOT{Arch}.efiを実行するプログラムが含まれます。

boot.cのコードは、NTFSまたはexFATのみを検索します。 hfsplusやGRUB2ベースのefifsドライバーセットからも利用可能ないくつかの "minix" fsのように動作するように変更することもできます。


(実際には、FAT以外のESPを使用するベンダーは見たことがありません。Appleは、古いmactelの時代にHFS +を使用していました。他の目的のためにHfsPlus.efiドライバーを出荷しています。 。)

1
Arthur2e5

私はこれが古いスレッドであることを知っていますが、UEFIブートとWindows 10のインストールで動作するものを見つけました(大きなドライブとUEFIサポートが必要な場合)。

  1. 希望するLinuxバージョンをダウンロードします(私はLinux Mintを使用しました)。
  2. Linuxバージョンで起動可能なUSBを作成する
  3. Linuxバージョンを起動します(インストールする必要はありません)
  4. FAT(32)にフォーマットするUSB​​デバイスをコンピューターに挿入します
  5. USBをFAT(32)にフォーマットする
  6. Windows 10 ISOファイルをUSBデバイスにコピーする
  7. UEFIモードでWindows 10セットアップを起動する

Windowsでは大きなドライブをFATにフォーマットできないため、Linuxを使用しました。

0
Aelneri