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


32

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

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

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

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


1
一个澄清:ntfs-3g是免费的。它的源代码是免费的(即免费提供)。它也像自由一样自由ntfs-3g是Ubuntu中的NTFS驱动程序!这是轻微的技术来手动构建/在OS X和Tuxera(其开发者)提供了一个专用的付费软件版本,基本上是免费安装它ntfs-3g构建和打包,便于安装和使用在OS X上没有一个附加的驱动程序,操作系统驱动程序X将仅读取(不写入)NTFS卷,因此您可以考虑使用另一个文件系统。
伊利亚·卡根

@EliahKagan所以,如果ntfs-3g是“免费的”,那么苹果为什么不包括它以允许对NTFS的读写支持?
user29020 2014年

@ user29020我不知道Apple是否选择不包含它,但是您可以通过下载源代码(当前是此文件),将其解压缩并查看该COPYING文件是否为GNU GPL来验证它是否免费。也许Apple不想将其集成在一起,因此可以在Finder中无缝使用它。另请参阅tuxera.com/products/tuxera-ntf​​s-for-macsourceforge.net/projects/catacombae
伊利亚·卡根

1
@ user29020支持费用(如果有问题,该怎么办)?法律的限制?根据GNU GPL许可,免费意味着它只能添加到现有的源代码/二进制文件中,而这些源代码/二进制文件又可以在GPL下使用。(LGPL允许其他非GPL代码将其用作库)。鉴于苹果的代码在很大程度上是专有代码,而在不是GPL兼容许可证的APSL之下,则必须遵守这些限制。gnu.org/philosophy/apsl.html
dlamblin 2014年

Answers:


14

没有。

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

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

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

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

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

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

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

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

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


1
OSX基于BSD。是的,是OSX Yosemite(10.10.2)遇到了内核恐慌。我最终使用NTFS和OSX的NTFS 3d。
Mauro Colella 2015年


1
@Argo第二个引用状态,“ -b 512强制文件系统块的大小等于UDF规范要求的USB盘的物理块大小。如果您很幸运,可以将USB盘与更合适的块大小。” 因此,它确实允许您指定块大小,但必须将其指定为必需值。
JDługosz

1
OS X未安装的Windows 10 / OS X未安装的Windows 10是由于每个OS处理分区表的方式不同。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

我刚刚在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是分区号的占位符

祝您好运,如果您满意,请告诉我。


感谢这个答案的方式;我仍然想了解一下在上述情况下是否可以很好地工作。
dlamblin 2011年

这对我来说非常有效。唯一的问题是我必须使用磁盘管理器在Windows中手动挂载该分区。除此之外,我可以确认它也适用于硬盘上的多个分区(我正在使用1udf + 2ext4)
Nemo

这里的关键似乎是实际创建一个分区,然后在其中创建UDF文件系统。如果不创建任何分区,它将在Linux中工作,但在Windows(7)中将不工作。那是我的经验。
DanMan

@DanMan Dan似乎找到了解决该问题的人,并提供了一个脚本,用于使用UDF格式化整个磁盘(适用于Linux,Mac和Windows 7)以及Win XP中的只读格式。
dlamblin

@kicsyromy:将分区(sdxN)格式化为UDF不起作用,执行时sudo mkudffs --media-type=hd --blocksize=512 /dev/sdd1会出现以下错误消息: trying to change type of multiple extents 但是我确实成功使用整个磁盘(sdd)格式化了UDF,如下所述:superuser.com/questions/39942/using- udf-on-usb闪存驱动器
Tim Banchi 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.