所以,每年的那个时候,我需要在 Windows 机器上制作一些文件的备份磁盘,我想使用 UDF 以便以后添加。它拒绝让我创建任何CD 或 DVD,因为它说磁盘是空的,需要格式化,然后不让我格式化它们......等等。它也不会让我编辑一些我知道是用 Windows 自己的实用程序制作的磁盘(Live Filesystem,它基本上也是 UDF),所以我只是眯着眼睛继续前进。(有趣的是,我可以在 Linux 中打开和修改它们……)
因此,我转到我的 Linux(Ubuntu 18.04)机器并尝试使用 mkudffs 制作一个 UDF 格式的磁盘(因为多会话磁盘完全可以正常工作,显然,至少不再 [我在 Ubuntu 14.04 天左右做了一次,但从那以后它们实际上就不能编辑了,而且测试起来很昂贵])而且无论如何它都是优越的。
我运行了命令
mkudffs --media-type=dvd /dev/sr0
并且它转储一条错误消息“设备是只读的”(我没有确切的措辞,但这就是它所说的)。以 root 身份运行该命令并没有帮助,而且我知道这在以前是有效的。
有趣的是,Nautilus 内置的“将文件复制到磁盘并刻录”的功能运行良好。当然,检查“让磁盘打开以备将来添加”选项实际上并没有做任何事情(这并不奇怪),但它确实烧毁了我手头的文件。
现在,下一次,它不允许我对我该死的 CD 或 DVD 进行 UDF 格式化到底有什么问题?!
[我还没有用我的 DVD-RW 进行测试,但我刚刚尝试了 CD 和 DVD(使用适当的媒体类型标志)并得到了同样的错误。它们有点旧,但它们显然仍然是可写的,只是由于某种原因,mkudffs 特别是对它们有问题。]
这是媒体的限制:最古老的类型(CD-R、DVD-R 等)是一次性写入的,即您只能在单个会话中将大图像写入光盘,并且无法擦除光盘。在某些时候引入了多区段 CD-R 光盘,但它们通过将数据附加到光盘的未使用部分来工作。即使是最常见的可重写 (RW) 光盘也不能被重写到像 UDF 这样的文件系统所需要的随机位置。
UDF 文件系统确实支持创建“实时”文件系统,即您可以在其上添加、删除和重写文件的文件系统。但这需要媒体支持。您可以使用 . 在硬盘或 USB 闪存盘上创建 UDF 文件系统
mkudffs
,但对于 CD-R,您需要首先在磁盘文件中创建文件系统,添加您想要的文件,然后写入整个文件系统作为光盘的映像。通过mkudffs,您只能格式化具有 r/w 访问权限的块设备。所以只有 DVD-RW、DVD-RAM、BD-RE。通过支持数据包写入pktcdvd.ko内核模块和pktsetup实用程序,您也可以将 CD-RW 媒体映射到兼容的 r/w 块设备。但是在使用 CD-RW 媒体之前,您需要先通过cdrwtool实用程序对其进行格式化。cdrwtool还负责将 CD-RW 媒体格式化为 UDF,因此请使用它而不是mkudffs。
Linux 内核不支持可刻录光盘(CD-R、DVD-R、BD-R)直接通过块设备进行写入操作。因此,向它们写入任何数据都需要通过刻录软件来完成。因此mkudffs无法将它们格式化为 UDF。但是您可以创建 UDF 映像,然后将其刻录到可刻录光盘。