5

Можно ли загружаться из UEFI на разделе exFAT?

Я читал, что это должен быть FAT32, а не NTFS, однако я смог загрузить SteamOS с USB-диска, отформатированного в exFAT - особенно с ошибками ... но, похоже, он был ошибочным.

Я прошу исключить тот факт, что это был exFAT для моего диагноза.

- EDIT Эта публикация может быть лучше поста вики, поскольку я достаточно далеко продвинулся, так что, вероятно, вполне очевидно, что он совместим ... но это может послужить ссылкой, поскольку для этого нет очевидной ссылки.

3 ответа3

8

Официальная спецификация UEFI [предупреждение: 13 MiB PDF] даже не говорит о том, что поддерживается FAT32 - она определяет файловую систему под названием "Системный раздел EFI", которая "оказывается" совместимой с FAT32, и говорит, что ей нужно назначить тип раздела GPT C12A7328-F81F-11D2-BA4B-00A0C93EC93B и идентификатор раздела MBR 0xEF (ранее более или менее неиспользованный).

Из §12.3.1 (формат файловой системы):

Файловая система, поддерживаемая расширяемым интерфейсом прошивки, основана на файловой системе FAT. EFI определяет конкретную версию FAT, которая явно задокументирована и тестируема. Соответствие спецификации EFI и связанным с ней справочным документам является единственным определением FAT, которое необходимо реализовать для поддержки EFI. Чтобы отличить файловую систему EFI от чистой FAT, был определен новый тип файловой системы разделов.

EFI охватывает использование FAT32 для системного раздела и FAT12 или FAT16 для съемных носителей. Системный раздел FAT32 идентифицируется значением OSType, отличным от того, которое использовалось для идентификации предыдущих версий FAT. Этот уникальный тип раздела отличает файловую систему, определенную EFI, от обычной файловой системы FAT. Файловая система, поддерживаемая EFI, включает в себя поддержку длинных имен файлов.

Определение файловой системы EFI будет поддерживаться спецификацией и не будет изменяться со временем для устранения ошибок или вариантов интерпретаций в драйверах файловой системы ОС или служебных программах файловой системы. Будущие усовершенствования и улучшения совместимости с FAT не будут автоматически включены в файловые системы EFI. Файловая система EFI является целью, которая фиксируется спецификацией EFI и другими спецификациями, на которые явно ссылается спецификация EFI.

Таким образом, exFAT не только не упоминается как поддерживаемая файловая система, но также ясно, что формально поддерживается только формат ESP.

Так почему же вы смогли загрузить SteamOS? Есть несколько вариантов и возможностей; большинство реализаций встроенного программного обеспечения EFI не проверяют явно раздел ESP перед поиском файлов, связанных с загрузкой, вместо этого, если раздел ESP не определен, они будут искать все файловые системы, которые могут быть изначально прочитаны (обычно это просто FAT12/16/32) для поиска Загрузочные файлы EFI. Но даже если бы они смогли это сделать, приложение EFI, которое оно загружало бы с USB-диска в формате exFAT, не смогло бы понять собственную файловую систему ... если только оно не было жестко запрограммировано, чтобы выполнить это тоже.

Другая, более вероятная, вероятность состоит в том, что, даже если вы находитесь на EFI-машине и ваш USB-диск отформатирован в exFAT, вы закончили загрузку с USB-диска в режиме BIOS/MBR. Большинство приложений с настройками встроенного ПО EFI (также называемые "BIOS") будут иметь возможность включить режим "CSM" или "устаревшая загрузка", чтобы они могли вернуться к традиционной загрузке BIOS/MBR/ загрузочного сектора операционных систем в качестве первого приоритета или как запасной вариант в случае, если ESP не может быть найден или ESP не содержит допустимых целей загрузки. USB, который вы создали и использовали, вероятно, имеет гибридную MBR с загрузочным сектором, содержащим действительный загрузочный код для загрузки SteamOS с самого USB.

В нашем тестировании в NeoSmart Technologies даже материнские платы / прошивки, которые строго предназначены только для EFI без опции включения CSM / устаревшей загрузки, все равно будут молча использовать минимальную регулировку BIOS для загрузки с внешних устройств. Этот код по-прежнему требуется, поскольку загрузка с компакт-диска и т.д. В большинстве случаев требует альтернативы встроенной загрузке EFI (хотя в спецификации также есть приспособления).

Итог: нужно больше информации. Дамп первых 512 или 1024 байтов USB пролил бы много света на этот вопрос, как и информация о вашей материнской плате, ее прошивке и конфигурации EFI. EFI не совместим с exFAT, а exFAT не обратно совместим с FAT32 (он не только формально не совместим, он явно нарушает обратную совместимость, поэтому платформы, не поддерживающие exFAT, не разбираются и не манипулируют вашими данными exFAT), так что это не так просто, как прошивка с поддержкой FAT32, которая "пробивается" через файловую систему exFAT с ошибками.

2

Ответ Махмуда хорош; Тем не менее, я хочу добавить пару моментов:

  • Непонятно, как был создан загрузочный диск, но из некоторых комментариев я подозреваю, что вы либо использовали dd для его копирования (например, dd if=image.iso of=/dev/sdc), либо использовали утилиту типа Unetbootin или Руфус, чтобы сделать работу. В любом случае, любые разделы и файловые системы, которые вы создали на диске, могли быть перезаписаны, так что на самом деле диск мог не иметь никакого отношения к тому, что вы думали о диске.
  • Различие между системным разделом EFI (ESP) и остальной частью диска имеет решающее значение. ESP - это раздел FAT (технически под другим именем, как говорит Махмуд, но на практике он создается инструментами для создания файловых систем FAT и управляется драйверами FAT ОС), но это не означает, что остальная часть диска должна быть ЖИР. Таким образом, вы можете легко иметь FAT ESP и другой (возможно, больший) раздел exFAT. Загрузчик загружается в ESP и может содержать драйвер exFAT или другой способ загрузить ядро или другие важные файлы из раздела exFAT. Вот как загружаются Windows, OS X, Linux и другие EFI-совместимые ОС.
-1

Я знаю, что это старый поток, но для загрузки UEFI и установки Windows 10 я нашел кое-что, что работает (если вам нужны большие диски и поддержка UEFI):

  1. Загрузите Linux-версию, которая вам нужна (я использовал Linux Mint).
  2. Создайте загрузочный USB с Linux-версией
  3. Загрузите версию для Linux (не нужно устанавливать)
  4. Вставьте USB-устройство, которое вы хотите отформатировать в FAT (32), в компьютер
  5. Отформатируйте USB в FAT (32)
  6. Скопируйте ISO-файлы Windows 10 на USB-устройство
  7. Загрузите установку Windows 10 в режиме UEFI

Я использовал Linux, так как Windows не позволяет мне форматировать большие диски в FAT.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .