Universal Disk Format ( UDF ) — это открытая , нейтральная к производителю файловая система для хранения компьютерных данных для широкого спектра носителей. На практике она наиболее широко используется для DVD и более новых форматов оптических дисков , вытесняя ISO 9660. Благодаря своей конструкции она очень хорошо подходит для инкрементных обновлений как на однократно записываемых , так и на перезаписываемых оптических носителях . UDF была разработана и поддерживается Ассоциацией технологий оптического хранения (OSTA).
С инженерной точки зрения универсальный формат диска представляет собой профиль спецификаций, известных как ISO/IEC 13346 и ECMA-167. [4]
Обычно программное обеспечение для создания файлов UDF осваивает файловую систему UDF в пакетном процессе и записывает ее на оптический носитель за один проход. Но при пакетной записи на перезаписываемый носитель, такой как CD-RW , UDF позволяет создавать, удалять и изменять файлы на диске так же, как файловая система общего назначения на сменных носителях, таких как дискеты и флэш-накопители . Это также возможно на носителях с однократной записью, таких как CD-R , но в этом случае пространство, занимаемое удаленными файлами, не может быть восстановлено (и вместо этого становится недоступным).
Многосессионное мастеринг также возможно в UDF, хотя некоторые реализации могут не поддерживать чтение дисков с несколькими сессиями. [c]
Ассоциация технологий оптического хранения данных стандартизировала файловую систему UDF, чтобы сформировать общую файловую систему для всех оптических носителей: как для носителей только для чтения , так и для перезаписываемых оптических носителей. При первой стандартизации файловая система UDF была направлена на замену ISO 9660 , обеспечивая поддержку как носителей только для чтения, так и носителей с возможностью записи. После выпуска первой версии UDF Консорциум DVD принял ее в качестве официальной файловой системы для DVD-Video и DVD-Audio . [5]
UDF разделяет базовый формат дескриптора тома с ISO 9660. Формат «UDF Bridge» определен с версии 1.50, так что диск может также содержать файловую систему ISO 9660, ссылающуюся на файлы в части UDF. [6]
Было выпущено несколько версий UDF: [5] [7]
Ревизии UDF внутренне кодируются как двоично-десятичные числа ; например, Ревизия 2.60 представлена как 0x0260 . [13] : 23 В дополнение к объявлению собственной ревизии, совместимость для каждого тома определяется минимальными ревизиями чтения и минимальной записи, каждая из которых сигнализирует о требованиях к этим операциям, чтобы они были возможны для каждой структуры в этом образе. Ревизия «максимальной записи» дополнительно записывает наивысший уровень поддержки UDF всех реализаций, которые записывали в этот образ. [13] : 34 Например, том UDF 2.01, который не использует потоковые файлы (введенные в UDF 2.00), но использует VAT (UDF 1.50), созданный реализацией, поддерживающей UDF 2.60, может иметь ревизию, объявленную как 0x0201 , минимальную ревизию для чтения, установленную как 0x0150 , минимальную ревизию для записи как 0x0150 и максимальную для записи как 0x0260 .
Стандарт UDF определяет три варианта файловой системы , называемые «сборками». Это:
Представленный в первой версии стандарта, этот формат может использоваться на любом типе диска, допускающем произвольный доступ для чтения/записи, например, на жестких дисках , носителях DVD+RW и DVD-RAM . Метаданные (до версии 2.50) и данные файлов адресуются более или менее напрямую. При записи на такой диск в этом формате любой физический блок на диске может быть выбран для размещения новых или обновленных файлов.
Поскольку это базовый формат, практически любая операционная система или драйвер файловой системы, заявляющие о поддержке UDF, должны иметь возможность читать этот формат.
Носители с однократной записью, такие как DVD-R и CD-R, имеют ограничения при записи, поскольку каждый физический блок может быть записан только один раз, и запись должна происходить постепенно. Таким образом, простая сборка UDF может быть записана на CD-R только путем предварительного мастеринга данных и последующей записи всех данных одним куском на носитель, аналогично тому, как файловая система ISO 9660 записывается на CD-носитель.
Чтобы использовать CD-R виртуально как жесткий диск, благодаря чему пользователь может добавлять и изменять файлы на CD-R по своему желанию (так называемый «доступ к букве диска» в Windows), OSTA добавила сборку VAT к стандарту UDF в своей редакции 1.5. VAT — это дополнительная структура на диске, которая позволяет осуществлять пакетную запись ; то есть переназначать физические блоки, когда файлы или другие данные на диске изменяются или удаляются. Для однократно записываемых носителей весь диск виртуализируется, что делает природу однократной записи прозрачной для пользователя; с диском можно обращаться так же, как с перезаписываемым диском.
Однократная запись на CD-R или DVD-R означает, что при удалении файла на диске данные файла все еще остаются на диске. Они больше не появляются в каталоге, но все еще занимают исходное пространство, где они были сохранены. В конце концов, после использования этой схемы в течение некоторого времени, диск будет заполнен, так как свободное пространство не может быть восстановлено путем удаления файлов. Для доступа к предыдущему состоянию диска (состоянию до удаления) можно использовать специальные инструменты, что делает восстановление возможным.
Не все диски полностью реализуют версию 1.5 или выше UDF, и поэтому некоторые из них могут не поддерживать сборки VAT.
Перезаписываемые носители, такие как DVD-RW и CD-RW, имеют меньше ограничений, чем носители DVD-R и CD-R. Секторы можно перезаписывать случайным образом (хотя и пакетами за раз). Эти носители можно полностью стереть в любое время, сделав диск снова чистым, готовым для записи на него новой файловой системы UDF или другой файловой системы (например, ISO 9660 или CD Audio ). Однако сектора носителей -RW могут со временем «изнашиваться», что означает, что их данные становятся ненадежными из-за слишком частой перезаписи (обычно после нескольких сотен перезаписей в случае с CD-RW).
Простые и VAT-сборки формата UDF можно использовать на перезаписываемых носителях с некоторыми ограничениями. Если простая сборка используется на носителе -RW, нельзя допускать изменения данных на уровне файловой системы, так как это быстро изнашивает часто используемые сектора на диске (например, для данных каталогов и распределения блоков), что затем остается незамеченным и приводит к потере данных. Чтобы разрешить изменение файлов на диске, перезаписываемые диски можно использовать как носители -R, используя сборку VAT . Это гарантирует, что все блоки будут записаны только один раз (последовательно), гарантируя, что нет блоков, которые перезаписываются чаще других. Таким образом, диск RW можно стирать и использовать повторно много раз, прежде чем он станет ненадежным. Однако в конечном итоге он станет ненадежным, и это будет нелегко обнаружить. При использовании сборки VAT носители CD-RW/DVD-RW фактически отображаются на компьютере как носители CD-R или DVD+/-R. Однако носитель можно снова стереть в любое время.
Сборка Sparing была добавлена в ревизии 1.5 для учета особенностей перезаписываемых носителей. Эта сборка добавляет дополнительную таблицу Sparing Table для управления дефектами, которые в конечном итоге возникнут на частях диска, которые были перезаписаны слишком много раз. Эта таблица отслеживает изношенные сектора и переназначает их на рабочие. Управление дефектами UDF не применяется к системам, которые уже реализуют другую форму управления дефектами, например, Mount Rainier (MRW) для оптических дисков или контроллер диска для жесткого диска.
Инструменты и накопители, которые не полностью поддерживают версию 1.5 UDF, будут игнорировать резервную таблицу, что приведет к чтению ими устаревших изношенных секторов, что приведет к извлечению поврежденных данных.
Накладные расходы , распределенные по всему диску, резервируют часть пространства для хранения данных, ограничивая полезную емкость CD -RW с исходной емкостью, например, 650 МБ, до примерно 500 МБ. [14]
Спецификации UDF [5] допускают только один набор символов OSTA CS0 , который может хранить любую кодовую точку Unicode, за исключением U+FEFF и U+FFFE. Дополнительные наборы символов, определенные в ECMA-167, не используются. [4] : 7.2
Начиная с Errata DCN-5157, диапазон кодовых точек был расширен до всех кодовых точек из Unicode 4.0 (или любой более новой или старой версии), что включает символы Plane 1-16, такие как Emoji . DCN-5157 также рекомендует нормализовать строки до формы нормализации C. [15]
Набор символов OSTA CS0 хранит 16-битную строку Unicode, «сжатую» в 8-битные или 16-битные блоки, которым предшествует однобайтовый тег «compID», указывающий тип сжатия. 8-битное хранилище функционально эквивалентно ISO-8859-1 , а 16-битное хранилище — это UTF-16 в big endian. Имена файлов с 8 битами на символ экономят место, поскольку требуют только половину места на символ, поэтому их следует использовать, если имя файла не содержит специальных символов, которые не могут быть представлены только 8 битами. [16]
Алгоритм не проверяет запрещенные кодовые точки и не интерпретирует суррогатные пары , поэтому, как и в случае с NTFS, строка может быть неправильно сформирована. [5] : 2.1.2, 6.4 (DCN-5157 не указывает конкретную форму хранения, но UTF-16BE — единственный известный метод хранения всего Unicode, при этом в основном обратно совместимый с UCS-2 .) [15]
Многие DVD-плееры не поддерживают никакие версии UDF, кроме версии 1.02. Диски, созданные с более новой версией, могут работать в этих проигрывателях, если используется формат моста ISO 9660. Даже если операционная система заявляет о своей способности читать UDF 1.50, она все равно может поддерживать только простую сборку и не обязательно сборки VAT или Spared UDF.
Mac OS X 10.4.5 заявляет о поддержке Revision 1.50 (см. man mount_udf ), однако она может правильно монтировать только диски простой сборки и не обеспечивает никакой поддержки виртуализации вообще. Она не может монтировать диски UDF с VAT, как видно из проблемы Sony Mavica. [17] [18] Выпуски до 10.4.11 монтируют диски с Sparing Table, но не считывают ее файлы правильно. Версия 10.4.11 исправляет эту проблему. [19] [20]
Аналогично, Windows XP Service Pack 2 (SP2) не может читать диски DVD-RW, которые используют таблицы запасных UDF 2.00 в качестве системы управления дефектами. [21] Эта проблема возникает, если система управления дефектами UDF создает таблицу запасных, которая охватывает более одного сектора на диске DVD-RW. Windows XP SP2 может распознать, что DVD использует UDF, но Windows Explorer отображает содержимое DVD как пустую папку. Для этого доступно исправление [22] , которое включено в Service Pack 3. [21]
Из-за версий и параметров UDF по умолчанию раздел UDF, отформатированный Windows, не может быть записан в macOS. С другой стороны, раздел, отформатированный macOS, не может быть напрямую записан Windows из-за требования таблицы разделов MBR . Кроме того, Linux поддерживает запись только в UDF 2.01. Скрипт для Linux и macOS под названием format-udf
обрабатывает эти несовместимости, используя UDF 2.01 и добавляя поддельный MBR; [23] для Windows лучшим решением является использование инструмента командной строки format /FS:UDF /R:2.01
.
Результатом является диск, который можно использовать для чтения/записи в различных семействах операционных систем: Windows, macOS и Linux. Этот скрипт должен работать в macOS или Linux.
UDF 1.50 поддерживается. UDF 2.0 и более поздние версии не поддерживаются.
В этих заметках о выпуске описываются изменения в фреймворках Disc Recording из OS X версии 10.4. Механизм создания контента Disc Recording теперь поддерживает запись дисков UDF 2.0 в дополнение к UDF 1.02 и 1.5.
Поддерживается чтение всех версий UDF (1.02 - 2.60) как на блочных устройствах (например, жестких дисках и USB-накопителях), так и на большинстве оптических носителей. Запись на блочные устройства, DVD-RW и DVD+RW поддерживается со следующими исключениями: (1) Невозможно записать Finder Info, Resource Fork или другие расширенные атрибуты в томах UDF версий 1.02 и 1.50; (2) Невозможно записать на зеркальный раздел метаданных.
OS X поддерживает чтение UDF версий 1.02–2.60 как на блочных устройствах, так и на большинстве оптических носителей, а также поддерживает запись на блочные устройства и носители DVD-RW и DVD+RW с использованием UDF версий 2.00–2.50 (за исключением зеркальных разделов метаданных в версии 2.50).
Добавлена поддержка UDF для оптических носителей и блочных устройств, см. mount_udf(8). Пока только для чтения.
В Windows 98 появилась новая система универсального дискового формата (UDF), доступная только для чтения, которая поддерживает чтение носителей, отформатированных в соответствии со спецификацией UDF 1.02.
32-битная файловая система UDF защищенного режима в Windows 98 реализована в соответствии с редакцией 1.02 спецификации универсального формата диска Ассоциации оптических технологий хранения (OSTA). Она обеспечивает доступ только для чтения к носителям в формате UDF, таким как DVD-диски. Файловая система UDF использует VCACHE и является динамической, не требуя настройки или статического выделения со стороны пользователя.
NT 5.0 также добавляет UDF (Universal Disk Format). ... Реализации UDF, поставляемые как в Windows 98 (UDF 1.02), так и в Windows NT 5.0 (UDF 1.50), доступны только для чтения.
Реализация файловой системы UDF в Windows 2000 соответствует стандарту ISO 13346 и поддерживает версии UDF 1.02 и 1.5. ... драйвер UDF в Windows 2000 (Udfs.sys) обеспечивает поддержку только чтения.
Драйвер UDF поддерживает версии UDF 1.02, 1.5 в Windows 2000 и версии 2.0 и 2.01 в Windows XP и Windows Server 2003. ... драйвер Windows UDF (Udfs.sys) обеспечивает поддержку только чтения. Windows не реализует поддержку других функций UDF, включая именованные потоки, списки управления доступом или расширенные атрибуты.
Драйвер UDF поддерживает версии UDF до 2.60. Драйвер Windows UDF (Udfs.sys) обеспечивает поддержку чтения-записи ... при использовании UDF 2.50 и поддержку только чтения при использовании UDF 2.60. Однако Windows не реализует поддержку некоторых функций UDF, таких как именованные потоки и списки контроля доступа.
Драйвер UDF поддерживает версии UDF до 2.60. Драйвер Windows UDF (Udfs.sys) обеспечивает поддержку чтения-записи ... при использовании UDF 2.50 и поддержку только чтения при использовании UDF 2.60. Однако Windows не реализует поддержку некоторых функций UDF, таких как именованные потоки и списки контроля доступа.