dla*_*lin 35 filesystem external-hdd udf
最近有几次我看到有人建议 UDF 作为跨平台格式的解决方案,用于在 Linux、Mac OS X 和 Windows XP 及更高版本上使用的驱动器。
我在这里搜索过,但没有找到相同的建议(大多数建议使用 ntfs-3g,它似乎要花钱并且未预装在 Mac 上)。
所以我的问题是:这是如何正确完成的,有没有人这样做过?然后您是否填满了驱动器并删除了一些文件以腾出空间,发现一切都像真正的 r/w 格式一样工作,即使它似乎主要是一次写入格式?
说我疯了,但如果 UDF 系统也能自动挂载并且可由登录用户写入,我真的很喜欢它。到目前为止我尝试过的(如 kicsyromy 提到的 udftools 格式)并没有解决这个愿望。
小智 16
有人研究了如何使用 udf 格式化闪存驱动器,以便它可以在尽可能多的操作系统上使用。这是他的发现(曾经在那里,现在离线):
Windows 7完全支持 UDF v2.6,但 UDF 块大小必须与底层设备的块大小匹配(对于 U 盘和大多数磁盘是 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。通常,指定的第一个分区将进一步启动一些 KB。但是,似乎可以构造一个分区表,其第一个分区从扇区 0 开始,因此结果是一个包含分区表本身的分区。分区编辑器程序似乎拒绝创建这样的表,但至少最近的 Linux 和 Windows 内核似乎不会打扰。
好消息是UDF没有(我想是故意的)使用它所在的分区或磁盘的前几千字节,所以这个地方真的可以用来存储遗留分区表,指的是一个跨越整个分区的分区盘。一些测试表明这确实适用于 Linux、Windows 和 Mac OS X:
Mau*_*lla 15
不。
我们在 2015 年收到此回复。我在 Mactel 机器(Macmini 7,1)上使用 OSX Yosemite、Ubuntu 14.10 和 Windows 10 技术预览版。
我尝试了 UDF 和 exFat。我使用 Ubuntu 进行开发并且确实需要 Unix 风格的权限。
所有以前的指南都不再适用: UDF 驱动程序已经发展,所有操作系统都将接受 UDF 分区,问题和不稳定性比我能说的多。
但是,Windows 不允许您在格式化 UDF 卷时指定块大小,因此,您的逻辑块大小可能与分区的物理块大小不同。
我不清楚这是否与我在 OSX 上以读/写方式安装它的困难有关,但是在使用 Linux 删除一定数量的文件后,我再也无法在 OSX 上安装驱动器。
系统进入内核恐慌状态,并以可耻的方式崩溃。
这一点以及有关该主题的各种答案表明此时对此格式的支持不一致。
似乎有一些方法可以使用NTFS卷来在现代文件系统的功能、Unix 风格的权限(我可能可以设置它们)和所有操作系统上的读/写挂载之间实现平衡。
kic*_*omy 12
我刚刚在 VM 中对此进行了测试。似乎您需要在 Windows 中(重新)创建您的分区,为它分配一个驱动器号,但不要将其格式化为任何文件系统。之后启动到 Ubuntu 并按照说明进行操作,它应该可以用于读/写。
记得备份所有数据!
首先安装UDF工具:
sudo apt-get install udftools
Run Code Online (Sandbox Code Playgroud)
用您希望格式化为 UDF^ 的分区上的任何内容替换第一个块:
sudo dd if=/dev/zero of=/dev/sdxN bs=512 count=1
Run Code Online (Sandbox Code Playgroud)
最后格式化为UDF^:
sudo mkudffs --media-type=hd --blocksize=512 /dev/sdxN
Run Code Online (Sandbox Code Playgroud)
^其中:
x 是当前分配给硬盘的字母的占位符
N 是分区号的占位符
祝你好运,让我知道它是否适合你。