18.6.创建和使用 DVD 媒体

与 CD 相比,DVD 是下一代的光学媒体存储技术。DVD 可以比任何 CD 容纳更多的数据,是视频出版的标准。

可刻录 DVD 有五种物理格式:

  • DVD-R:这是第一个可用的 DVD 可记录格式。DVD-R 标准是由 DVD 论坛定义的。这种格式是一次写入。

  • DVD-RW: 这是 DVD-R 标准的可重写版本。一张 DVD-RW 可以被重写 1000 次左右。

  • DVD-RAM: 这是一种可重写的格式,可以被看作是一种可移动的硬盘驱动器。然而,这种媒体与大多数 DVD-ROM 驱动器和 DVD 视频播放器不兼容,只有少数 DVD 写入器支持 DVD-RAM 格式。请参考使用DVD-RAM,了解更多关于 DVD-RAM 的使用信息。

  • DVD+RW: 这是一种由 DVD+RW 联盟定义的可重写格式。一张 DVD+RW 可以被重写大约 1000 次。

  • DVD+R: 这种格式是 DVD+RW 格式的一次写入变体。

一张单层可刻录的 DVD 可以容纳 4,700,000,000 字节,实际上是 4.38GB 或 4485MB,因为 1 千字节是 1024 字节。

注意:

必须对物理介质和应用程序进行区分。例如,DVD-Video 是一种特定的文件布局,可以写在任何 DVD 物理介质上,如 DVD-R、DVD+R 或 DVD-RW。在选择媒体类型之前,要确保刻录机和 DVD 视频播放器都能与要选择的媒体兼容。

18.6.1. 配置

要执行 DVD 刻录,请使用 growisofs(1) 。这个命令是 sysutils/dvd+rw-tool 工具的一部分,它支持所有 DVD 媒体类型。

这些工具使用 SCSI 子系统来访问设备,因此 ATAPI/CAM 必须被加载或静态编译到内核中。如果刻录机使用 USB 接口,则不需要这种支持。关于 USB 设备配置的更多细节,请参考 [USB 存储设备]。

还必须为 ATAPI 设备启用 DMA 访问,在 /boot/loader.conf 中添加以下一行。

  1. hw.ata.atapi_dma="1"

在尝试使用dvd+rw-tools之前,请查阅硬件兼容性说明

注意:

对于图形用户界面,可以考虑使用 sysutils/k3b ,它为 growisofs(1)和许多其他刻录工具提供了一个用户友好的界面。

18.6.2. 刻录数据 DVD

由于 growisofs(1)mkisofs 的前端,它将调用 mkisofs(8) 来创建文件系统布局并在 DVD 上执行写入。这意味着在刻录过程中不需要创建数据的镜像。

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

  1. # 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 驱动器更好的媒体兼容性。

要刻录一个预制的图像,如imagefile.iso,使用:

  1. # 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文件使用:

创建这种类型的 ISO 文件:

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

将文件直接刻录到磁盘上:

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

当一个 ISO 映像已经包含大文件时,growisofs(1) 不需要额外的选项就可以将该映像刻录到磁盘上。请确保使用包含 mkisofs(8) 的最新版本的 sysutils/cdrtools ,因为旧版本可能不包含大文件支持。如果最新版本不能工作,请安装 sysutils/cdrtools-devel,并阅读其 mkisofs(8)

18.6.3. 刻录 DVD-Video

DVD-Video 是一种基于 ISO 9660 和 micro-UDF(M-UDF)规范的特定文件布局。由于 DVD-Video 提出了一个特定的数据结构层次,因此需要一个特定的程序,如 multimedia/dvdauthor 来编写 DVD 。

如果 DVD-Video 文件系统的映像已经存在,可以用与其他映像相同的方式进行刻录。如果使用 dvdauthor 制作 DVD ,并且目录在 /path/to/video 中,应该使用下面的命令来刻录 DVD-Video:

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

-dvd-video 被传递给 mkisofs(8) ,说明它创建一个 DVD-Video 文件系统布局。这个选项意味着 -dvd-compat growisofs(1) 选项。

18.6.4. 使用 DVD+RW

与 CD-RW 不同,原始的 DVD+RW 在第一次使用前需要被格式化。建议让 growisofs(1) 自动处理这个问题。也可以使用 dvd+rw-format 来格式化 DVD+RW :

  1. # dvd+rw-format /dev/cd0

只需执行一次此操作,只有原始的 DVD+RW 介质需要被格式化。格式化之后,就可以像往常一样刻录 DVD+RW 。

要刻录一个全新的文件系统,而不仅仅是在 DVD+RW 上追加一些数据,媒体不需要先清空。而是要这样清空数据:

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

