Вероятно, это тривиально проверить с помощью cfdisk на CD / DVD / Blu-Ray в формате UDF, но у меня нет ни одного из них под рукой.
Я создал раздел в формате UDF на жестком диске USB для обмена данными между компьютерами Linux и Windows (FAT не обрабатывает файлы размером 4 ГБ, поддержка прав доступа NTFS нестабильна в Linux). У меня сейчас только одна проблема - Windows отказывается монтировать раздел, так как идентификатор типа файловой системы установлен на «83» («Linux»). Я искал довольно подробно и не могу найти, какой номер мне поставить?
(следовать за: "С помощью какого инструмента я должен отформатировать жесткий диск как UDF?")
Ответ - тип раздела 06 (FAT16). Не спрашивайте меня, почему, спросите Microsoft.
Оказывается нет таблицы разделов для UDF и ему не назначен идентификатор раздела. Эта файловая система должна охватывать весь диск, чтобы Windows могла ее распознать. Форматирование жесткого диска как UDF не затрагивает существующую таблицу разделов (будьте осторожны - она будет содержать устаревшую информацию, и если вы смонтируете свой диск, используя ее, вы уничтожите данные!).
Любопытно - UDF 2.5 и новее создает отдельные разделы (один или два на диск) для метаданных. Однако эти разделы также не видны в стандартной таблице разделов DOS.
Краткий ответ: я бы предложил использовать идентификатор MBR 0x07 для перегородок UDF.
Длинный ответ:
Linux не заботится об идентификаторах разделов MBR и игнорирует их (*).
Windows 2000 и новее может присвоить букву диска разделу с идентификатором. PartitionType если и только если IsRecognizedPartition (Тип раздела) правда. Более того, для разделов без FT должно выполняться IsFTPartition (Тип раздела) ложно (иначе этот раздел определяется как FT, а не как обычный FAT / NTFS / UDF / ...).
Состояние IsRecognizedPartition (Тип раздела) &&! IsFTPartition (Тип раздела) подать заявку на эти идентификаторы разделов MBR: 0x01, 0x04, 0x06, 0x07, 0x0B, 0x0C, 0x0E (**). Это означает, что Windows 2000 (и новые версии) может распознавать и использовать раздел UDF, если идентификатор раздела MBR является одним из них. Вероятно, нет других ограничений, и любая поддерживаемая файловая система принимает разделы с любым из этих идентификаторов MBR. Это означает, что эти идентификаторы MBR не используются для обнаружения файловой системы.
Но есть некоторые рекомендация Microsoft, когда PartitionType должен быть использован:
А также смысл от Microsoft:
В Википедии можно найти также несколько рекомендаций:
Чтобы завершить список идентификаторов, вот некоторая информация о старых системах, которые не поддерживают разделы жесткого диска в формате 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.
На компакт-дисках и DVD, с которыми я имею дело, нет таблицы разделов. На жестком диске USB вы записали на носитель таблицу разделов. Я подозреваю, что если вы отформатируете весь диск как UDF-диск без таблицы разделов, у Windows не возникнет проблем с его монтированием.
Вы не говорите, какой размер у вас USB-накопитель, и вы можете неохотно выделять весь диск как UDF, вы можете попробовать установить тип раздела с помощью fdisk как NTFS или один из других типов, поддерживаемых MS.
У меня такая же проблема. Мой жесткий диск 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 на флеш-накопителе показал мне, что системы часто принимают UDF за FAT. Они интерпретируют UDF как FAT. Должно быть довольно большое сходство, потому что я могу видеть структуру каталогов случайных символов. Linux говорит, что диск поврежден, но не отказывается его использовать.
Я думаю, что UDF (по крайней мере, версия 1.5) плохо поддерживается на USB-накопителях.