Можно и нужно ли использовать UDF в качестве формата жесткого диска?

32

Недавно я видел UDF, предложенный в качестве решения кроссплатформенного формата для дисковода, используемого в Linux, Mac OS X и Windows XP и выше.

Я искал здесь и не нашел того же предложения (большинство предлагают ntfs-3g, который, кажется, стоит денег и не предустановлен на Mac).

Итак, мой вопрос: как это сделано правильно, и кто-нибудь сделал это? Затем вы заполнили диск и удалили некоторые файлы, чтобы освободить место, обнаружив, что все работает как настоящий r / w формат, даже если кажется, что в основном это был формат однократной записи?

Назовите меня сумасшедшим, но мне бы очень хотелось, чтобы система UDF также автоматически монтировалась и была доступна для записи вошедшему в систему пользователю. То, что я пробовал до сих пор (форматирование udftools, как упомянуто kicsyromy), не отвечает этому желанию.

dlamblin
источник
1
Одно уточнение: ntfs-3gбесплатно. Его исходный код бесплатен (то есть доступен бесплатно). Это также бесплатно как в свободе . ntfs-3gтакое драйвер NTFS в Ubuntu! Это несколько технически сложно собрать / установить вручную в OS X, и Tuxera (его разработчик) предлагает проприетарную версию платного ПО, которая по сути является бесплатным ntfs-3gдрайвером, созданным и упакованным для легкой установки и использования в OS X. Без дополнительного драйвера ОС X будет читать (не записывать) только тома NTFS, поэтому вы правы, рассматривая другую файловую систему.
Элия ​​Каган
@EliahKagan Итак, если ntfs-3g «бесплатен», то почему Apple не включила его, чтобы разрешить поддержку NTFS?
user29020
@ user29020 Я не знаю, пока Apple решает не включать его, но вы можете убедиться, что он бесплатный, загрузив исходный код (в настоящее время этот файл ), распаковав его и убедившись, что это COPYINGфайл GNU GPL . Может быть, Apple не хотела делать работу, интегрировать ее, чтобы ее можно было легко использовать из Finder. Также смотрите tuxera.com/products/tuxera-ntfs-for-mac и sourceforge.net/projects/catacombae .
Элия ​​Каган
1
@ user29020 Расходы на поддержку (что, если он немного глючит)? Правовые ограничения? Бесплатная лицензия GNU GPL означает, что она может быть добавлена ​​только к существующим исходным / двоичным файлам, которые, в свою очередь, также доступны по лицензии GPL. (LGPL позволит использовать его в качестве библиотеки другим не-GPL кодом). Учитывая, что код Apple является в основном проприетарным и в остальном под APSL, который не является лицензией, совместимой с GPL, это ограничение, которое они должны соблюдать. gnu.org/philosophy/apsl.html
dlamblin

Ответы:

14

Нет.

Мы находимся в 2015 году во время этого ответа. Я использую OSX Yosemite, Ubuntu 14.10 и техническую предварительную версию Windows 10 для предприятий на компьютере Mactel (Macmini 7,1).

Я пробовал как UDF, так и exFat. Я использую Ubuntu для разработки и мне нужны разрешения в стиле Unix.

Все прежние руководства больше не применяются: драйверы UDF эволюционировали, и все операционные системы будут принимать раздел UDF с большим количеством проблем и нестабильностей, чем я могу назвать.

  • Диск UDF, отформатированный в Mac OS: не может быть подключен в Windows 10.
  • Диск UDF, отформатированный в Linux: не может быть подключен в Windows 10.
  • Диск UDF, отформатированный в Windows 10: монтирует чтение / запись в Linux, только чтение в OSX.

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

Мне неясно, связано ли это с трудностями, которые у меня были при монтировании чтения / записи в OSX, но после удаления определенного количества файлов в Linux я так и не смог снова смонтировать диск в OSX.

Система впадает в панику ядра и рушится с позором.

Это и множество ответов по этому вопросу указывают на непоследовательную поддержку этого формата на данный момент.

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

Мауро Колелла
источник
1
OSX основан на BSD. Так что да, именно OSX Yosemite (10.10.2) испытывает панику ядра. В итоге я использовал NTFS и NTFS 3d для OSX.
Мауро Колелла
1
Очевидно нет. См. Manpages.ubuntu.com/manpages/lucid/man1/mkudffs.1.html и tanguy.ortolo.eu/blog/article93/usb-udf
Мауро Колелла
1
@ Арго, вторая ссылка гласит: «-b 512 должен принудительно установить размер блока файловой системы, равный размеру физического блока USB-накопителя, в соответствии со спецификацией UDF. Адаптируйте его, если вам повезет с USB-накопителем с более подходящий размер блока. " Таким образом, он позволяет вам указать размер блока, но он должен быть указан как необходимое значение.
JDługosz
1
Windows 10, не смонтированная OS X / OS X, не смонтирована из-за разницы в том, как каждая ОС обрабатывает таблицы разделов Windows 10: нужен один. Mac OS X: необходимо, чтобы UDF находился на чистом диске как целый раздел диска.
DrYak
2
Существует инструмент форматирования, который заботится о несоответствиях: github.com/JElchison/format-udf
velop
15

