> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/handbook/di-21-zhang-cun-chu/21.6.-chuang-jian-he-shi-yong-dvd.md).

# 21.6.创建和使用 DVD 光盘

与 CD 相比，DVD 是下一代光盘存储技术。DVD 可存储比任何 CD 更多的数据，并且是视频出版的标准。

可记录 DVD 有五种物理格式：

* **DVD-R**：这是第一个可记录 DVD 格式。DVD-R 标准由 [DVD Forum](http://www.dvdforum.org/forum.shtml) 定义。该格式是单次写入的。
* **DVD-RW**：这是 DVD-R 标准的可重写版本。DVD-RW 可重写约 1000 次。
* **DVD-RAM**：这是可重写格式，可视为可移动硬盘。然而，这种光盘与大多数 DVD-ROM 驱动器和 DVD-Video 播放器不兼容，因为只有少数 DVD 写入器支持 DVD-RAM 格式。有关 DVD-RAM 使用的更多信息，请参阅 [使用 DVD-RAM](#id-21.6.8.-shi-yong-dvdram)。
* **DVD+RW**：这是由 [DVD+RW Alliance](https://en.wikipedia.org/wiki/DVD%2BRW_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 播放器与所选光盘兼容。

## 21.6.1. 配置

要执行 DVD 刻录，请使用 [growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html)。此命令是 Port [sysutils/dvd+rw-tools](https://cgit.freebsd.org/ports/tree/sysutils/dvd+rw-tools/) 的一部分，支持所有 DVD 光盘类型。

这些工具使用 SCSI 子系统访问设备，因此必须加载或静态编译 [ATAPI/CAM 支持](/handbook/di-21-zhang-cun-chu/21.5.-chuang-jian-he-shi-yong-cd.md) 到内核中。如果刻录机使用 USB 接口，则无需此支持。有关 USB 设备配置的更多详细信息，请参阅 [USB 存储设备](/handbook/di-21-zhang-cun-chu/21.4.-usb-cun-chu-she-bei.md)。

ATAPI 设备还必须启用 DMA 访问，方法是在 **/boot/loader.conf** 中添加以下行：

```sh
hw.ata.atapi_dma="1"
```

在尝试使用 `dvd+rw-tools` 之前，请查阅 [硬件兼容性说明](http://fy.chalmers.se/~appro/linux/DVD+RW/hcn.html)。

> **注意**
>
> 如果需要图形用户界面，可考虑使用 Port [sysutils/k3b](https://cgit.freebsd.org/ports/tree/sysutils/k3b/)，它提供了一个用户友好的界面，支持 [growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html) 和许多其他刻录工具。

## 21.6.2. 刻录数据 DVD

由于 [growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html) 是 [mkisofs](/handbook/di-21-zhang-cun-chu/21.5.-chuang-jian-he-shi-yong-cd.md) 的前端，它将调用 [mkisofs(8)](https://man.freebsd.org/cgi/man.cgi?query=mkisofs\&sektion=8\&format=html) 来创建文件系统布局并执行 DVD 刻录过程。这意味着在刻录之前不需要创建数据的镜像。

要将 **/path/to/data** 中的数据刻录到 DVD+R 或 DVD-R，请使用以下命令：

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

在此示例中，`-J -R` 被传递给 [mkisofs(8)](https://man.freebsd.org/cgi/man.cgi?query=mkisofs\&sektion=8\&format=html)，以创建带有 Joliet 和 Rock Ridge 扩展的 ISO 9660 文件系统。有关更多详细信息，请参阅 [mkisofs(8)](https://man.freebsd.org/cgi/man.cgi?query=mkisofs\&sektion=8\&format=html)。

对于初始会话录制，`-Z` 可用于单次和多次会话。将 **/dev/cd0** 替换为 DVD 设备的名称。使用 `-dvd-compat` 表示光盘将被关闭，并且录制将不可追加。这还应提供更好的与 DVD-ROM 驱动器的光盘兼容性。

要刻录预制的镜像文件，如 `imagefile.iso`，请使用：

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

写入速度会根据所使用的光盘和驱动器自动检测并设置。要强制设置写入速度，请使用 `-speed=`。有关示例用法，请参阅 [growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html)。

> **注意**
>
> 为了支持大于 4.38 GB 的工作文件，必须通过将 `-udf -iso-level 3` 传递给 [mkisofs(8)](https://man.freebsd.org/cgi/man.cgi?query=mkisofs\&sektion=8\&format=html) 和所有相关程序（如 [growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html)）来创建 UDF/ISO-9660 混合文件系统。仅在创建 ISO 镜像文件或直接将文件写入光盘时需要此操作。由于以这种方式创建的光盘必须作为 UDF 文件系统挂载，并使用 [mount\_udf(8)](https://man.freebsd.org/cgi/man.cgi?query=mount_udf\&sektion=8\&format=html)，因此它只能在支持 UDF 的操作系统上使用。否则，它看起来就像包含损坏文件的光盘。
>
> 要创建这种类型的 ISO 文件，请使用：
>
> ```sh
> % mkisofs -R -J -udf -iso-level 3 -o imagefile.iso /path/to/data
> ```
>
> 要将文件直接写入光盘，请使用：
>
> ```sh
> # growisofs -dvd-compat -udf -iso-level 3 -Z /dev/cd0 -J -R /path/to/data
> ```
>
> 当 ISO 镜像中已包含大文件时，[growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html) 刻录该镜像时不需要额外选项。
>
> 务必使用最新版本的 Port [sysutils/cdrtools](https://cgit.freebsd.org/ports/tree/sysutils/cdrtools/)（包含 [mkisofs(8)](https://man.freebsd.org/cgi/man.cgi?query=mkisofs\&sektion=8\&format=html)），因为旧版本可能不支持大文件。如果最新版本无法使用，请安装 Port [sysutils/cdrtools-devel](https://cgit.freebsd.org/ports/tree/sysutils/cdrtools-devel/) 并阅读其 [mkisofs(8)](https://man.freebsd.org/cgi/man.cgi?query=mkisofs\&sektion=8\&format=html)。

## 21.6.3. 刻录 DVD-Video

DVD-Video 是基于 ISO 9660 和 micro-UDF (M-UDF) 规范的特定文件布局。由于 DVD-Video 具有特定的数据结构层次，因此需要使用特定程序，如 Port [multimedia/dvdauthor](https://cgit.freebsd.org/ports/tree/multimedia/dvdauthor/)，来创建 DVD。

如果已经存在 DVD-Video 文件系统的镜像，可像其他镜像一样刻录。如果使用 `dvdauthor` 制作了 DVD 并且结果存放在 **/path/to/video**，则可使用以下命令刻录 DVD-Video：

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

`-dvd-video` 选项传递给 [mkisofs(8)](https://man.freebsd.org/cgi/man.cgi?query=mkisofs\&sektion=8\&format=html)，指示其创建 DVD-Video 文件系统布局。此选项意味着使用了 `-dvd-compat` [growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html) 选项。

## 21.6.4. 使用 DVD+RW

与 CD-RW 不同，初次使用的 DVD+RW 需要先格式化。*推荐*在适当的情况下让 [growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html) 自动处理此事。然而，也可使用 `dvd+rw-format` 格式化 DVD+RW：

```sh
# dvd+rw-format /dev/cd0
```

此操作只需要执行一次，并且只需要格式化未使用过的 DVD+RW 光盘。格式化后，DVD+RW 可像往常一样刻录。

若要刻录全新的文件系统而不仅仅是向 DVD+RW 添加一些数据，无需首先清空光盘。可像下面这样覆盖之前的录制内容：

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

DVD+RW 格式支持向先前的录制内容追加数据。此操作将新的会话与现有的会话合并，因为它不被视为多会话写入。[growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html) 将*扩展*光盘上现有的 ISO 9660 文件系统。

例如，要将数据追加到 DVD+RW，请使用以下命令：

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

在后续写入时，应该使用与初始会话相同的 [mkisofs(8)](https://man.freebsd.org/cgi/man.cgi?query=mkisofs\&sektion=8\&format=html) 选项。

> **注意**
>
> 使用 `-dvd-compat` 以提高与 DVD-ROM 驱动器的兼容性。当使用 DVD+RW 时，该选项不会阻止数据的添加。

要清空光盘，请使用：

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

## 21.6.5. 使用 DVD-RW

DVD-RW 接受两种光盘格式：增量顺序格式和受限覆盖格式。默认情况下，DVD-RW 光盘使用顺序格式。

全新的 DVD-RW 可直接写入，而无需格式化。然而，若是非全新的 DVD-RW 且使用顺序格式，则需要在写入新初始会话之前先将其清空。

要清空顺序模式下的 DVD-RW，请使用：

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

> **注意**
>
> 使用 `-blank=full` 完全清空大约需要一个小时（1x 光盘）。如果 DVD-RW 将以 Disk-At-Once (DAO) 模式刻录，可使用 `-blank` 快速清空。要以 DAO 模式刻录 DVD-RW，请使用以下命令：
>
> ```sh
> # growisofs -use-the-force-luke=dao -Z /dev/cd0=imagefile.iso
> ```
>
> 由于 [growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html) 会自动尝试检测快速清空的光盘并启动 DAO 写入，因此不需要使用 `-use-the-force-luke=dao`。建议对任何 DVD-RW 都使用受限覆盖模式，因为这种格式比默认的增量顺序格式更加灵活。

要在顺序 DVD-RW 上写入数据，请使用与其他 DVD 格式相同的指令：

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

要将一些数据追加到先前的录制内容中，请使用 `-M` 和 [growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html)。然而，如果数据是追加到增量顺序模式下的 DVD-RW 上，将会创建新会话，结果是一个多会话光盘。

在受限覆盖格式的 DVD-RW 上，无需清空光盘即可开始新初始会话。只需使用 `-Z` 覆盖光盘即可。也可使用 `-M` 扩展已写入光盘的现有 ISO 9660 文件系统，结果将是单会话 DVD。

要将 DVD-RW 转换为受限覆盖格式，必须使用以下命令：

```sh
# dvd+rw-format /dev/cd0
```

要恢复为顺序格式，请使用：

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

## 21.6.6. 多会话

很少有 DVD-ROM 驱动器支持多会话 DVD，并且大多数情况下只读取第一个会话。DVD+R、DVD-R 和顺序格式的 DVD-RW 可接受多个会话。DVD+RW 和受限覆盖格式的 DVD-RW 不支持多会话。

使用以下命令，在 DVD+R、DVD-R 或顺序格式的 DVD-RW 上初始非关闭会话后，将向光盘添加新会话：

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

在 DVD+RW 或受限覆盖格式的 DVD-RW 上使用此命令时，将追加数据并将新会话与现有会话合并。结果将是一个单会话光盘。使用此方法在这些类型的光盘上首次写入后添加数据。

> **注意**
>
> 由于每次会话之间会消耗一些空间来标记会话的结束和开始，因此应添加包含大量数据的会话以优化光盘空间利用率。每个 DVD+R 的会话数量限制为 154 个，DVD-R 的会话数量限制约为 2000 个，DVD+R 双层的会话数量限制为 127 个。

## 21.6.7. 更多信息

要获取有关 DVD 的更多信息，请在光盘放入指定驱动器后使用 `dvd+rw-mediainfo /dev/cd0`。

有关 `dvd+rw-tools` 的更多信息，请参阅 [growisofs(1)](https://man.freebsd.org/cgi/man.cgi?query=growisofs\&sektion=1\&format=html)、[dvd+rw-tools 网站](http://fy.chalmers.se/~appro/linux/DVD+RW/) 和 [cdwrite 邮件列表](http://lists.debian.org/cdwrite/) 归档。

> **注意**
>
> 提交与 `dvd+rw-tools` 使用相关的问题报告时，请务必附上 `dvd+rw-mediainfo` 的输出。

## 21.6.8. 使用 DVD-RAM

DVD-RAM 写入器可使用 SCSI 或 ATAPI 接口。对于 ATAPI 设备，必须通过将以下行添加到 **/boot/loader.conf** 来启用 DMA 访问：

```sh
hw.ata.atapi_dma="1"
```

DVD-RAM 可被看作是可移动硬盘。像其他硬盘一样，在使用之前必须格式化 DVD-RAM。以下是格式化整个磁盘空间并使用标准 UFS2 文件系统的示例：

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

DVD 设备 `acd0` 必须根据实际配置更改。

DVD-RAM 格式化完成后，它就可像普通硬盘一样挂载：

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

挂载后，DVD-RAM 将可读写。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://book.bsdcn.org/handbook/di-21-zhang-cun-chu/21.6.-chuang-jian-he-shi-yong-dvd.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
