19.7. 创建和使用光学介质(DVD)
上一页 | 第 19 章 存储 | 下一页

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

Contributed by Marc Fonvieille.
With inputs from Andy Polyakov.

### 19.7.1. 介绍

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

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

- DVD-R：这是第一种可用的 DVD 可记录格式。 DVD-R 标准由 DVD Forum 定义。 这种格式是一次可写的。

- DVD-RW：这是 DVD-R 标准的可覆写版本。 一张 DVD-RW 可以被覆写大约 1000 次。

- DVD-RAM：这也是一种被 DVD Forum 所支持的可覆写格式。 DVD-RAM 可以被看作一种可移动硬盘。 然而，这种介质和大部分 DVD-ROM 驱动器以及 DVD-Video 播放器不兼容； 只有少数 DVD 刻录机支持 DVD-RAM。 请参阅 第 19.7.9 节 “使用 DVD-RAM” 以了解关于如何使用 DVD-RAM 的进一步详情。

- DVD+RW：这是一种由 DVD+RW Alliance 定义的可覆写格式。一张 DVD+RW 可以被覆写大约 1000 次。

- DVD+R：这种格式是 DVD+RW 格式的一次可写变种。

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

### 注意:

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

### 19.7.2. 配置

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

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

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

hw.ata.atapi_dma="1"

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

### 注意:

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

### 19.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) 联机手册。

### 注意:

如果需要在刻录的编录中添加超过 4.38GB 的单个文件， 就必须使用 mkisofs(8) 或其他相关工具 (例如 growisofs(1)) 的 `-udf -iso-level 3` 参数来创建 UDF/ISO-9660 混合文件系统。 只有在创建 ISO 映像文件或直接在盘上写数据时才需要这样做。 以这种方式创建的光盘必须通过 mount_udf(8) 工具以 UDF 文件系统挂载， 因此只有操作系统支持 UDF 时才可以这样做， 否则盘上的文件数据可能会无法正确读出。

要创建这样的 ISO 文件：

`%` `mkisofs -R -J -udf -iso-level 3 -o `imagefile.iso` `/path/to/data``

直接将文件刻录到光盘上：

`#` `growisofs -dvd-compat -udf -iso-level 3 -Z `/dev/cd0` -J -R `/path/to/data``

假如只是使用包含巨型文件的 ISO 映像文件时， 就不需要在运行 growisofs(1) 来将映像文件刻录成光盘时指定任何额外的选项了。

另外， 在映像文件中增加或直接刻录巨型文件时， 还需要注意使用最新的 `sysutils/cdrtools` (包含了 mkisofs(8))， 因为旧版并不提供巨型文件支持。 如果您遇到问题， 也可以尝试一下开发版本的软件包， 例如 `sysutils/cdrtools-devel` 并参阅 mkisofs(8) 联机手册。

### 19.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) 选项。

### 19.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) 选项。

### 注意:

如果您想获得与 DVD-ROM 驱动更好的兼容性，可以使用 `-dvd-compat` 选项。 在 DVD+RW 这种情况下， 这样做并不妨碍您添加数据。

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

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

### 19.7.6. 使用 DVD-RW

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

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

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

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

### 注意:

一次完全的格式化 (`-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``

### 19.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 在受限式覆写模式下使用这条命令， 会合并新区段到存在的区段中来附加数据。 结果就是一张单区段光盘。 这是在这些介质上用于在最初的写操作之后添加数据的方式。

### 注意:

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

### 19.7.8. 更多的信息

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

更多的关于 dvd+rw-tools 的信息可以在 growisofs(1) 联机手册找到，在 dvd+rw-tools web site 和 cdwrite mailing list 联接中也可找到。

### 注意:

`dvd+rw-mediainfo` 命令的输出结果记录， 以及介质的问题会被用来做问题报告。 如果没有这些输出， 就很难帮您解决问题。

### 19.7.9. 使用 DVD-RAM

#### 19.7.9.1. 配置

DVD-RAM 刻录机通常使用 SCSI 或 ATAPI 两种接口之一。 对于 ATAPI 设备， DMA 传输模式必须手工启用。 这一工作可以通过在 `/boot/loader.conf` 文件中增加下述配置来完成：

hw.ata.atapi_dma="1"

#### 19.7.9.2. 初始化介质

如本章前面的介绍所言， DVD-RAM 可以视为一移动硬盘。 与任何其它型号的移动硬盘类似， 首次使用它之前， 应首先 “初始化” DVD-RAM。 在下面的例子中， 我们将在全部空间上使用标准的 UFS2 文件系统：

`#` `dd if=/dev/zero of=`/dev/acd0` bs=2k count=1` `#` `bsdlabel -Bw `acd0`` `#` `newfs `/dev/acd0``

您应根据实际情况将 `acd0` 改为您所使用的设备名。

#### 19.7.9.3. 使用介质

一旦您在 DVD-RAM 上完成了前面的操作， 就可以像普通的硬盘一样挂接它了：

`#` `mount `/dev/acd0` `/mnt``

然后就可以正常地对 DVD-RAM 进行读写了。

上一页 | 上一级 | 下一页
19.6. 创建和使用光学介质(CD) | 起始页 | 19.8. 创建和使用软盘

本文档和其它文档可从这里下载： ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读 文档，如不能解决再联系 <questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.