16.7. 创建和使用光学介质(DVD)

Contributed by Marc Fonvieille. With inputs from Andy Polyakov.

16.7.1. 介绍

和 CD 相比,DVD 是下一代光学存储介质技术。 DVD 可以容纳比任何 CD 更多的数据,已经成为现今视频出版业的标准。

我们称作可记录 DVD 的有五种物理记录格式:

一张单层的可记录 DVD 可以存储 4,700,000,000  字节,相当于 4.38 GB 或者说 4485 MB (1 千字节等于 1024 字节)。

Note: 必须说明一下物理介质与应用程序的分歧。 例如 DVD-Video 是一种特殊的文件系统, 可以被覆写到任何可记录的 DVD 物理介质上: DVD-R、DVD+R、DVD-RW 等等。在选择介质类型之前, 您一定要确认刻录机和 DVD-Video 播放器 (一种单独的播放器或者计算机上的 DVD-ROM 驱动器) 是和这种介质兼容的。

16.7.2. 配置

growisofs(1) 将被用来实施 DVD 刻录。 这个命令是 dvd+rw-tools 工具集 (sysutils/dvd+rw-tools) 的一部分。 dvd+rw-tools 支持所有的 DVD 介质类型。

这些工具将使用 SCSI 子系统来访问设备,因此 ATAPI/CAM 支持 必须加入内核。 如果您的刻录机采用 USB 接口则不需要这么做,请参考 Section 16.5 来了解 USB 设备配置的进一步详情。

此外,还需要启用 ATAPI 设备的 DMA 支持。 这一工作可以通过在 /boot/loader.conf 文件中加入下面的行来完成:

hw.ata.atapi_dma="1"

试图使用 dvd+rw-tools 之前您应该参考 dvd+rw-tools 硬件兼容性列表 是否有与您的 DVD 刻录机有关的信息。

Note: 如果您想要一个图形化的用户界面,您应该看一看 K3b (sysutils/k3b),它提供了 growisofs(1) 的一个友好界面和许多其他刻录工具。

16.7.3. 刻录数据 DVD

growisofs(1) 命令是 mkisofs 的前端,它会调用 mkisofs(8) 来创建文件系统布局,完成到 DVD 上的刻录。 这意味着您不需要在刻录之前创建数据映像。

要把 /path/to/data 目录的数据刻录到 DVD+R 或者 DVD-R 上面,使用下面的命令:

# growisofs -dvd-compat -Z /dev/cd0 -J -R /path/to/data

-J -R 选项传递给 mkisofs(8) 用于文件系统创建(这种情况下: 带有 joliet 和 Rock Ridge 扩展的 ISO 9660 文件系统), 参考 mkisofs(8) 手册页了解更多细节。

选项 -Z 用来在任何情况下初始刻录会话: 不管多会话与否。 DVD 设备,/dev/cd0, 必须依照您的配置做出改变。 -dvd-compat 参数会结束光盘, 光盘成为不可附加的。这会提供更多的和 DVD-ROM 驱动器的介质兼容性。

也可以刻录成一个 pre-mastered 映像, 例如记录一个映像文件 imagefile.iso, 我们可以运行:

# growisofs -dvd-compat -Z /dev/cd0=imagefile.iso

刻录的速度可以被检测到并自动进行调整, 根据介质和驱动器的使用情况。如果您想强制改变速度, 可以使用 -speed= 参数。更多的信息,请看 growisofs(1) 联机手册。

16.7.4. 刻录 DVD-Video

DVD-Video 是一个特殊的基于 ISO 9660 和 micro-UDF (M-UDF) 规范的文件系统。DVD-Video 也呈现了一个特殊的数据体系结构, 这就是为什么您需要一个特殊的程序像 multimedia/dvdauthor 来制作 DVD 的原因。

如果您已经有了 DVD-Video 文件系统的映像, 就可以以同样的方式制作另一个映像,可以参看前面章节的例子。 如果您想制作 DVD 并想放在特定的目录中,如在目录 /path/to/video 中, 可以使用下面的命令来刻录 DVD-Video:

# growisofs -Z /dev/cd0 -dvd-video /path/to/video

-dvd-video 选项将传递给 mkisofs(8) 并指示它创建一个 DVD-Video 文件系统布局。 除此之外。 -dvd-video 选项也包含了 -dvd-compat growisofs(1) 选项。

16.7.5. 使用 DVD+RW

不像 CD-RW, 一个空白的 DVD+RW 在每一次使用前必须先格式化。 growisofs(1) 程序将会适时的自动对其进行适当的处理, 这是 recommended 的方式。您也可以使用 dvd+rw-format 来对 DVD+RW 进行格式化:

# dvd+rw-format /dev/cd0

您只需要执行这样的操作一次,牢记只有空白的 DVD+RW 介质才需要格式化。您可以以前面章节同样的方式来刻录 DVD+RW。

