在我寻找理想的文件系统以在具有许多不同操作系统的许多计算机之间共享文件时,我接受了这个答案并在我的 U 盘上安装了 UDF 文件系统。
首先,我清空了磁盘,以确保没有残留物来混淆正在读取驱动器的系统:
dd if=/dev/zero of=/dev/sdb bs=1M
udftools
然后我使用arch linux 的 AUR格式化了驱动器:
sudo mkudffs --media-type=hd --blocksize=512 /dev/sdb
显然,驱动器处于/dev/sdb
.
现在我的问题是,据我所知,该驱动器没有任何传统分区,甚至没有分区表,因此它没有 UUID。因此,我无法将其添加到 fstab 中,我觉得这很烦人。
我可以做什么来解决这个问题(例如,是否有其他方法来设置默认安装点和选项,或备用分区选项)?
答案1
选择至少 2K 的块大小(这是默认值)并添加--vid=
到您的mkudffs
参数中。 (blkid
fromutil-linux
似乎无法应对较小的块大小。)
$ mkudffs --media-type=hd --vid=my-drive /dev/sdj $ blkid /dev/sdj /dev/sdj:标签=“我的驱动器”类型=“udf”
现在您可以LABEL=my-drive
在/etc/fstab
.
答案2
如果您需要blocksize=512
Windows 兼容性,可以修复util-linux
该更新blkid
以识别vid
任何块大小上的标签。它还没有进入发布版本;它于 2013 年 3 月 1 日提交。内核模块中还有一个错误udf
,导致它无法使用大于 128G 的分区 - 该修复已于 2 月初提交到主线,并且刚刚提交到 3.0-stable 、3.4-稳定和 3.8-稳定分支。
答案3
确保使用 --blocksize=512 (除非您有本机 4k 磁盘)。 UDF 块大小必须与磁盘的逻辑(扇区)大小匹配,即 512 字节。较旧的 mkudfffs 版本无法检测逻辑扇区大小并回退到值 CD/DVD 值 2048(这会给其他操作系统带来问题,因为它们不期望硬盘上的 CD/DVD 块大小)。
util-linux v2.30 中的 blkid 也为 UDF 文件系统提供了 UUID,因此只需将 util-linux 升级到新版本,然后就可以在 /etc/fstab 中使用 UUID。 UUID 是根据 UDF 卷集标识符计算得出的,根据 UDF 定义,前 16 个字符是唯一的、非平凡的、非固定的,适合保证唯一标识符。
另外,从 1.1 版开始,mkudffs 具有选项 --uuid= 用于指定自己的 UUID。
答案4
您的发行版有/dev/disk/by-*
符号链接吗?
其中,您可能会找到一种识别带 UDF 的 USB 记忆棒的方法,而这种方法不会像/dev/sd*
以前那样变化。