我应该使用什么工具将硬盘格式化为UDF格式?

(这是“ UDF的分区ID /文件系统types是什么? ”的后续)

我知道两种格式化硬盘作为UDF的方法:

  • Windows Vista或更高版本:“ format x: /fs:UDF ”(不要使用/q !)
  • Linux:“ mkudffs --media-type=hd --blocksize=512 /dev/sdx

问题是“其他”操作系统根本无法识别磁盘格式:无论我尝试什么命令,它都会拒绝安装它。

如何将硬盘格式化为UDF,以便Windows和Linux都能使用它?

编辑:更新了命令,现在结果应该在任一操作系统。

    事实certificate,在Windows上使用/q开关是罪魁祸首:它启用了“快速格式化”,即格式化过程在每次写入磁盘时都会在后台继续。 一旦完成,驱动器由Linux处理就好了。

    格式化UDF时,一个不能被强调的东西是在格式化UDF时使用正确的块大小是多么的重要。 如此处所述,使用与物理扇区大小不匹配的configuration块大小可能意味着某些操作系统将无法将驱动器检测为有效的UDF。

    受上述链接(以及我的其他研究/testing)的启发,我编写了一个脚本来自动执行UDF格式化过程 – 使用正确检测的扇区大小。 请参阅GitHub上的format-udf 。 显着特点:

    • 以通用磁盘格式(UDF)格式化块驱动器(硬盘驱动器或闪存驱动器)
      • UDF版本2.01用于最大的兼容性
      • 首先将4096个扇区归零,以清除任何现有的MBR(对于正确的UDF检测是必需的)
    • 生成的文件系统可以跨多个操作系统系列(Windows,OS X和Linux)读取/写入
    • 在任何具有Bash环境的操作系统上运行

    由于最后一点,我写的脚本不能在Windows上使用。 但是,该脚本将在OS X和Linux上运行。 这样做后,Windows应该能够神奇地检测到新格式化的UDF驱动器。

    要直接回答所发布的问题,format-udf将:

    • 根据操作系统和环境select合适的格式化工具(Linux上的mkudffs
    • 自动检测并填充格式化所需的所有参数(包括blocksize
    • 最大限度地提高操作系统的兼容性
    • 产生提问者正在寻找的最大特征集合(和最小限制)

    你是如何使用Windows命令(“format x:/ fs:UDF”)在上一个问题(即UDF文件系统应该在整个磁盘而不是分区上创build的)上发现的? 在我的尝试中,Windows只给驱动器分区。

    就格式兼容性而言,我认为关键在于块的大小。 由于大多数硬盘驱动器和USB闪存盘的块大小为512字节,因此在创build块大小的FS时,我的兼容性最高。 我认为format.com正在使用该块的大小,而mkudffs有一个命令开关来改变块大小。 当我使用512字节块时,我只能让OS X和Windows安装文件系统。 老版本的Linux假定块大小为2048,但是您可以始终使用“-o bs = 512”进行挂载。

    整个磁盘与分区问题仍然会导致兼容性问题。 当我格式化整个磁盘时,Windows将不会挂载,当确定文件系统时,OS X不会超越分区的types编号,迫使我手动挂载它。 Linux并不关心,只要我给它适当的设备名称(sda vs sda1)。

    总之,我find的最兼容的设置是06型(FAT16)的单分区,使用UDF以块大小512格式化。在Windows上自动工作,在Linux和OS X上进行less量的手动干预。