如果您想刻录新的数据 (刻录一个新的完整的文件系统 而不仅仅是追加一些数据) 到 DVD+RW,您不必再将其格式化成空白盘, 您只须要直接覆盖掉以前的记录即可。 (执行一个新的初始化对话), 像这样:

# growisofs -Z /dev/cd0 -J -R /path/to/newdata

DVD+RW 格式化程序为简单的向以前的记录追加数据提供了可能性。 这个操作有一个新的会话和一个已经存在的会话合并而成。 它不需要多个写会话过程, growisofs(1) 将在介质上 增加 ISO 9660 文件系统。

例如,我们想追加一些数据到到我们以前的 DVD+RW 上,我们可以使用下面的命令:

# growisofs -M /dev/cd0 -J -R /path/to/nextdata

我们用来刻录初始会话的同样的 mkisofs(8) 选项会在以后的写操作中使用。

Note: 如果您想获得与 DVD-ROM 驱动更好的兼容性,可以使用 -dvd-compat 选项。在 DVD+RW 这种情况下,将不能预防您添加数据。

如果出于某种原因您真的想要空白介质盘, 可以执行下面的命令:

# growisofs -Z /dev/cd0=/dev/zero

16.7.6. 使用 DVD-RW

DVD-RW 接受两种光盘格式:增补顺序写入和受限式覆写。默认的 DVD-RW 盘是顺序写入格式。

空白的 DVD-RW 能够直接进行刻录而不需要格式化操作, 然而非空的顺序写入格式的 DVD-RW 需要格式化才能写入新的初始区段。

要格式化一张 DVD-RW 为顺序写入模式,运行:

# dvd+rw-format -blank=full /dev/cd0

Note: 一次完全的格式化 (-blank=full) 在 1x 倍速的介质上将会花费大约 1 个小时。快速格式化可以使用 -blank 选项来进行,如果 DVD-RW 要以 Disk-At-Once (DAO) 模式刻录的话。要以 DAO 模式刻录 DVD-RW,使用命令:

# growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso

-use-the-force-luke=dao 选项不是必需的, 因为 growisofs(1) 试图最低限度的检测 (快速格式化) 介质并进行 DAO 写入。

事实上对于任何 DVD-RW 都应该使用受限式覆写模式, 这种格式比默认的增补顺序写入更加灵活。

在一张顺序 DVD-RW 上写入数据,使用和其他 DVD 格式相同的说明:

# growisofs -Z /dev/cd0 -J -R /path/to/data

如果您想在您以前的刻录上附加数据,您必须使用 growisofs(1)-M 选项。然而, 如果您在一张增补顺序写入模式的 DVD-RW 上附加数据, 将会在盘上创建一个新的区段,结果就是一张多区段光盘。

受限式覆写格式的 DVD-RW 在新的初始化区段前不需要格式化, 您只是要用 -Z 选项覆写光盘,这和 DVD+RW 的情形是相似的。也可以用和 DVD+RW 同样方式的 -M 选项把现存的 ISO 9660 文件系统写入光盘。 结果会是一张单区段 DVD。

要把 DVD-RW 置于受限式覆写格式, 必须使用下面的命令:

# dvd+rw-format /dev/cd0

更改回顺序写入模式使用:

# dvd+rw-format -blank=full /dev/cd0

16.7.7. 多区段

几乎没有哪个 DVD-ROM 驱动器支持多区段 DVD,它们大多数时候都只读取第一个区段。 顺序写入格式的 DVD+R、DVD-R 和 DVD-RW 可以支持多区段, DVD+RW 和 DVD-RW 受限式覆写格式不存在多区段的概念。

在 DVD+R、DVD-R 或者 DVD-RW 的顺序写入格式下, 一次初始化 (未关闭) 区段之后使用下面的命令, 将会在光盘上添加一个新的区段:

# growisofs -M /dev/cd0 -J -R /path/to/nextdata

对 DVD+RW 或者 DVD-RW 在受限式覆写模式下使用这条命令, 会合并新区段到存在的区段中来附加数据。 结果就是一张单区段光盘。 这是在这些介质上用于在最初的写操作之后添加数据的方式。

Note: 介质上的一些空间用于区段之间区段的开始与结束。 因此,应该用大量的数据添加区段来优化介质空间。 对于 DVD+R 来说区段的数量限制为 154, 对于 DVD-R 来说大约是 2000,对于双层 DVD+R 来说是 127。

16.7.8. 更多的信息

要获得更多的关于 DVD 的信息 dvd+rw-mediainfo /dev/cd0 命令可以运行来获得 更多的信息。

更多的关于 dvd+rw-tools 的信息可以在 growisofs(1) 手册页找到,在 dvd+rw-tools web sitecdwrite mailing list 联接中也可找到。

Note: dvd+rw-mediainfo 命令的输出结果记录或 媒体的问题被做成问题报告。没有这些输出,对你的帮助将会十分困难。