每次使用 growisofs 写入后都必须弹出 DVD

每次使用 growisofs 写入后都必须弹出 DVD

我每天使用 growisofs 将文件写入 DVD。每次将文件附加到 DVD 时,我都必须弹出 DVD 然后重新加载 DVD 才能看到我刚刚写入的文件。我使用的是 RHEL 5.0,要初始化空白 DVD,我使用以下命令:

growisofs -Z /dev/dvd -rJ -use-the-force-luke=notray file1

这会将文件 1 写入 DVD。接下来,我将尝试使用以下命令将文件 2 写入 DVD(中间不弹出 DVD):

growisofs -M /dev/dvd -rJ -use-the-force-luke=notray file2

这将失败并出现错误:

“/usr/bin/mkisofs: 参数无效。旧图像上出现搜索错误

: - ( mkisofs 失败:22”

如果我弹出然后再次尝试 growisofs -M 命令,它将成功写入 file2,但如果我尝试写入 file3,file3 将失败并出现相同的错误。

我记得在某处读过(可能是手册页),在刻录期间你可能必须弹出并重新加载 DVD,但是,在使用非蓝光兼容驱动器时我没有遇到这个问题。

即使这是我尝试过的蓝光驱动器的问题,有没有办法模拟弹出而不实际弹出光盘?或者有其他方法可以解决这个问题,而不必实际弹出 DVD?我无法执行弹出 -T,因为它是笔记本电脑驱动器,因此驱动器无法自行关闭。

任何帮助或想法都将不胜感激。我查看了 ioctl 命令,例如:

ioctl(file_descriptor, CDROMSTART)
ioctl(file_descriptor, CDROMSTOP)

但我还没有看过其他命令,也没有找到可以解决我的问题的命令……

谢谢。

答案1

某些驱动器需要弹出功能——这会强制驱动器在刻录会话更改光盘内容后重新读取光盘内容。这是硬件问题,因此要伪造它,您需要让驱动器相信它刚刚加载了新介质,需要对该新介质执行初始扫描。

我不知道这是否可以通过标准 IOCTL 实现——我预计您必须破解驱动器固件(并且可能将您自己的特殊 IOCTL 添加到驱动程序代码中)才能做到这一点。

答案2

ioctl CDROMRESET 似乎强制系统重新读取设备的目录。您可以尝试用它解决您的问题,我认为这应该有效

答案3

关闭设备电源并重新启动。

  • 通过“lsscsi -v”查找 scsi 设备 ID

  • cd /sys/bus/scsi/驱动程序/sr

  • 回显要解除绑定的 scsi id,然后绑定。

    echo "1:0:0:0" > unbind
    echo "1:0:0:0" > bind
    

相关内容