UDF и fstab (без UUID)

UDF и fstab (без UUID)

В поисках идеальной файловой системы для обмена файлами между множеством компьютеров с множеством различных ОС я принял решениеэтот ответи установил файловую систему UDF на свой USB-накопитель.

Сначала я очистил диск, чтобы убедиться, что на нем нет остатков, которые могли бы сбить с толку систему, считывающую данные с диска:

dd if=/dev/zero of=/dev/sdb bs=1M

Затем я отформатировал диск, используя udftoolsAUR из Arch Linux:

sudo mkudffs --media-type=hd --blocksize=512 /dev/sdb

Очевидно, диск был в формате /dev/sdb.

Теперь мой вопрос, поскольку диск не имеет традиционных разделов или даже таблицы разделов, насколько я знаю, у него нет UUID. Поэтому я не могу добавить его в fstab, что меня довольно раздражает.

Что я могу сделать, чтобы исправить это (например, есть ли альтернативный способ установить точку монтирования и параметры по умолчанию или альтернативный вариант разбиения на разделы)?

решение1

Выберите размер блока не менее 2 КБ (это значение по умолчанию) и добавьте его --vid=к своим mkudffsпараметрам. (Похоже, что blkidfrom util-linuxне справляется с блоками меньшего размера.)

$ mkudffs --media-type=hd --vid=мой-диск /dev/sdj
$ blkid /dev/sdj
/dev/sdj: МЕТКА="my-drive" ТИП="udf"

Теперь вы можете использовать LABEL=my-driveв /etc/fstab.

решение2

Если вам нужна blocksize=512совместимость с Windows, есть исправление, которое позволяет распознавать util-linuxобновления как метку на любом размере блока. Оно еще не вошло в выпущенную версию; оно было зафиксировано 1 марта 2013 года. Также есть ошибка в модуле ядра, которая не позволяет использовать раздел размером более 128 ГБ — исправление для этого было зафиксировано в основной ветке в начале февраля и только что зафиксировано в ветках 3.0-stable, 3.4-stable и 3.8-stable.blkidvidudf

решение3

Убедитесь, что вы используете --blocksize=512 (если у вас нет собственного диска 4k). Размер блока UDF должен соответствовать логическому (секторному) размеру диска, который составляет 512 байт. Более старые версии mkudfffs не могут определить логический размер сектора и возвращаются к значению CD/DVD 2048 (что вызывает проблемы для других ОС, поскольку они не ожидают размер блока CD/DVD на жестких дисках).

blkid из util-linux v2.30 также предоставляет UUID для файловых систем UDF, поэтому просто обновите util-linux до новой версии, и тогда вы сможете использовать UUID в /etc/fstab. UUID вычисляется из идентификатора набора томов UDF, который по определению UDF имеет первые 16 символов, которые уникальны, нетривиальны, нефиксированы и подходят для гарантии уникальности идентификатора.

Также mkudffs начиная с версии 1.1 имеет опцию --uuid= для указания собственного UUID.

решение4

Есть ли в вашем дистрибутиве /dev/disk/by-*символические ссылки?

Среди них вы, вероятно, сможете найти способ идентифицировать USB-флешку с UDF таким образом, который не будет меняться, как это /dev/sd*возможно.

Связанный контент