Каков тип раздела / тип файловой системы для UDF?


10

Это, вероятно, тривиально, чтобы проверить использование cfdisk на CD / DVD / Blu-Ray в формате UDF, но у меня нет ни одного из них под рукой.

Я создал раздел в формате UDF на жестком диске USB для обмена данными между компьютерами Linux и Windows (FAT не обрабатывает файлы 4 ГБ, поддержка прав доступа NTFS не стабильна в Linux). У меня сейчас только одна проблема - Windows отказывается монтировать раздел, поскольку для идентификатора типа файловой системы установлено значение «83» («Linux»). Я посмотрел довольно широко и не могу найти, какой номер мне поставить там?

(продолжение: « Каким инструментом мне следует форматировать жесткий диск как UDF? »)


2
Я не думаю, что вы получите какие-либо значимые результаты от выполнения cfdisk на CD, DVD или Blu-Ray. Разделы задаются несколькими байтами MBR, который существует на жестких дисках и жестких дисках, а не на дискетах или оптических носителях.
Джулиано

Ответы:


9

Ответ - тип раздела 06 (FAT16). Не спрашивайте меня почему, спросите Microsoft.


Спустя 5 с лишним лет этот простой ответ мне очень помог. Спасибо «user48160», где бы и где бы вы ни находились!
JakeGould

6

Оказывается, для UDF нет таблицы разделов и ей не присвоен идентификатор раздела. Эта файловая система должна охватывать весь диск, чтобы быть распознанной Windows. Форматирование жесткого диска как UDF не затрагивает существующую таблицу разделов (будьте осторожны - она ​​будет содержать устаревшую информацию, и если вы подключите диск с ее помощью, вы уничтожите данные!).

Любопытно, что UDF 2.5 и новее создает отдельные разделы (по одному или два на диск) для метаданных. Однако эти разделы также не видны в стандартной таблице разделов DOS.


1
Просто отформатированный как UDF один из (MBR) логических разделов на моем жестком диске, и Windows 7 не имела с ним проблем
MarcH

@MarcH: так какой идентификатор раздела Windows или какой-либо инструмент сообщает о наличии раздела? (были проблемы сформулировать вопрос, извините , если он плохо сформирован)
ата

@Juaco прокрутите вниз, чтобы получить ответ. Или взгляните на BOOTICE.
12:10

Некоторые инструменты для создания разделов позволяют создавать разделы без файловой системы. Именно то, что вам нужно, чтобы назначить ему букву диска в Windows, а затем UDF форматировать его.
DanMan

3

Краткий ответ: я бы предложил использовать MBR id 0x07 для разделов UDF.


Длинный ответ:

Linux не заботится об идентификаторах разделов MBR и игнорирует их (*).

Windows 2000 и новее могут назначать букву диска некоторому разделу с идентификатором PartitionType, если и только если IsRecognizedPartition (PartitionType) имеет значение true. Более того, для не-FT разделов должно быть указано, что IsFTPartition (PartitionType) имеет значение false (в противном случае этот раздел определяется как FT, а не как обычный FAT / NTFS / UDF / ...).

Условие IsRecognizedPartition (PartitionType) &&! IsFTPartition (PartitionType) применяется для следующих идентификаторов разделов MBR: 0x01, 0x04, 0x06, 0x07, 0x0B, 0x0C, 0x0E (**). Это означает, что Windows 2000 (и новая) может распознавать и использовать раздел UDF, если ID раздела MBR является одним из них. Вероятно, нет никаких других ограничений, и любая поддерживаемая файловая система принимает раздел с любым из этих идентификаторов MBR. Это означает, что эти идентификаторы MBR не используются для обнаружения файловой системы.

Но есть некоторые рекомендации от Microsoft, когда следует использовать конкретный PartitionType :

  • 0x01 - основной раздел FAT12 или логический диск (менее 32 680 секторов в томе)
  • 0x04 - раздел FAT16 или логический диск (32 680–65 535 секторов или 16–33 МБ)
  • 0x06 - раздел BIGDOS FAT16 или логический диск (33–4 ГБ)
  • 0x07 - устанавливаемая файловая система (раздел NTFS или логический диск)
  • 0x0B - раздел FAT32 или логический диск
  • 0x0C - раздел FAT32 или логический диск с использованием расширений BIOS INT 13h (***)
  • 0x0E - раздел BIGDOS FAT16 или логический диск с использованием расширений BIOS INT 13h (***)

А также значение Microsoft:

  • 0x01 - Определяет раздел с 12-битными записями FAT.
  • 0x04 - Определяет раздел с 16-битными записями FAT.
  • 0x06 - указывает огромный раздел MS-DOS V4.
  • 0x07 - Определяет раздел IFS.
  • 0x0B - указывает раздел FAT32.
  • 0x0C - Windows 95/98: указывает раздел, который использует расширенные службы INT 13.

