myiso.iso
我正在尝试使用在空白 CD R 上刻录 iso ( ) cdrskin
,但是出现以下错误:
# cdrskin myiso.iso
cdrskin 1.4.6 : limited cdrecord compatibility wrapper for libburn
cdrskin: scanning for devices ...
cdrskin: SORRY : Cannot open busy device '/dev/sr0'
cdrskin: ( Most recent system error: 16 'Device or resource busy' )
cdrskin: SORRY : Cannot open busy device '/dev/sr0'
cdrskin: ( Most recent system error: 16 'Device or resource busy' )
cdrskin: ... scanning for devices done
cdrskin: NOTE : No usable drive detected.
cdrskin: FATAL : No drive found. Cannot prepare track.
cdrskin: FATAL : failed to attach fifo.
我如何识别使用该设备的程序?
lsof /dev/sr0
并且fuser /dev/sr0
不产生任何输出。
答案1
您是以 root 身份运行该程序的吗?大多数情况下,当访问 CD 或磁盘驱动器时,ubuntu 在尝试以当前用户身份访问时会出现权限问题。
答案2
尝试
mount | fgrep sr0
cdrskin 消息表明某个进程已打开设备文件,并且O_EXCL
带有 Linux 设备文件特定含义中的标志。这不是访问权限问题,而是安装和刻录程序之间的锁定协议。
现在lsof
似乎检测fuser
不到。我刚刚在 Debian 8、内核 3.16 上测试过。没有输出。mount
/dev/sr4
如果我打开/dev/sr4
由某些用户进程安装的程序,它会被检测到
fuser
但不会被检测到lsof
。
一旦我卸载驱动器,lsof
就会发现用户进程。
最后一招:
cdrskin
有一个选项--drive_not_o_excl
可以禁用锁定机制。我刚刚测试过,使用此选项,挂载的/dev/sr4
可以通过 访问cdrskin
。
当然,我们无法预测这会对文件的不可见用户进程产生什么影响,或者该用户是否会干扰 CD 刻录运行。