Wodim 无法在 Debian Jessie 中打开 SCSI 驱动程序?

Wodim 无法在 Debian Jessie 中打开 SCSI 驱动程序?

我正在尝试将 ISO 映像写入 Debian Jessie 上的 CD。我的 CD 已放入驱动器中,并且所有符号链接似乎都指向了它们应在的位置,并且内核识别了我的 CD-RW 驱动器。(顺便说一下,它是通过 IDE 连接的)

我从官方 Debian 存储库安装了 Wodim。使用wodim --deviceswodim -scanbus我收到...

wodim: No such file or directory. 
Cannot open SCSI driver!
For possible targets try 'wodim --devices' or 'wodim -scanbus'.
For possible transport specifiers try 'wodim dev=help'.
For IDE/ATAPI devices configuration, see the file README.ATAPI.setup from
the wodim documentation.

虽然我认为这不会有什么区别,但我是通过远程 SSH 来做到这一点的。

错误明确指出我需要读取README.ATAPI.setup。如果我知道那个文件在哪里,我会非常乐意这样做。我用 Google 搜索了该文件,但只在各种论坛上找到了与我类似的问题。找到后这个问题我运行了一些测试命令来查看是否遇到同样的问题。

lsmod | grep sr_mod产量……

sr_mod                 21568  0 
cdrom                  46828  1 sr_mod
scsi_mod              164132  4 sg,libata,sd_mod,sr_mod

lsmod | grep sg产量……

sg                     25573  0 
scsi_mod              164132  4 sg,libata,sd_mod,sr_mod

ls -l /dev/sr0产量……

brw-rw---- 1 root cdrom 11, 0 Mar 12 17:20 /dev/sr0

那篇文章提到应该/dev/cdrom链接到/dev/sr0。结果ls -l /dev/cdrom是……

lrwxrwxrwx 1 root root 3 Mar 12 17:20 /dev/cdrom -> sr0

以 root 身份使用sudo或使用 root shell 运行这些命令不会影响任何这些命令的结果。此外,告诉 Wodim 使用哪个设备wodim dev=/dev/sr0 --scanbus会产生与不声明 shell 变量相同的结果。

有什么问题?

答案1

wodim 产生的错误消息通常意味着您的 CD-RW 驱动器中有一张光盘,并且该光盘已安装。卸载光盘并尝试wodim -scanbus再次运行。Wodim 显示“没有这样的文件或目录”的原因如下。Wodim 的-scanbus选项通过打开可能指向 CD/DVD 刻录机的每个文件并查询每个设备来确定是否有任何设备是 CD/DVD 刻录机来工作。现在,wodim 的工作方式是,如果它找不到任何设备,它就会失败,并显示与它遇到的最后一个错误相对应的错误消息。在我的系统上,wodim 遇到的最后一个设备是/dev/scd255,它可能不存在于您的系统中,因此 wodim 显示与它遇到的最后一个错误相对应的错误消息,即“没有这样的文件或目录”。如果您想在 wodim 检查每个设备时查看所有错误消息,您可以执行strace wodim -scanbus。在我的系统上,驱动器中安装了光盘,它会产生:

[many irrelevant and repetitive lines of output deleted]
open("/dev/hdy", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/dev/hdz", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or directory)
uname({sys="Linux", node="ubuntu", ...}) = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
nanosleep({0, 399999000}, NULL)         = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
nanosleep({0, 399999000}, NULL)         = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
nanosleep({0, 399999000}, NULL)         = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
nanosleep({0, 400000000}, NULL)         = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
nanosleep({0, 400000000}, NULL)         = 0
open("/dev/scd0", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 EBUSY (Device or resource busy)
open("/dev/scd1", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/dev/scd2", O_RDWR|O_EXCL|O_NONBLOCK|O_LARGEFILE) = -1 ENOENT (No such file or directory)
[many more irrelevant and repetitive lines of output deleted]

正如您将在上面的输出中看到的,wodim 检测到光驱,但无法将其专门打开。顺便说一下,在我的系统上,/dev/scd0有一个符号链接/dev/sr0

$ ls -l /dev/scd0
lrwxrwxrwx 1 root root 3 2019-04-03 11:13 /dev/scd0 -> sr0

至于那个叫做 的文件README.ATAPI.setup,在 Debian 及其衍生版本中,该文件位于 目录中/usr/share/doc/wodim,可以在线找到这里并且可能其他地方。其内容已经过时,部分信息具有误导性。例如,该文件指出:

如果您的计算机中只有一台 CD 刻录机,则 CD 刻录应该可以立即使用。应该有一个符号链接/dev/cdrw 指向您实际的 CD 刻录机设备(例如 /dev/hdb)。如果不存在该链接(例如,系统未使用 udev/devfs)或者您想使用其他设备作为默认设备,您可以在以下位置配置该设备 /etc/wodim.conf

CDR_DEVICE=/dev/hdd

将会把默认设备配置为/dev/hdd,即辅助 IDE 总线上的从属设备。

/dev/hdb使用或 的建议/dev/hdd不再适用,因为 Linux 内核现在使用“IDE-SCSI”模拟来使 IDE / PATA 设备显示为 SCSI 设备。因此,您可以阅读文档,但凡有 的地方/dev/hd*,请将其替换为/dev/sr0

答案2

我必须将 附加dev=/dev/cdrom到参数列表中才能解决此错误。 和
都成功了。cdrecordwodim

相关内容