С помощью какого инструмента я должен отформатировать жесткий диск как UDF?

32

(Это продолжение « Что такое идентификатор раздела / тип файловой системы для UDF? »)

Я знаю два способа форматирования жесткого диска как UDF:

  • Windows Vista или более поздняя версия: " format x: /fs:UDF" (не используйте /q!)
  • Linux: " mkudffs --media-type=hd --blocksize=512 /dev/sdx"

Проблема в том, что «другая» ОС вообще не распознает диск как отформатированный: она просто отказывается монтировать его, какие бы команды я ни пытался.

Как я могу отформатировать жесткий диск как UDF, чтобы и Windows, и Linux могли его использовать?

РЕДАКТИРОВАТЬ: обновлены команды, теперь результат должен работать в любой ОС.

skolima
источник
UDF был разработан для оптических носителей, возможно, в этом проблема?
Chopper3
1
Команда, которую вы даете, прекрасно работает в Linux. Я отформатировал на Karmic, и могу читать и писать под Windows 7 и Karmic.
Мэтт Джоунер
4
Не забудьте сначала обнулить MBR (dd if = / dev / zero of = / dev / sdx bs = 512 count = 1), чтобы избежать путаницы с любой оставшейся таблицей разделов (поскольку UDF не использует первый сектор).
CesarB
3
Смежный
1
Спасибо Сколима, это здорово. Пока, пока FAT32. Мне нужно только соблюдать осторожность, придерживаясь UDF версии 2.01 и размера блока 512, и у меня есть идеальный раздел жесткого диска, общий для Linux и Windows.
МАРТ

Ответы:

17

Оказывается, использование /qпереключателя в Windows было причиной: он включает «быстрое форматирование», то есть процесс форматирования продолжается в фоновом режиме при каждой записи на диск. Как только он закончится, диск будет отлично обрабатываться Linux.

skolima
источник
С другой стороны, форматирование с помощью mkudffs в Linux, кажется, успешно завершается за считанные секунды.
МАРТ
Я действительно должен был сделать быстрый формат в Win7 после создания файловой системы с mkudffs в Linux. Без этого Windows просто продолжала хотеть отформатировать диск. В результате по какой-то причине в конце диска образовалось 5 МБ свободного места. Но, по крайней мере, сейчас это работает в обеих ОС.
DanMan
В ответ себе: эти 5 МБ могут быть блоком метаданных в последних версиях UDF.
DanMan
1
Совершенно неправильно! Быстрое форматирование не является «продолжением форматирования в фоновом режиме». Это просто инициализация файловой системы без форматирования дорожек.
Anixx
6

При форматировании UDF, одна вещь, которая не может быть подчеркнута, состоит в том, насколько важно использовать правильный размер блока при форматировании UDF. Как объясняется здесь , использование сконфигурированного размера блока, который не соответствует размеру физического сектора, вероятно, означает, что некоторые операционные системы не смогут обнаружить диск как действительный UDF.

Вдохновленный приведенным выше ответом (и другими моими исследованиями / тестированием), я написал скрипт для автоматизации процесса форматирования в UDF - с использованием правильно определенного размера сектора. Смотрите format-udf на GitHub . Известные особенности:

  • Форматирует блочный диск (жесткий диск или флэш-диск) в формате универсального диска (UDF)
    • UDF ревизия 2.01 используется для максимальной совместимости
    • Первые 4096 секторов обнуляются, чтобы стереть любую существующую MBR (необходимую для правильного определения UDF)
  • Результирующая файловая система может быть прочитана / записана для нескольких семейств операционных систем (Windows, OS X и Linux)
  • Работает на любой ОС, имеющей среду Bash

Из-за последнего пункта этот сценарий, который я написал, нельзя использовать в Windows. Тем не менее, скрипт будет работать на OS X и Linux. После этого Windows сможет волшебным образом обнаружить только что отформатированный диск UDF.

Чтобы напрямую ответить на поставленные вопросы, format-udf:

  • выберите подходящий инструмент для форматирования в зависимости от операционной системы и среды ( mkudffsв Linux)
  • автоматически определять и заполнять все параметры, необходимые для форматирования (в том числе blocksize)
  • максимизировать совместимость с ОС (см. страницу GitHub для таблицы совместимости)
  • получить максимальный набор функций (и минимальные ограничения), которые ищет запрашивающий
j0nam1el
источник
5

Как вы согласовали свое открытие в предыдущем вопросе (что файловая система UDF должна создаваться на всем диске, а не в разделе) с этой командой Windows («формат x: / fs: UDF»)? В моих попытках Windows выдает буквы дисков только разделам.

Что касается форматирования для совместимости, я думаю, что ключ находится в размере блока. Поскольку большинство жестких дисков и флеш-накопителей USB имеют размер блока 512 байт, у меня была наибольшая совместимость при создании FS такого размера. Я думаю, что format.com использует этот размер блока, а у mkudffs есть командный переключатель для изменения размера блока. Я мог заставить OS X и Windows монтировать файловую систему только тогда, когда использовал блоки по 512 байт. В старых версиях Linux предполагалось, что размер блока составляет 2048, но вы всегда можете смонтировать с помощью "-o bs = 512".

Проблема диска с разделом по-прежнему вызывает проблемы совместимости. Windows не будет монтироваться, когда я форматирую весь диск, и OS X не определяет номер типа раздела при определении его файловой системы, заставляя меня монтировать его вручную. Linux не заботился, пока я дал ему соответствующее имя устройства (sda vs sda1).

Таким образом, наиболее совместимой установкой, которую я нашел, является отдельный раздел типа 06 (FAT16), отформатированный с помощью UDF с размером блока 512. Работает автоматически в Windows и немного ручного вмешательства в Linux и OS X.

Саймон
источник
3
Я попробовал другой эксперимент. На этот раз я использовал флешку вместо жесткого диска. Отформатированный с помощью "mkudffs --media-type = hd --blocksize = 512 / dev / sda", работает без проблем в Linux, OS X и Vista. Жаль, что Windows допускает форматы без разделов на USB-накопителях, но не на жестких дисках.
Саймон
Вы определенно хотите сохранить один и тот же размер блока, чтобы избежать преждевременного использования флэш-памяти, см. Lwn.net/Articles/428584
MarcH