DVD+RW 格式支持将数据追加到以前的记录中。这个操作包括将一个新的片段合并到现有的片段上,因为它不被认为是多片段写入。growisofs(1)扩展媒体上存在的 ISO 9660 文件系统。

例如,要向 DVD+RW 追加数据,请使用以下方法:

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

在以后的写入过程中,应该使用与初次刻录时使用的相同的 mkisofs(8) 选项。

注意:

使用 -dvd-compat 以获得与 DVD-ROM 驱动器更好的媒体兼容性。当使用 DVD+RW 时,这个选项不会导致数据无法添加。

要清空媒体,请使用:

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

18.6.5. 使用 DVD-RW

DVD-RW 接受两种光盘格式。顺序递增和受限覆写。默认情况下,DVD-RW 光盘使用顺序格式。

原生的 DVD-RW 可以直接写入,不需要进行格式化。然而,在写入一个新的数据之前,顺序格式的非原生 DVD-RW 需要进行清空。

要清空顺序 DVD-RW 请使用:

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

注意:

使用 -blank=full 进行完全清空,在 1x 媒体上大约需要一个小时。如果 DVD-RW 将以一次性磁盘(DAO)模式刻录,可以使用 -blank 进行快速清空。要在 DAO 模式下刻录 DVD-RW ,请使用以下命令:

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

由于 growisofs(1) 会自动尝试检测快速的空白介质并进行 DAO 写入,所以不需要使用-use-the-force-luke=dao

任何 DVD-RW 都应该使用受限覆盖模式,因为这种格式比默认的增量顺序更灵活。

要在连续格式的 DVD-RW 上写入数据,使用与其他 DVD 格式相同的指令:

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

要将一些数据追加到以前的记录中,请使用 growisofs(1)-M 选项 。然而,如果在 DVD-RW 上以增量顺序模式追加数据,将在光盘上创建一个新的会话,结果将是一个多会话光盘。

在一个新的初始会话之前,限制覆盖格式的 DVD-RW 不需要清空。可以用 -Z 覆盖光盘。也可以用 -M 来扩展写在光盘上的现有 ISO 9660 文件系统。最后会是一个单会话 DVD。

要使 DVD-RW 成为限制覆盖格式,必须使用以下命令:

  1. # dvd+rw-format /dev/cd0

要改回顺序格式,请使用:

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

18.6.6. 多会话光盘

很少有 DVD-ROM 驱动器支持多会话的 DVD,大多数时候只能读取第一个会话。DVD+R、DVD-R 和 DVD-RW 的顺序格式可以接受多个会话。对于 DVD+RW 和 DVD-RW 限制性覆写格式,不存在多会话的概念。

在顺序格式的DVD+R、DVD-R或DVD-RW上的初始非封闭会话后,使用以下命令将在光盘上添加一个新的会话:

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

在限制覆盖模式下对 DVD+RW 或 DVD-RW 使用这个命令,会在将新的会话合并到现有会话的同时追加数据。其结果将是一张单节光盘。使用这种方法可以在这些类型的媒体上进行初始写入后添加数据。

注意:

由于媒体上的一些空间在每个会话之间被用来标记会话的结束和开始,所以应该尽量使用大数据会话,减少会话数量以优化媒体空间。对于 DVD+R 来说,会话的数量被限制在 154 个,对于 DVD-R 来说大约是 2000 个,对于双层 DVD+R 来说是 127 个。

18.6.7. DVD 的更多信息

要获得关于 DVD 的更多信息,使用 dvd+rw-mediainfo /dev/cd0 ,同时在指定的驱动器中的光盘。

关于 dvd+rw-tools 的更多信息可以在 growisofs(1)dvd+rw-tools 网站以及 cdwrite 邮件列表存档中找到。

注意:

当创建一个与 dvd+rw-tools 有关的问题报告时,总是包括 dvd+rw-mediainfo 的输出。

18.6.8. 使用DVD-RAM

DVD-RAM写入器可以使用 SCSI 或 ATAPI 接口。对于 ATAPI 设备,必须通过在 /boot/loader.conf 中添加以下一行来启用 DMA 访问:

  1. hw.ata.atapi_dma="1"

DVD-RAM 可以被看作是一个可移动的硬盘驱动器。像其他硬盘一样,DVD-RAM 在使用前必须被格式化。在这个例子中,整个磁盘空间将被格式化为标准的 UFS2 文件系统:

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

必须根据配置改变 DVD 设备 acd0 的位置。

DVD-RAM 被格式化以后,它就可以像普通硬盘一样被挂载:

  1. # mount /dev/acd0 /mnt

安装完毕后,DVD-RAM 将可读可写。