[Share Experiences] 如何使用命令行进行刻录光盘 Resolved
Tofloor
poster avatar
yanjuner
Super Moderator
2024-01-03 17:43
Author

应用场景

OS版本信息:桌面专业版、家庭版、社区版、教育版


问题现象

在实际的生产使用当中,文件管理器所内建的光盘刻录功能出于外部原因或难以分析定位的原因,偶尔在刻录时可能会提示用户“未知错误,刻录失败”,而没有具体的错误内容。开发者这边又难以复现,而现场场景又经常难以理清,问题发生时没有保护现场,由于客户网络限制不可远程访问排错等,难以区分是环境问题还是光盘问题操作问题又或者是刻录功能本身的异常。此时,可以使用命令行工具 xorriso 进行刻录验证。文件管理器中的刻录功能基于 xorriso 命令行工具的基础库集合 libburnia 实现。命令行工具刻录时,会提供大量详细的过程输出,根据此输出,可以排除掉一些问题,也能为开发者提供解决问题的思路。


解决办法

1、安装命令行刻录工具 xorriso

打开开发者模式,在终端输入以下指令

sudo apt install -y xorriso

该指令将会安装与当前刻录基础库版本一致的命令行刻录工具,该工具没有默认安装在系统内,需要手动安装。

2、找到代表光驱设备的设备描述符

在终端中输入指令

lsblk

3、找到以 sr 开头的设备,该设备描述就是 /dev/srN(如 /dev/sr0)

准备好要刻录的文件,将文件放入某个指定目录如 /tmp/filesNeedToBeBurned/

4、终端中输入指令:

xorriso -dialog on # 该指令打开 xorriso 工具的命令行交互刻录模式

dev /dev/sr0 # 指定要操作的光驱设备,使用前确保光驱托盘内放入了光盘

joliet on # 开启 joliet 文件系统支持,该选项用于兼容 windows 上的光盘读取

rockridge off # 该选项默认开启,可通过 off 参数关闭,该选项用于支持在 unix 体系上的光盘读取

map /tmp/filesNeedToBeBurned ./ # 将待刻录文件添加到光盘目录中(内存),前参数代表待刻录文件,后参数 ./ 代表要将文件刻录到光盘的这个位置,在执行以上命令的基础上,./ 代表光盘根目录,可通过 cd 命令切换光盘目录(如存在)

lsl # 查看当前光盘目录结构,此时的数据还在内存中,应能看到刚才添加的待刻录文件列表

commit # 执行刻录,将数据写入到光盘中。该过程耗时较长,取决于待刻录文件大小。此时光驱应在高速转动以写入文件。该过程将输出大量进度信息。刻录完成后光驱托盘将自动弹出

end # 关闭当前交互刻录会话

注:所有需要在专业版上执行的命令,请先和公司确认是否可以打开开发者模式!

Reply Favorite View the author
All Replies
晚秋(lateautumn)
Moderator
2024-01-03 17:52
#1

这个有用,收藏备用。虽然现在刻录光盘的机会很少,但偶尔我要用到。

Reply View the author
阿尼樱奈奈
Moderator
2024-01-03 17:57
#2
like
Reply View the author