Использование UDF на флешках и переносных HDD

Как сообщает нам Википедия,

Universal Disk Format (UDF), also known by the specifications ISO/IEC 13346 and ECMA-167, is a vendor-neutral and medium-agnostic file system for computer data storage. As intended, initially UDF operated mainly on optical media. Most operating systems needed special third-party software to support reading it. Nowadays, almost all operating systems natively support at least reading UDF file systems, and many support some form of writing as well. Because of this increased support, UDF is gaining popularity on non-optical media that mainly need to be exchangeable, such as Iomega REV discs, large flash media, and even on hard disk drives.

Оказывается, обычно применяемая для DVD-R/RW/RAM дисков файловая система UDF настолько «U», что её можно использовать и на жёстких дисках, и на флешках, и любых других подобных устройствах хранения.

Зачем это надо?

В связи с проблемной ситуацией вокруг принадлежащих Microsoft ключевых патентов на FAT, использование UDF видится хорошей кросс-платформенной альтернативой.

Даже если не обращать внимания на патенты, чисто с технической стороны UDF превосходит FAT по множеству показателей, самый важный из которых – поддержка файлов размером более 4 ГБ.

На замену FAT зачастую предлагается файловая система ext2. Однако, при необходимости обмена данными с ОС, отличными от GNU/Linux, она не столь практична, т.к. требует установки на каждом из компьютеров, где требуется с нею работать, соответствующего драйвера.

В случае с UDF, необходимые драйвера уже входят в состав современных ОС «из коробки»:

  1. Windows XP отформатированную в UDF флешку видит, но к сожалению записывать на неё не может (и показывает 0 байт свободного места). Во многих случаях, этого достаточно. Или, к примеру, если флешка используется для переноса дистрибутивов устанавливаемых на множество компьютеров программ, такое «железное» read-only окажется даже плюсом: никакой вирус не сможет её заразить.
  2. Windows Vista и Windows 7 обладают полной поддержкой UDF на флешках и жёстких дисках – как на чтение, так и на запись!
  3. Насколько удалось выяснить из различных источников, в MacOS X также, имеется полная поддержка UDF.

Работа с UDF в GNU/Linux

В Debian GNU/Linux, Ubuntu и прочих подобных дистрибутивах установить программы для работы с UDF очень просто:

apt-get install udftools

Предположим что устройство, где мы хотим создать UDF, прописалось в системе как /dev/sdx.

В случае, если UDF мы создаём на флешке, особых причин использовать таблицу разделов нет, ФС создавать можно непосредственно на блочном устройстве. Поэтому зануляем таблицу разделов и даём ядру задание перечитать её:

dd if=/dev/zero of=/dev/sdx bs=512 count=1
blockdev --rereadpt /dev/sdx

Однако, если мы используем переносной жёсткий диск, чтобы будучи отформатированным в UDF он нормально виделся в Windows, должны быть выполнены два условия:

  1. на нём обязательно должна быть таблица разделов;
  2. разделы, отформатированные в UDF, должны быть помечены типом 06 (FAT16). Не спрашивайте у меня, почему так, спросите лучше у Microsoft. :)

Создать соответствующий раздел и выставить ему тип вполне удобно с помощью cfdisk.

Для создаваемой ФС укажем размер блока в 512 байт, тип носителя «жёсткий диск» и то, что имена файлов следует хранить в UTF-8. В случае флешки, в качестве устройства указываем /dev/sdx целиком, в случае жёсткого диска (и первого раздела на нём) – /dev/sdx1.

mkudffs -b 512 --media-type=hd --utf8 /dev/sdx1

Чтобы проверить результат (и заодно – работоспособность автомонтирования в вашей системе), можно просто вытащить флешку или диск, и подключить их заново. HAL должен будет автоматически подмонтировать файловую систему, после чего с нею можно будет работать точно так же, как и с устройством хранения в любой другой ФС: создавать, переименовывать, удалять файлы и каталоги, и т.д.

Работа с UDF в Windows Vista или Windows 7

Чтобы создать UDF в Windows Vista/7, необходимо сначала создать на устройстве раздел с помощью «Управления дисками» – можно при этом не форматировать его, но обязательно назначить букву диска (в примере ниже - U:). Затем, воспользоваться инструментом format из командной строки:

C:\Users\username>format U: /fs:udf /q
The type of the file system is NTFS.
The new file system is UDF.

WARNING, ALL DATA ON NON-REMOVABLE DISK
DRIVE U: WILL BE LOST!
Proceed with Format (Y/N)? y
QuickFormatting 57229M
Volume label (32 characters, ENTER for none)?
Creating file system structures.
Format complete.
     55,89 GB total disk space.
     55,87 GB are available.

Дополнительная информация

Ссылки