Во-первых, я полностью обнулил диск перед созданием файловой системы UDF с помощью:
dd if=/dev/zero of=/dev/sdx bs=512
Это делается для того, чтобы избежать каких-либо оставшихся суперблоков или других метаданных, которые могут запутать определение типа файловой системы операционной системы (необходимо по крайней мере обнуление первого сектора, чтобы стереть таблицу разделов; первые несколько секторов не используются UDF, а оставшиеся таблица разделов может действительно запутать вещи). Вы также можете использовать count=1
переключатель на команде dd, чтобы быстрее обнулить только первые 512 байт диска (где обычно находится MBR), хотя это не было проверено.
Чтобы создать файловую систему, я использовал команду:
mkudffs --media-type=hd --blocksize=512 /dev/sdx
mkudffs
Команда станет доступной в дистрибутивах Linux на основе Debian (таких как Ubuntu) после установки udftools
пакета:
sudo apt-get install udftools
Размер блока по умолчанию для mkudffs
2048, что неправильно для флэш-накопителя USB (который использует 512-байтовые сектора). Поскольку размер блока используется для поиска метаданных файловой системы, использование неправильного размера блока может привести к тому, что он не будет распознан как файловая система UDF (так как привязка не будет там, где ожидает драйвер файловой системы). Обратите внимание, что mkudffs
справочная страница неверна; 512 является допустимым значением для размера блока (и код явно принимает его).
Я также использовал весь диск вместо раздела; это должно быть более совместимым.
Результат моего тестирования до сих пор:
- Linux с самым последним ядром (2.6.31, из Ubuntu 9.10): работает.
- Linux с более старым ядром: требуется
bs=512
опцияmount
, потому что она неправильно использовала 2048 вместо размера сектора устройства (исправлено в коммите 1197e4d ). - Windows Vista: работает.
- Совершенно новый Mac: работает.
- Windows XP: умеет читать нормально, но выдает «доступ запрещен» при попытке записи; также кажется, что диск заполнен.
Хотя я до сих пор не пытался создать в нем файл размером более 4G, я не вижу причин, по которым он не будет работать.
Учитывая, что он отлично работал на всех последних операционных системах (требуется только монтирование вручную в Linux, которое больше не понадобится, как только выйдут Ubuntu 9.10 и Fedora 12), и работал только для чтения в Windows XP (что было неожиданностью). для меня; я ожидал, что он вообще не распознает файловую систему), использование UDF вместо FAT32 или NTFS в больших USB-флешках кажется хорошей идеей.