В Википедии можно найти также некоторые рекомендации:

  • 0x01 - CHS / LBA - DOS 2.0+ - FAT12 в качестве основного раздела на первых физических 32 МБ диска ... (вместо этого используйте 0x06)
  • 0x04 - CHS / LBA - DOS 3.0+ - FAT16 с менее чем 65536 секторами (32 МБ) ... (вместо этого используйте 0x06)
  • 0x06 - CHS / LBA - DOS 3.31+ - FAT16B с 65536 или более секторами. Он должен находиться на первых физических 8 ГБ диска ... (вместо этого используйте 0x0E). Также используется для томов FAT12 и FAT16 в основных разделах, если они не находятся на первых физических 32 МБ диска.
  • 0x07 - CHS / LBA - OS / 2 1.2+, Windows NT / CE - IFS / HPFS / NTFS / exFAT / QNX
  • 0x0B - CHS / LBA - DOS 7.1+ - FAT32 с адресацией CHS
  • 0x0C - LBA - DOS 7.1+ - FAT32 с LBA
  • 0x0E - LBA - DOS 7.0+ - FAT16B с LBA

Чтобы завершить список идентификаторов, вот некоторая информация о старых системах, которые не поддерживают раздел жесткого диска в формате UDF.

Windows NT 4.0 и старше может назначать букву диска только разделам с идентификатором MBR: 0x01, 0x04, 0x06, 0x07.

Windows на базе DOS (95, 98 и ME) может назначать букву диска только разделам с идентификаторами MBR: 0x01, 0x04, 0x06, 0x0B, 0x0C, 0x0E. Сама MS-DOS может получить доступ только к разделам с идентификаторами MBR: 0x01, 0x04, 0x06. Обратите внимание, что эти системы используют идентификатор раздела MBR для обнаружения файловой системы. Идентификатор раздела MBR должен соответствовать файловой системе раздела.

Вывод:

Посмотрите на размер раздела: 0x01 и 0x04 следует использовать только для разделов на первых 32 МБ диска. 0x06 только в первых 8 ГБ диска. 0x0B для CHS-адресации, которая имеет ограничение на 8 ГБ дисков. Таким образом, без таких ограничений только идентификаторы: 0x07, 0x0C и 0x0E. Поскольку 0x0C и 0x0E используются для разделов FAT, я бы предложил выбрать 0x07 . Он предназначен для разделов IFS (устанавливаемая файловая система) и, согласно Википедии, Microsoft добавила поддержку UDF в Windows 2000 IFS API. Использование 0x0C или 0x0E приведет к тому, что системы на базе DOS будут показывать этот раздел как FAT, даже если он будет отформатирован как UDF. Разделы с идентификатором MBR 0x07 в этих системах скрыты. Они не поддерживают UDF, поэтому лучше выбрать 0x0C или 0x0E.

GPT:

О разметке разделов GPT не может быть и речи, но она имеет ту же проблему, что и MBR. Для UDF не назначен GUID раздела (эквивалент GPT для идентификатора MBR). Поскольку Windows XP x64 поддерживает UDF и может распознавать раздел данных GPT только с GUID EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (Microsoft Basic Data Partition), это единственный возможный выбор для GPT.

Источники:

(*) Существует одно исключение: идентификаторы MBR 0x05, 0x0F и 0x85 используются для обнаружения расширенных разделов MBR.
(**) Определения этих двух вызовов можно найти в файле WinIoCtl.h, поскольку они объявлены как макросы C.
(***) Расширения BIOS INT 13h означают использование LBA вместо CHS.


На этой странице указано, что разделы 0x0E должны быть меньше 2 ГиБ. Это означает, что для UDF это должно быть 0x07 или 0x0C. Последнее звучит лучше для меня, особенно когда вы читаете связанную страницу. Впечатляющие исследования, снимаю шляпу!
Милинд Р

2

На CD и DVD, с которыми я имею дело, нет таблицы разделов. На жестком диске USB вы записали таблицу разделов на носитель. Я подозреваю, что если вы отформатируете весь диск как UDF-диск без таблицы разделов, у Windows не возникнет проблем с его монтированием.

Вы не говорите, какого размера ваш USB-накопитель, и вы можете неохотно выделять весь накопитель как UDF, вы можете попробовать установить тип раздела с помощью fdisk в качестве NTFS или одного из других поддерживаемых типов MS.


Я также загружаю Linux с того же диска, поэтому мне нужен один раздел для формата, поддерживаемого Grub. Я только что узнал, что grub2 (экспериментальный) может загружать Linux из UDF, поэтому я попробую это.
Сколима

0

У меня такая же проблема. Мой жесткий диск USB 320 ГБ. Таблица разделов выглядит следующим образом:

Disk /dev/sda: 320.0 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x44fdfe06

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       27963   224612766    c  W95 FAT32 (LBA)
/dev/sda2           27964       38913    87955875    5  Extended
/dev/sda5           27964       33366    43399566    7  HPFS/NTFS
/dev/sda6           33367       38913    44556246   83  Linux

Раздел sda5 является UDF rev. 1.5 и плечо быть читаемым в Windows XP и выше. Linux, конечно, правильно читает. Windows, однако, в замешательстве. Он распознает раздел как NTFS, а затем предполагает, что это необработанный раздел.

Мой эксперимент с UDF на pendrive показал, что системы склонны путать UDF с FAT. Они интерпретируют UDF как FAT. Это должно быть довольно большое сходство, потому что я вижу структуру каталогов случайных символов. Linux говорит, что диск поврежден, но не отказывается его использовать.

Я думаю, что UDF (по крайней мере, версия 1.5) не очень хорошо поддерживается на USB-накопителях.


1
Если на носителе раньше была FAT, могут остаться остатки, вызывающие смешение UDF с FAT. Вы должны убедиться, что FAT уничтожен / обнулен перед форматированием с использованием UDF.
osvein
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.