Кто-то исследовал, как отформатировать флэш-накопитель с помощью udf, чтобы его можно было использовать в максимально возможном количестве операционных систем. Вот его выводы (раньше был там , сейчас в автономном режиме):

  • Windows 7 имеет полную поддержку вплоть до UDF v2.6, но размер блока UDF должен соответствовать размеру блока базового устройства (которое для USB-флешек и большинства дисков составляет 512 байт; диски «расширенного формата» - 4096 байт). Видимо диск должен быть размечен.

  • Linux 2.6.30 и выше поддерживает UDF полностью, по крайней мере, до версии 2.5.

  • Mac OS X 10.5 полностью поддерживает UDF до UDF 2.01, но только при использовании на полном диске, поэтому не разбивается на разделы.

Как объяснялось выше, для жестких дисков USB Windows требует, чтобы диск был разбит на разделы. С другой стороны, UDF работает только в OS X, когда он используется на полном диске (без разделов). Довольно удивительно, что существует решение, которое работает как для разделения диска, так и для разделения диска одновременно.

Таблицы разделов DOS хранятся в байтах 446-510 основной загрузочной записи. Эта основная загрузочная запись хранится в первом секторе на диске, сектор 0. Как правило, первый указанный раздел будет запускаться на несколько килобайт дальше. Однако представляется возможным построить таблицу разделов, первый раздел которой начинается в секторе 0, поэтому в результате получается раздел, содержащий саму таблицу разделов. Программы редактора разделов, похоже, отказываются создавать такую ​​таблицу, но, по крайней мере, последние ядра Linux и Windows, похоже, не беспокоятся.

Приятно то, что UDF не использует (я полагаю, намеренно) первые несколько килобайт раздела или диска, на котором он размещен, поэтому это место действительно можно использовать для хранения устаревшей таблицы разделов, ссылаясь на раздел, охватывающий все пространство. диск. Некоторое тестирование показывает, что это действительно работает в Linux, Windows и Mac OS X:

  • Монтирует автоматически чтение и запись в Linux 2.6.30+, Mac OS X 10.5+, Windows Vista +
  • Может использоваться только для чтения в Windows XP и после монтирования из командной строки в Linux 2.6.0+
  • Поддерживает большие файлы, разрешения UNIX, имена файлов Unicode, символические ссылки, жесткие ссылки и т. Д.

Скрипт для правильного форматирования диска: скрипт Perl или скрипт Bash

Дэн Бенами
источник
12

Я только что проверил это в ВМ. Кажется, вам нужно (заново) создать раздел в Windows, назначить ему букву диска, но не форматировать его ни в какую файловую систему. После этого загрузитесь в Ubuntu и просто следуйте инструкциям, и он должен работать для чтения / записи.

Не забудьте сделать резервную копию всех ваших данных!

Сначала установите инструменты UDF:

sudo apt-get install udftools

Замените первый блок ничем в разделе, который вы хотите отформатировать в UDF ^:

sudo dd if=/dev/zero of=/dev/sdxN bs=512 count=1

И, наконец, формат в UDF ^:

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

^ где:

  • x является заполнителем для письма, которое в данный момент назначено вашему хардиску

  • N является заполнителем для номера раздела

Желаем удачи, и дайте мне знать, сработало ли это для вас.

kicsyromy
источник
Спасибо, это отвечает как; Я все еще был бы заинтересован выяснить, работает ли он достаточно хорошо с вышеупомянутым сценарием.
Дламблин
Это отлично сработало для меня. Единственная проблема заключается в том, что я должен вручную смонтировать раздел в Windows с помощью диспетчера дисков. Кроме этого, я могу подтвердить, что он также работает с несколькими разделами на жестком диске (я использую 1udf + 2ext4)
Nemo
Кажется, здесь ключ к тому, чтобы создать раздел, а затем создать там файловую систему UDF. Если вы не создадите ни одного раздела, он будет работать в Linux, но не в Windows (7). Это мой опыт.
DanMan
@ DanMan Dan, кажется, нашел кого-то, кто решил эту проблему и предоставляет сценарий для форматирования всего диска с UDF для Linux, Mac и Windows 7, а также только для чтения в Win XP.
Дламблин,
@kicsyromy: форматирование раздела (sdxN) в UDF не сработало; выполнение sudo mkudffs --media-type=hd --blocksize=512 /dev/sdd1выдает следующее сообщение об ошибке: Однако trying to change type of multiple extents мне удалось отформатировать UDF с использованием всего диска (sdd), как описано здесь: superuser.com/questions/39942/using- udf-на-usb-флеш-диске
Тим Банчи