我正在尝试使用现有的Linux驱动系统来有效地转储CDROM的数据。
举个例子,如果我弹出一张“普通”软件 CDROM 光盘并运行命令
cat /dev/sr0
然后输出是来自光盘的一堆原始数据 - 这很棒。
然而,某些其他类型的 CD 在传输少量数据后就会导致 IO 错误。
一些研究使我了解到数据是在“模式 1”下默认读取的。 (有关格式/结构的信息可以在这里找到:https://en.wikipedia.org/wiki/CD-ROM#CD-ROM_format)
对于模式 2 中包含数据的光盘,怎样才能读取它们?是否有任何驱动程序或内核设置可以更改模式?
注意:还有其他程序可以完成此操作,例如 cdrdao,但我的问题是如何在本地执行此操作。
更新 1:一些潜在的线索:
- cdrom 驱动程序架构的高级解释:http://www.tldp.org/HOWTO/SCSI-2.4-HOWTO/sr.html
- 可能有用的模块参数,默认情况下恰好被禁用:http://lxr.free-electrons.com/ident?i=xa_test(虽然打开它并不能解决问题)