(这是“ UDF的分区ID /文件系统types是什么? ”的后续)
我知道两种格式化硬盘作为UDF的方法:
format x: /fs:UDF
”(不要使用/q
!) mkudffs --media-type=hd --blocksize=512 /dev/sdx
” 问题是“其他”操作系统根本无法识别磁盘格式:无论我尝试什么命令,它都会拒绝安装它。
如何将硬盘格式化为UDF,以便Windows和Linux都能使用它?
编辑:更新了命令,现在结果应该在任一操作系统。
事实certificate,在Windows上使用/q
开关是罪魁祸首:它启用了“快速格式化”,即格式化过程在每次写入磁盘时都会在后台继续。 一旦完成,驱动器由Linux处理就好了。
格式化UDF时,一个不能被强调的东西是在格式化UDF时使用正确的块大小是多么的重要。 如此处所述,使用与物理扇区大小不匹配的configuration块大小可能意味着某些操作系统将无法将驱动器检测为有效的UDF。
受上述链接(以及我的其他研究/testing)的启发,我编写了一个脚本来自动执行UDF格式化过程 – 使用正确检测的扇区大小。 请参阅GitHub上的format-udf 。 显着特点:
由于最后一点,我写的脚本不能在Windows上使用。 但是,该脚本将在OS X和Linux上运行。 这样做后,Windows应该能够神奇地检测到新格式化的UDF驱动器。
要直接回答所发布的问题,format-udf将:
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量的手动干预。