当前位置: 首页>>技术教程>>正文


filesystem – 是否可以将UDF用作硬盘驱动器格式?

, ,

问题描述

最近几次,我看到UDF建议作为Linux,Mac OS X和Windows XP及更高版本上使用的驱动器的跨平台格式的解决方案。

我在这里搜索,没有找到相同的建议(大多数建议是ntfs-3g,它似乎要花钱,并且没有预装在Mac上)。

所以我的问题是:这怎么做正确,有人做过吗?然后,您是否已填满驱动器并删除了一些文件以腾出空间,以使所有内容看起来都像真正的r /w格式,即使它似乎主要是一次写入的格式也是如此?

叫我疯了,但是如果UDF系统也可以自动挂载并且可以由登录用户写的话,我真的很喜欢。到目前为止,我尝试过的一切(由kicsyromy提及的udftools格式化)都无法满足这个愿望。

最佳回答

没有。

我们在2015年的回覆时间。我正在Mactel机器(Macmini 7,1)上为企业使用OSX Yosemite,Ubuntu 14.10和Windows 10技术预览版。

我尝试了UDF和exFat。我使用Ubuntu进行开发,并且确实需要Unix-style权限。

以前的所有指南都不再适用:UDF驱动程序已经发展,并且所有操作系统都将接受UDF分区,但出现的问题和不稳定程度超出了我的命名范围。

  • 在Mac OS上格式化的UDF驱动器:无法在Windows 10上安装。

  • 在Linux上格式化的UDF驱动器:无法在Windows 10上安装。

  • 在Windows 10上格式化的UDF驱动器:在Linux上以读/写方式挂载,在OSX上为只读。

但是,Windows不允许您在格式化UDF卷时指定块大小,因此,逻辑块大小可能与分区的物理块大小不同。

我不清楚这是否与我在OSX上以读写方式安装驱动器的困难有关,但是在使用Linux删除一定数量的文件后,我再也无法在OSX上安装驱动器了。

系统进入内核恐慌状态,并崩溃。

这以及有关该主题的各种答案表明,此时对此格式的支持不一致。

我似乎可以使用NTFS卷在现代文件系统的功能Unix-style权限之间取得平衡,我可以设置它们,并且可以在所有操作系统上进行读/写挂载。

次佳回答

有人对如何使用udf格式化闪存驱动器进行了一些研究,以便可以在尽可能多的操作系统上使用它。这是他的发现(以前是there,现在离线):

  • Windows 7完全支持UDF v2.6,但是UDF块大小必须与基础设备的块大小匹配(对于USB-sticks和大多数磁盘为512字节; “advanced format”磁盘为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 +中自动安装read-write

  • 在Windows XP中可以是只读的,在Linux 2.6.0+中可以在命令行安装后使用

  • 支持大文件,UNIX权限,Unicode文件名,符号链接,硬链接等。

正确格式化磁盘的脚本:Perl scriptBash script

第三种回答

我刚刚在VM中进行了测试。似乎您需要在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是当前分配给您的hardisk的字母的占位符

  • N是分区号的占位符

祝您好运,如果适合您,请告诉我。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8075.html,未经允许,请勿转载。