光盘驱动器
来自维基百科
- 在计算机技术中,光盘驱动器 (ODD) 是一种光盘驱动器,它使用激光或可见光谱内或附近的电磁波作为从光盘读取或写入数据过程的一部分。有些驱动器只能从光盘读取数据,但最近的驱动器通常既是读取器又是刻录机,也称为烧录器或写入器。光盘、DVD和蓝光光盘是常见的光盘介质类型,可以通过此类驱动器读取和刻录。光盘驱动器是通用名称;驱动器通常被描述为“CD”、“DVD”或“蓝光”,后跟“驱动器”、“刻录机”等。
刻录
光盘驱动器的刻录过程包括创建或获取镜像并将其写入光盘介质。镜像原则上可以是任何数据文件。如果您想挂载生成的介质,那么它通常是ISO 9660文件系统镜像文件。音频和多媒体CD通常从.bin文件刻录,由.toc文件或.cue文件控制,这些文件指示所需的音轨布局。
安装刻录工具
如果您想使用带有图形用户界面的程序,请按照#使用图形界面刻录CD/DVD/BD进行操作。
这里列出的程序是面向命令行的。它们是大多数免费GUI程序用于CD、DVD和BD的后端。GUI用户在进行故障排除或刻录活动脚本编写时可能会用到它们。
您至少需要一个用于创建文件系统镜像的程序和一个能够将数据刻录到您所需介质类型的程序。
可用于创建ISO 9660镜像的程序有:
传统选择是mkisofs,因为它比较老旧。
可用于刻录到介质的程序有:
- cdrdao(1) 来自 cdrdao (仅限CD,仅限TOC/CUE/BIN)
- cdrecord(1) 来自 cdrtools
- cdrskin(1) 来自 libburn
- growisofs(1) 来自 dvd+rw-tools (仅限DVD和BD)
- xorriso(1) 和 xorrecord(1) 来自 libisoburn
传统选择是cdrecord用于CD,growisofs用于DVD和蓝光光盘,因为cdrecord是第一个提供无需描述文件即可写入CD的程序,而growisofs是第一个提供无需刻录程序人为限制即可写入DVD和BD的程序。要将TOC/CUE/BIN文件写入CD,请安装cdrdao。
用于CD、DVD和BD刻录的免费GUI程序至少依赖于上述软件包之一。
xorrisofs 支持本文档中显示的mkisofs选项。
cdrskin 支持显示的 cdrecord 选项;xorrecord 也支持那些不处理音频CD的选项。
从现有文件制作ISO镜像
创建ISO镜像的最简单方法是首先将所需文件复制到一个目录,例如:./for_iso
。
然后使用mkisofs生成镜像文件
$ mkisofs -V "ARCHIVE_2013_07_27" -J -r -o isoimage.iso ./for_iso
这些选项中的每一个都在以下部分中进行了解释。
基本选项
-V
- 指定文件系统的名称(已分配给)。ISO 9660标准规范对32个字符的字符串长度以及允许的字符集(“A”到“Z”、“0”到“9”和“_”)施加了限制。如果介质是自动挂载的,则此卷标可能会显示为挂载点。
-J
- 启用Joliet扩展,该扩展分配特殊空间以Unicode存储文件名(每个文件最多64个UTF-16字符)。
-joliet-long
- 将Joliet表中的文件名最大长度从64个增加到103个UTF-16字符。不符合Joliet规范,并且不常用。
-r
- 启用Rock Ridge扩展,该扩展向镜像添加POSIX文件系统语义,包括支持长达255个字符的文件名和Unix风格的文件权限。
-o
- 设置生成的ISO镜像的文件路径。
嫁接点
也可以让mkisofs从各种路径收集文件和目录
$ mkisofs -V "BACKUP_2013_07_27" -J -r -o backup_2013_07_27.iso \ -graft-points \ /photos=/home/user/photos \ /mail=/home/user/mail \ /photos/holidays=/home/user/holidays/photos
-graft-points
启用对 pathspecs 的识别,pathspecs 由ISO文件系统中的目标地址(例如 /photos
)和源地址(例如 /home/user/photos
)组成。两者用“=”字符分隔。
因此,此示例将目录 /home/user/photos
、/home/user/mail
和 /home/user/holidays/photos
分别放入ISO镜像中,作为 /photos
、/mail
和 /photos/holidays
。
程序mkisofs和xorrisofs接受相同的选项。为了安全备份,请考虑使用带有 --for_backup
选项的 xorrisofs,该选项记录最终的ACL并为每个数据文件存储MD5校验和。
有关其选项的更多信息,请参阅mkisofs(8)和xorrisofs(1)的手册页。
挂载ISO镜像
如果您想浏览其文件,可以挂载ISO镜像。要挂载ISO镜像,我们可以使用
# mount -t iso9660 -o ro,loop /path/to/file.iso /mount-point
完成镜像检查后,不要忘记卸载镜像
# umount /mount-point
另请参阅Mounting images as user以了解如何在没有root权限的情况下挂载。
将img/ccd转换为ISO镜像
要转换 img
/ccd
镜像,您可以使用ccd2iso
$ ccd2iso ~/image.img ~/image.iso
了解您的光盘驱动器名称
在本节的其余部分,假定您的刻录设备名称为/dev/sr0
。
通过以下方式检查
$ cdrecord dev=/dev/sr0 -checkdrive
这应该报告驱动器的Vendor_info
和Identification
字段。
如果未找到驱动器,请检查是否存在任何/dev/sr*
,以及它们是否为您或您的组提供读/写权限(wr-
)。如果不存在/dev/sr*
,请尝试手动加载模块sr_mod
。
读取CD或DVD的卷标
如果您想获取介质的名称/标签,请使用dd
$ dd if=/dev/sr0 bs=1 skip=32808 count=32
从CD、DVD或BD创建ISO镜像
为了仅从光盘复制实际数据,而不是填充它的空块,首先检索其块/扇区计数和大小(大多数情况下为2048)。
$ isosize -x /dev/sr0
sector count: 2041796, sector size: 2048
或者,或者
$ isoinfo -d -i /dev/sr0 | awk '/block size|Volume size/'
Logical block size is: 2048 Volume size is: 2041796
/dev/sr0
。然后使用dd使用获得的值复制数据
$ dd if=/dev/sr0 of=discmage.iso bs=sector_size count=sector_count status=progress
如果原始介质是可启动的,则副本将是可启动的镜像。您可以将其用作虚拟机的伪CD,或将其刻录到光盘介质上,该介质随后应变为可启动的。[1]
使用dvdisaster创建错误恢复数据
dvdisasterAUR 或 dvdisaster-unofficialAUR 是一个工具,可以向光盘媒体添加纠错数据。这些数据可以帮助从刮擦或损坏的光盘中恢复内容。
1. 将 CD、DVD 或蓝光光盘插入光驱。
2. 确保光盘未挂载。您可以使用以下命令卸载它
sudo umount /dev/cdrom
3. 从命令行运行 dvdisaster,或在应用程序菜单中找到它。
4. 在 dvdisaster 界面中,选择 创建纠错数据。
5. 从下拉菜单中选择光盘类型 (CD/DVD/BD)。
6. 点击 加载光盘 按钮以扫描光盘媒体的内容。
7. dvdisaster 将分析光盘并显示其结构。
8. 选择一个位置来保存错误恢复 (ECC) 文件。
9. 设置 纠错级别。 较高的级别提供更好的恢复效果,但会增加 ECC 文件大小。
2. 点击 生成 开始创建纠错数据。
10. 该过程可能需要几分钟,具体取决于光盘的大小。
11. ECC 文件创建完成后,dvdisaster 将提示您验证该文件。
12. 保存原始光盘镜像 (ISO) 和 ECC 文件以备将来使用。
13. 建议将您的 ISO 和 ECC 文件存储在多个设备或云存储中,以获得最大的安全性。
最佳结果提示
- 使用高质量的光盘来创建备份。
- 将您的 ECC 文件与 ISO 镜像一起存储,以便于恢复。
- dvdisaster 可以与 ISO 文件协同工作,而无需原始光盘。
使用 dvdisaster 重建损坏的光盘
如果您的光盘被刮擦或以其他方式损坏,dvdisaster 可以使用纠错 (ECC) 文件帮助恢复丢失的数据。 1. 将损坏的 CD、DVD 或蓝光光盘插入光驱。
2. 卸载光盘以避免冲突
sudo umount /dev/cdrom
3. 启动 dvdisaster
4. 在 dvdisaster 界面中,选择 扫描和修复 模式。
5. 通过从下拉菜单中选择驱动器或使用 加载光盘 按钮来加载损坏的光盘。
5. 点击 加载 ECC 以选择相应的纠错文件(通常是 `.ecc`),该文件在您首次刻录光盘时创建。
6. 确保 ECC 文件与光盘的结构完全匹配。如果您没有匹配的 ECC 文件,此方法将不起作用。
7. 点击 扫描 开始读取光盘并识别损坏的扇区。
8. dvdisaster 将显示光盘状态的可视化表示,显示良好、不可读和已纠正的扇区。
9. 扫描完成后,点击 修复 以使用 ECC 文件重建丢失或损坏的数据。 10. 恢复的数据将被写入新的 ISO 镜像文件。
11. 选择一个目标位置来保存重建的 ISO 镜像。示例:`/home/user/recovered_disc.iso`
12. 点击 **“保存”** 完成该过程。
13. 挂载 ISO 以验证文件是否已成功恢复
sudo mount -o loop /home/user/recovered_disc.iso /mnt
14. 检查 `/mnt` 中的内容以确保数据完整性。
最佳结果提示
- 使用可靠的光驱,它可以很好地读取损坏的光盘。
- 确保 ECC 文件与您的 ISO 备份安全地存储在一起。
- 如果恢复失败,请清洁光盘并尝试再次扫描。
视频: https://www.youtube.com/watch?v=zolvCcxcN4g
擦除 CD-RW 和 DVD-RW
用过的 CD-RW 媒体需要先擦除,然后才能覆盖先前录制的数据。这可以通过以下方式完成
$ cdrecord -v dev=/dev/sr0 blank=fast
空白化有两个选项:blank=fast
和 blank=all
。完全空白化与完全写入运行的时间一样长。它会覆盖 CD 上的有效负载数据。然而,这不应被视为安全地使这些数据不可读。为此,建议使用随机数据进行多次完全写入运行。
替代命令是
$ cdrskin -v dev=/dev/sr0 blank=fast $ xorriso -outdev /dev/sr0 -blank as_needed
要擦除 DVD-RW,请使用 dvd+rw-tools 中的 dvd+rw-format 实用程序
$ dvd+rw-format -blank=fast /dev/sr0
替代命令是
$ cdrecord -v dev=/dev/sr0 blank=fast $ cdrskin -v dev=/dev/sr0 blank=deformat_sequential_quickest $ xorriso -outdev /dev/sr0 -blank deformat_quickest
这种快速空白化的 DVD-RW 不适合多会话,也不能接受无法预测长度的输入流。为此,必须使用以下方法之一
$ cdrecord -v dev=/dev/sr0 blank=all $ dvd+rw-format -blank=full /dev/sr0 $ cdrskin -v dev=/dev/sr0 blank=as_needed $ xorriso -outdev /dev/sr0 -blank as_needed
其他媒体类型要么是写入一次的(CD-R、DVD-R、DVD+R、BD-R),要么是可以覆盖的,而无需擦除(DVD-RAM、DVD+RW、BD-RE)。
格式化 DVD-RW
格式化的 DVD-RW 媒体可以在不事先擦除的情况下被覆盖。因此,请考虑在其生命周期中应用一次
$ dvd+rw-format -force /dev/sr0 $ cdrskin -v dev=/dev/sr0 blank=format_if_needed $ xorriso -outdev /dev/sr0 -format as_needed
与 DVD-RAM、DVD+RW 和 BD-RE 不同,格式化的 DVD-RW 不能直接用作(慢速)硬盘,而是需要驱动程序 pktcdvd 的中介。 请参阅 pktsetup(8)。
格式化 BD-RE 和 BD-R
BD-RE 在首次使用前需要格式化。当刻录程序检测到未格式化状态时,会自动完成此操作。 然而,有效负载区域的大小会受到上述 DVD-RW 格式命令的专家版本的影响。
BD-R 可以未格式化或格式化使用。未格式化时,它们以全额定速度写入并提供最大的存储容量。 格式化后,它们在写入操作期间进行校验读取,坏块被备用区域中的块替换。这会将写入速度降低到额定速度的一半或更低。 默认大小的备用区域将存储容量减少 768 MiB。
growisofs 默认格式化 BD-R。其他程序则不这样做。 可以阻止 growisofs 进行格式化。 cdrskin 和 xorriso 可以在格式化的 BD-RE 或 BD-R 上以全额定速度写入
$ growisofs -use-the-force-luke=spare:none ...growisofs.or.mkisofs.options... $ cdrskin stream_recording=on ...cdrecord.options... $ xorriso -stream_recording on ...xorriso.commands...
将 ISO 镜像刻录到 CD、DVD 或 BD
要将准备好的 ISO 镜像文件 isoimage.iso
刻录到光盘媒体上,对于 CD,运行
$ cdrecord -v -sao dev=/dev/sr0 isoimage.iso
对于 DVD 或 BD,运行
$ growisofs -dvd-compat -Z /dev/sr0=isoimage.iso
对于 CD、DVD 或 BD,运行
$ xorriso -as cdrecord -v -sao dev=/dev/sr0 isoimage.iso
- 开始写入媒体时,请确保媒体未挂载。 如果媒体包含可读的文件系统,则可能会自动挂载。 在最好的情况下,它将阻止刻录程序使用刻录机设备。 在最坏的情况下,由于读取操作干扰了驱动器,将会发生刻录错误。 因此,如果有疑问,请执行
# umount /dev/sr0
- growisofs 在空白 BD-R 媒体上存在一个 小 bug。 它在刻录完成后发出错误消息。 然后像 k3b 这样的程序会认为整个刻录运行失败。 为了防止这种情况,要么
- 在将空白 BD-R 提交给 growisofs 之前,使用
dvd+rw-format /dev/sr0
格式化它 - 要么使用 growisofs 选项
-use-the-force-luke=spare:none
- 在将空白 BD-R 提交给 growisofs 之前,使用
验证刻录的 ISO 镜像
您可以验证刻录媒体的完整性,以确保它不包含错误。 始终弹出媒体并在验证前重新插入。 这将保证任何内核缓存都不会用于读取数据。
首先计算原始 ISO 镜像的 MD5 校验和
$ md5sum isoimage.iso
e5643e18e05f5646046bb2e4236986d8 isoimage.iso
接下来计算媒体上 ISO 文件系统的 MD5 校验和。 虽然某些媒体类型传递的数据量与提交给刻录程序的数据量完全相同,但许多其他媒体类型在读取时会附加尾部垃圾数据。 因此,您应该将读取限制为 ISO 镜像文件的大小。
$ blocks=$(expr $(du -b isoimage.iso | awk '{print $1}') / 2048)
$ dd if=/dev/sr0 bs=2048 count=$blocks | md5sum
43992+0 records in 43992+0 records out 90095616 bytes (90 MB, 86 MiB) copied, 0.359539 s, 251 MB/s e5643e18e05f5646046bb2e4236986d8 -
两次运行都应产生相同的 MD5 校验和(此处:e5643e18e05f5646046bb2e4236986d8
)。 如果它们不相同,您可能还会从 dd
运行中收到 I/O 错误消息。 如果您有兴趣,dmesg 可能会告诉您有关 SCSI 错误和块号的信息。
ISO 9660 和即时刻录
无需在将新兴的 ISO 文件系统写入光盘媒体之前将其存储在硬盘上。 只有非常旧的计算机中的非常旧的 CD 驱动器才可能因驱动器缓冲区为空而导致刻录失败。
如果您从 mkisofs 中省略选项 -o
,那么它会将 ISO 镜像写入标准输出。 这可以管道传输到刻录程序的标准输入中。
$ mkisofs -V "ARCHIVE_2013_07_27" -J -r ./for_iso | \ cdrecord -v dev=/dev/sr0 -waiti -
选项 -waiti
在这里不是真正需要的。 它阻止 cdrecord 在 mkisofs 开始其输出之前写入媒体。 这将允许 mkisofs 读取媒体而不会干扰已经开始的刻录运行。 请参阅下一节关于多会话的内容。
在 DVD 和 BD 上,您可以让 growisofs 为您操作 mkisofs 并即时刻录其输出
$ growisofs -Z /dev/sr0 -V "ARCHIVE_2013_07_27" -r -J ./for_iso
多会话
ISO 9660 多会话意味着具有可读文件系统的媒体在其第一个未使用的块地址处仍然可写,并且新的 ISO 目录树将被写入此未使用的部分。 新的树伴随着新添加或覆盖的数据文件的内容块。 应该保持与旧 ISO 树中相同的数据文件的块将不会被再次写入。
Linux 和许多其他操作系统将挂载媒体上最后一个会话中的目录树。 这个最新的树通常也会显示旧会话的文件。
cdrecord 的多会话
如果使用了 cdrecord 选项 -multi
,则 CD-R 和 CD-RW 保持可写(也称为“可追加”)
$ cdrecord -v -multi dev=/dev/sr0 isoimage.iso
然后可以查询媒体以获取下一个会话的参数
$ m=$(cdrecord dev=/dev/sr0 -msinfo)
借助这些参数和驱动器中的可读媒体,您可以生成附加 ISO 会话
$ mkisofs -M /dev/sr0 -C "$m" \ -V "ARCHIVE_2013_07_28" -J -r -o session2.iso ./more_for_iso
最后将会话附加到媒体并使其再次可追加
$ cdrecord -v -multi dev=/dev/sr0 session2.iso
程序 cdrskin 和 xorrecord 也对 DVD-R、DVD+R、BD-R 和未格式化的 DVD-RW 执行此操作。 程序 cdrecord 至少对 DVD-R 和 DVD-RW 执行多会话。 当然,它们都对 CD-R 和 CD-RW 执行多会话。
大多数可重复使用的媒体类型不记录会话历史记录,而该历史记录对于挂载内核是可识别的。 但是使用 ISO 9660,即使在这些媒体上也可以实现多会话效果。
growisofs 和 xorriso 可以做到这一点,并隐藏了大部分复杂性。
growisofs 的多会话
默认情况下,growisofs 使用 mkisofs 作为后端来创建 ISO 镜像,并将大部分程序参数转发给它。 请参见上面 mkisofs 的示例。 它禁止选项 -o
并弃用选项 -C
。 默认情况下,它使用 mkisofs。 您可以指定通过设置环境变量 MKISOFS
来使用其他兼容的后端程序之一
$ export MKISOFS="xorrisofs"
希望在光盘媒体上开始新的 ISO 文件系统,可以通过选项 -Z
来表达
$ growisofs -Z /dev/sr0 -V "ARCHIVE_2013_07_27" -r -J ./for_iso
希望将更多文件作为新会话追加到现有的 ISO 文件系统,可以通过选项 -M
来表达
$ growisofs -M /dev/sr0 -V "ARCHIVE_2013_07_28" -r -J ./more_for_iso
有关详细信息,请参阅 growisofs(1) 手册以及 mkisofs 和 xorrisofs 的手册。
xorriso 的多会话
xorriso 从媒体的空白状态了解到希望开始新的 ISO 文件系统。 因此,如果媒体包含数据,则适合对其进行空白化。 命令 -blank as_needed
适用于所有类型的可重复使用媒体,甚至适用于硬盘上数据文件中的 ISO 镜像。 如果应用于空白的一次写入媒体,则不会导致错误。
$ xorriso -outdev /dev/sr0 -blank as_needed \ -volid "ARCHIVE_2013_07_27" -joliet on -add ./for_iso --
在非空白可写媒体上,如果使用命令 -dev
而不是 -outdev
,xorriso 会追加新给定的光盘文件。 当然,这里不应给出命令 -blank
$ xorriso -dev /dev/sr0 \ -volid "ARCHIVE_2013_07_28" -joliet on -add ./more_for_iso --
有关详细信息,请参阅 xorriso(1) 手册页,尤其是其示例。
BD 缺陷管理
BD-RE 和格式化的 BD-R 媒体通常在启用缺陷管理的情况下写入。 此功能在写入块仍存储在驱动器缓冲区中时读取它们。 如果读取质量较差,则块将被再次写入或重定向到备用区域,数据将在其中存储在替换块中。
这种校验读取将写入速度降低到驱动器和 BD 媒体额定速度的最多一半。 有时情况甚至更糟。 大量使用备用区域会导致读取操作期间出现长时间延迟。 因此,缺陷管理并非总是可取的。
cdrecord 不格式化 BD-R。 但是,它无法阻止 BD-RE 媒体上的缺陷管理。
growisofs 默认格式化 BD-R。 可以通过选项 -use-the-force-luke=spare:none
来防止缺陷管理。 但是,它也无法阻止 BD-RE 媒体上的缺陷管理。
cdrskin、xorriso 和 xorrecord 默认情况下不格式化 BD-R。 它们分别通过 cdrskin blank=format_if_needed
、xorriso -format as_needed
、xorrecord blank=format_overwrite
进行格式化。 这三个程序可以通过 cdrskin stream_recording=on
、xorriso -stream_recording on
、xorrecord stream_recording=on
来禁用 BD-RE 和已格式化 BD-R 的缺陷管理。
刻录音频 CD
创建您的音轨并将其存储为未压缩的 16 位、44100-Hz 立体声 WAV 文件。 要将 MP3 转换为 WAV,请确保安装了 lame,cd 到包含 MP3 文件的目录,然后运行
$ for FILE in *.mp3; do lame --decode "$FILE" "${FILE%.mp3}.wav"; done
如果您在尝试刻录使用 LAME 转换的 WAV 文件时遇到错误,请尝试使用 mpg123 解码
$ for FILE in *.mp3; do mpg123 --rate 44100 --stereo --buffer 3072 --resync -w "${FILE%.mp3}.wav" "$FILE"; done
要将 AAC 转换为 WAV,请确保安装了 faad2 并运行
$ for FILE in *.m4a; do faad "$FILE"; done
要修复现有 WAV 文件(或许多其他格式)的比特率,请尝试使用 sox
$ for FILE in *.wav; do sox "$FILE" -c 2 -r 44100 "${FILE%.wav}-ok.wav"; done
命名音频文件的方式应使其在按字母顺序列出时以所需的曲目顺序排列,例如 01.wav
、02.wav
、03.wav
等。
使用 cdrtools,使用以下命令模拟将 WAV 文件刻录为音频 CD
$ cdrecord -dummy -v -pad speed=X dev=/dev/sr0 -dao -swab *.wav
如果一切正常,您可以删除 -dummy
标志以实际刻录 CD。
-audio
标志。或者,使用 cdrdao,使用以下命令创建“目录表”文件
$ { echo "CD_DA" printf 'TRACK AUDIO\nFILE "%s" 0\n' *.wav } > toc
这将使其在曲目之间不存在间隙。 可选地,如果您想在某些曲目之间插入 X 秒的间隙,您可以编辑 toc 文件并在该曲目的 TRACK AUDIO 和 FILE 行之间插入以下行
PREGAP 00:0X:00
然后,我们刻录 CD
$ cdrdao write --speed X toc
可以调整速度,较低的速度会产生更高的质量结果。 这是因为音频 CD 格式的纠错能力不如数据存储格式。
要测试新的音频 CD,请使用 MPlayer
$ mplayer cdda://
刻录 BIN/CUE
要刻录 BIN/CUE 镜像,请运行
$ cdrdao write --device /dev/sr0 image.cue
混合模式光盘的 TOC/CUE/BIN
ISO 镜像仅存储单个数据轨道。 如果您想创建混合模式光盘(带有多个音轨的数据轨道)的镜像,那么您需要制作 TOC/BIN 对
$ cdrdao read-cd --read-raw --datafile image.bin --driver generic-mmc:0x20000 --device /dev/cdrom image.toc
某些软件只喜欢 CUE/BIN 对,您可以使用 toc2cue(cdrdao 的一部分)制作 CUE 表
$ toc2cue image.toc image.cue
刻录后端问题
如果您遇到问题,您可以在邮件列表 cdwrite@other.debian.org 寻求建议,或者尝试写入程序手册页末尾附近列出的支持邮件地址之一。
告诉您尝试的命令行、媒体类型(例如 CD-R、DVD+RW、...)以及失败的症状(程序消息、用户期望落空、...)。 您可能会被要求获取受影响程序的最新版本或开发版本并进行测试运行。 但答案也可能是您的驱动器不喜欢特定的媒体。
使用图形界面刻录 CD/DVD/BD
有若干应用程序可以在图形化环境下刻录 CD。
另请参阅 Wikipedia:光盘制作软件比较。
- AcetoneISO — 多合一 ISO 工具(支持 BIN、MDF、NRG、IMG、DAA、DMG、CDI、B5I、BWI、PDI 和 ISO)。
- BashBurn — 轻量级基于终端菜单的 CD/DVD 刻录工具前端。
- Brasero — GNOME 桌面的光盘刻录应用程序,旨在尽可能简单易用。
- cdw — cdrecord、mkisofs、growisofs、dvd+rw-mediainfo、dvd+rw-format 和 xorriso 的 Ncurses 前端。
- Gnome CD Master (gcdmaster) — 用于创建音频 CD 并使用 cdrdao 刻录它们的 GUI 前端。
- Graveman — 基于 GTK 的 CD/DVD 刻录应用程序。它需要配置以指向正确的设备。
- isomaster — ISO 镜像编辑器。
- K3b — 功能丰富且易于使用的 CD 刻录和翻录应用程序,基于 KDElibs。属于 kde-multimedia 的一部分。
- X-CD-Roast — 轻量级 cdrtools 前端,用于 CD 和 DVD 写入。
- Xfburn — libburnia 库的简单前端,支持 CD/DVD(-RW)、ISO 镜像和 BurnFree。
- xorriso-tcltk — ISO 和 CD/DVD/BD 刻录工具 xorriso 的图形前端
播放
CD
播放音频 CD 需要 libcdio 软件包。要使 KDE 应用程序(如 Dolphin)能够读取音频 CD,请安装 audiocd-kio。
DVD
如果您希望播放加密的 DVD,则必须安装 libdvd* 软件包
此外,您必须安装播放器软件。流行的 DVD 播放器有 MPlayer、xine 和 VLC。请参阅视频播放器列表以及 MPlayer 的具体说明。
蓝光
请参阅 Blu-ray#播放。
翻录
翻录是将音频或视频内容复制到硬盘的过程,通常来自可移动媒体或媒体流。
音频 CD
控制台
- abcde — 用于翻录音频 CD 的综合命令行工具。
- cdda2wav — 具有偏执模式支持的 CD 音频提取程序。
- cdparanoia — 光盘数字音频 (CDDA) 数字音频提取 (DAE) 工具。
- cyanrip — 功能丰富的 CD 翻录器,具有 MusicBrainz 集成、错误检测、日志生成、多种格式、HDCD 解码、封面艺术自动下载。
- redumper — 一款高级字节完美光盘转储器,支持增量转储、高级 SCSI/C2 修复、智能音频 CD 偏移检测以及许多其他功能。
- ripright — 模仿 autorip 的极简 CD 翻录器。
- ripit — 支持 MusicBrainz、freeddb 和各种编解码器的命令行翻录器。
- https://www.ripit.pl/ || ripitAUR
- shnsplit — 根据 CUE 文件拆分 .wav 和 .flac 文件,并对拆分后的片段进行编码。是 ABCDE 的有用伴侣。
- whipper — CD 翻录器,以准确性而非速度为目标。使用 cdparanoia、MusicBrainz、AccurateRip。
图形界面
- Asunder — 基于 GTK 的 CD 翻录程序。
- Audex — 基于 KDE 的 CD-ROM 驱动器的音频抓取工具。属于 kde-multimedia 的一部分。
- fre:ac — 音频转换器和 CD 翻录器,支持各种流行的格式和编码器。
- https://freac.org/ || freacAUR
- Goobox — GNOME 的 CD 播放器和翻录器。
- Grip — GNOME 项目中快速轻便的 CD 翻录器,类似于 Audiograbber。
- K3b — 功能丰富且易于使用的 CD/DVD 刻录和翻录应用程序,基于 KDElibs。属于 kde-multimedia 的一部分。
- KAudioCreator — 用于翻录和编码音频 CD 的 KDE 程序。已不再维护且 无法启动。
- ripperX — GTK 程序,用于翻录 CD 音轨并将它们编码为 Ogg、MP3 或 FLAC 格式。
- rubyripper — 音频光盘翻录器,尝试通过多次翻录同一音轨并纠正任何差异来提供安全的翻录。
- Sound Juicer — GNOME 的 CD 翻录器。
- soundKonverter — 各种音频转换器的前端。
DVD 视频
另请参阅 Wikipedia:DVD 翻录软件比较。
通常,翻录 DVD 的过程可以分解为两个子任务
- 数据提取 — 将音频和/或视频数据复制到硬盘,
- 转码 — 将提取的数据转换为合适的格式。
有些实用程序执行这两个任务,而另一些则专注于其中一个方面。
控制台
- dvdbackup — 用于纯数据提取的工具,不进行转码。它对于结合 libdvdcss 创建加密 DVD 的精确副本,或者为其他无法读取加密 DVD 的实用程序解密视频非常有用。
- FFmpeg — 完整且免费的 Linux/Unix 互联网直播音频和视频广播解决方案,能够从 DVD 视频 ISO 镜像中直接翻录任何格式(音频/视频),只需选择 ISO 镜像作为输入并继续执行所需选项即可。它还允许进行混音降噪、缩小、分割、选择流等功能。
- HandBrake CLI — 简单而强大的视频转码器,非常适合批量 mkv/x264 翻录。
- MEncoder — 免费的命令行视频解码、编码和过滤工具。它支持翻录和转码 DVD 视频。
- subtitleripper — 将 DVD 字幕转换为文本格式。
- Transcode — 用于终端/控制台的视频/DVD 翻录器和编码器。它已过时/不再积极维护。
- || transcodeAUR
- Vobcopy — 将 DVD .vob 文件复制到硬盘,并在复制过程中解密它们。
图形界面
- dvd::rip — transcode 的前端,用于将 DVD 提取到硬盘并进行转码,或即时提取和转码。
- HandBrake — 简单而强大的视频转码器,非常适合批量 mkv/x264 翻录。GTK 版本。
- K3b — 功能丰富且易于使用的 CD/DVD 刻录和翻录应用程序,基于 KDElibs。属于 kde-multimedia 的一部分。
- OGMRip — 一个应用程序和一组库,用于使用各种编解码器将 DVD 翻录和编码为 AVI、OGM、MP4 或 Matroska 文件。它依赖于 mplayer、mencoder、ogmtools、mkvtoolnix、mp4box、oggenc、lame 和 faac 来执行其任务。
DVD音频
- Python Audio Tools — 包含 dvda2track,这是一个易于使用的命令行工具,用于将 DVD 音频轨道提取为未压缩的 wav 文件。
多格式
- Aaru — 用于 CD、DVD 和硬盘驱动器存档翻录的软件
- https://aaru.app || aaruAUR
故障排除
Brasero 无法标准化音频 CD
如果您尝试刻录,它可能会在名为“标准化”的第一步停止。
作为一种解决方法,您可以使用编辑 > 插件菜单禁用标准化插件
VLC:错误“... 无法打开光盘 /dev/dvd”
如果您收到类似这样的错误
vlc dvdread could not open the disc "/dev/dvd"
这可能是因为您的系统上没有设备节点 /dev/dvd
。Udev 不再创建 /dev/dvd
,而是使用 /dev/sr0
。要解决此问题,请编辑 VLC 配置文件 (~/.config/vlc/vlcrc
)
# DVD device (string) dvd=/dev/sr0
DVD 驱动器噪音大
如果播放 DVD 视频导致系统声音非常大,可能是因为光盘旋转速度高于所需速度。要临时更改驱动器的速度,请运行
# eject -x 12 /dev/dvd
有时
# hdparm -E12 /dev/dvd
可以使用驱动器支持的任何速度,或 0 表示最大速度。
播放不适用于新电脑(新 DVD 驱动器)
如果播放不工作,并且您有一台新电脑(新 DVD 驱动器),原因可能是 区域码 未设置。您可以使用 regionsetAUR 软件包读取和设置区域码。
以上程序都无法将 DVD 翻录/编码到我的硬盘!
确保 DVD 读取器的区域设置正确;否则,您将收到大量莫名其妙的 CSS 相关错误。使用 regionsetAUR 软件包来执行此操作。
如果设置正确的区域后仍然无法翻录,请参阅 libdvdcss 开发者文档,以了解如何启用日志消息和设置其他相关选项。
GUI 程序日志指示后端程序存在问题
如果您使用 GUI 程序并遇到问题,程序的日志将其归咎于某些后端程序,请尝试通过记录的后端程序参数重现该问题。无论您是否成功重现,您都可以将记录的行以及您自己的发现报告给 #刻录后端问题 部分中提到的位置。
特殊情况:介质错误 / 写入错误
以下是一些关于驱动器不喜欢介质的典型消息。这只能通过使用不同的驱动器或不同的介质来解决。不同的程序几乎没有帮助。
带有后端 growisofs 的 Brasero
BraseroGrowisofs stderr: :-[ WRITE@LBA=0h failed with SK=3h/ASC=0Ch/ACQ=00h]: Input/output error
带有后端 libburn 的 Brasero
BraseroLibburn Libburn reported an error SCSI error on write(16976,16): [3 0C 00] Write error
BD-R DL 50GB 尝试刻录第二层时出错
使用 dvd+rw-tools 中的 growisofs 刻录 50GB BD-R DL 光盘可能会导致致命错误和介质损坏,例如
$ growisofs -Z /dev/sr0 -J -R -V "label" files
Executing 'mkisofs -J -R -V label files | builtin_dd of=/dev/sr0 obs=32k seek=0' I: -input-charset not specified, using utf-8 (detected in locale settings) 0.03% done, estimate finish Fri Jan 29 19:50:36 2016 0.05% done, estimate finish Fri Jan 29 19:50:36 2016 0.08% done, estimate finish Fri Jan 29 19:50:36 2016 /dev/sr0: pre-formatting blank BD-R for 49.8GB... /dev/sr0: "Current Write Speed" is 8.2x4390KBps. 0.11% done, estimate finish Sat Jan 30 03:29:13 2016 0.13% done, estimate finish Sat Jan 30 02:10:01 2016 ... 63.20% done, estimate finish Fri Jan 29 20:43:45 2016 :-[ WRITE@LBA=b6d820h failed with SK=3h/WRITE ERROR]: Input/output error :-( write failed: Input/output error /dev/sr0: flushing cache /dev/sr0: closing track /dev/sr0: closing session :-[ CLOSE SESSION failed with SK=5h/INVALID FIELD IN CDB]: Input/output error /dev/sr0: reloading tray
这发生在开始写入第二层时的 25GB 边界处。使用 cdrtools 中的 cdrecord 可以正常工作。已使用 'HL-DT-ST BD-RE WH16NS40' LG 刻录机和 Verbatim BD-R DL 6x 光盘 (#96911) 进行测试。 FS#47797
光盘托盘自动关闭
如果在弹出 cd 后,无论是使用 eject
命令还是按下驱动器按钮,驱动器光盘托盘在能够取出光盘之前自动关闭,请尝试以下命令
# sysctl -w dev.cdrom.autoclose=0
如果这解决了问题,请使更改永久生效
/etc/sysctl.d/60-cdrom-autoclose.conf
dev.cdrom.autoclose = 0
如果上述方法不起作用,并且作为最后的手段,您可以从内核卸载光盘模块,通过
# rmmod sr_mod
光盘驱动器现在应该按预期运行,但不再挂载光盘。将光盘放入驱动器后,通过以下方式重新激活模块
# modprobe sr_mod
光盘现在应该可以挂载了。
外部光驱无法识别
另请参阅
- 在美国,在以下条件下允许备份物理获得的媒体:关于盗版 - RIAA。
- Libburnia 项目主页
- Cdrtools 网页