如何创建 UDF 映像并将它们刻录到 DVD 或 CDROM?

pol*_*mon 5 dvd burning data-cd

用 刻录 CDcdrecord和制作图像genisoimage没有问题。

我想以类似的方式刻录 DVD,首先创建一个映像,然后将其刻录到磁盘。这是非常有益的,因为我可以在将其刻录到磁盘之前检查图像。

现在,我所看到的只是如何使用该growisofs命令将某些内容刻录到 DVD,但所有操作方法都使用 ISO9660 来制作 DVD。但我想刻录 UDF 图像。在刻录它们之前,我需要制作它们,但是如何创建 UDF 图像?

此外,如果您能解释或链接如何刻录蓝光,那也很棒。

所有工具都必须是命令行,因为我需要使用它,而 GUI 不是选项。

小智 10

实际上有两种方法可以在 Linux 上生成 UDF 文件系统映像,具体取决于您的要求。

使用 mkisofs 创建 UDF/ISO-9660 映像

mkisofs工具能够在一次通过中生成组合的 UDF 和 ISO-9660 桥文件系统。这是一个文件系统,它存储 UDF 目录和旧的 ISO-9660 目录,引用相同的文件数据(因此数据只存储一次)。任何现代操作系统(Windows XP 或更新版本)都将访问 UDF 数据并完全忽略 ISO-9660 信息,因此就所有意图和目的而言,这一个 UDF 文件系统。

这种方法的优点是您可以一次性创建文件系统,从输入目录开始并以填充的文件系统映像结束。这意味着您还可以将输出直接转储到growisofs并直接刻录到磁盘。可能的缺点是,由于旧的 ISO-9660 结构,会有少量空间浪费,并且生成的文件系统将不可写(因此您不能将其用于 DVD-RAM 或 BD-RE 媒体,如果您希望能够修改已安装磁盘上的数据)。

要生成这样的文件系统映像,您可以使用如下命令:

mkisofs -udf -o myimage.udf -V MyDiskTitle /path/to/input/files
Run Code Online (Sandbox Code Playgroud)

或直接刻录到磁盘:

growisofs -Z /dev/dvd -udf -V MyDiskTitle /path/to/input/files
Run Code Online (Sandbox Code Playgroud)

请注意,要使用此选项,您需要最新版本的正确mkisofs,而不是genisoimage许多 Linux 发行版附带的废弃和古老的分支。

使用 mkudffs 创建“纯”UDF 文件系统

如果您绝对必须有一个没有 ISO-9660 数据结构的纯 UDF 文件系统,您可以使用包中的mkudffs工具udftools和环回设备来生成本地映像。这需要比mkisofs上面使用更多的步骤,但它是生成纯 UDF 文件系统和可以在刻录到随机访问介质(如 DVD-RAM 或 BD-RE)后以读写方式安装的文件系统的唯一方法。

首先,您需要生成一个空白文件来包含图像。此处给出的大小为 650 MB 以匹配标准 CD,对于 DVD/蓝光显然需要更大。有关 DVD 媒体的确切大小,请参阅此维基百科文章

$ truncate -s 650M /tmp/cdimage.udf
Run Code Online (Sandbox Code Playgroud)

现在调用mkudffs以在此空白图像中生成 UDF 文件系统:

$ mkudffs --media-type=dvdrw /tmp/cdimage.udf
Run Code Online (Sandbox Code Playgroud)

有关mkudffs(1)其他可能的媒体类型,请参阅。双方truncatemkudffs会创建稀疏文件,如果你的文件系统支持他们。所以除非你填充它,否则图像不会占据完整尺寸。

然后您可以在本地挂载您的图像以将数据复制到其中

$ sudo mkdir /media/udfimage
$ sudo mount -t udf -o loop,rw /tmp/cdimage.udf /media/udfimage
Run Code Online (Sandbox Code Playgroud)

将数据复制到映像后,按照相反的过程卸载映像并分离回送设备:

$ sudo umount /dev/loop0
Run Code Online (Sandbox Code Playgroud)

  • 不适用于 Ubuntu 11.04!我可以按照“一般数据”方法安装`*udf` 文件。但是,我无法在 `udfimage` 目录中写入。我得到的错误是“只读文件系统”(即使 `mount` 将其列为 `rw`) (4认同)
  • 为防止“只读挂载”错误,将媒体类型传递给 mkudffs 时,请使用 dvdrw 而不是 dvd。 (2认同)