blkid 在 cdrecord 之后不立即工作

blkid 在 cdrecord 之后不立即工作

我有一个基于CentOS 6.3系统的产品。我们的功能之一是用户可以将数据导出到 CDROM。在进行一些修复时,我遇到了一个奇怪的问题 - 在 cdrecord 调用之后,我们立即尝试挂载磁盘,但mount -o ro /dev/sr0 /mnt/cdrom失败并显示“挂载:您必须指定文件系统类型”。如果您使用mount -t iso9660 -o ro /dev/sr0 /mnt/cdrom,它工作得很好,或者如果您弹出并重新插入磁盘,它工作得很好。

经过一点调查发现,在 cdrecord 之后(直到磁盘弹出并重新插入),blkid /dev/sr0不会返回任何内容,但在弹出/插入后工作正常。

这是正常行为吗? CDROM 驱动器中是否存在某种状态导致此问题,是否有某种方法可以在不弹出周期的情况下重置它?现在,我将返回(并记录!)在此实例中指定文件系统的先前行为。

版本:

mount -V

从 util-linux-ng 2.17.2 挂载(支持 libblkid 和 selinux)

blkid -v

来自 util-linux-ng 2.17.2 的 blkid(libblkid 2.17.0,2010 年 3 月 22 日)

cdrecord -version

Cdrecord-yelling-line-to-tell-frontends-to-use-it-like-version 2.01.01a03-dvd Wodim 1.1.9 版权所有 (C) 2006 Cdrkit 套件贡献者 基于 Joerg Schilling 的作品,版权所有 (C) 1995 -2006,J.席林

答案1

好吧,我现在没有时间听从 @derobert 的建议并运行 strace (其他任务正在等待)。对于当前版本,我只是在调用-t iso9660后添加了 mount 命令cdrecord,这很好地解决了问题。鉴于我的软件只是录制了 CD,在这种情况下我可以非常确定文件系统是 iso9660,因此我可以在无限期的未来摆脱这个技巧。

答案2

您使用的程序来自有缺陷的分支和 Linux 发行版,它们不分发原始 cdrecord,但 2004 年 5 月创建的分支从未更新软件以获得更多最新功能和错误修复。发行“wodim”的发行版还发行其他有缺陷的软件,例如 genisoimage,而不是真正的 mkisofs。

即使 2004 年 5 月的原始 mkisofs 也有许多错误,但 Debian genisoimage 在 2004 年添加了许多额外的错误。

2006 年夏季,原始软件中所有已知的错误均已修复,自 2004 年 5 月(当您使用的分叉已创建时)以来,原始软件的功能增加了一倍。

您一直在使用的 genisoimage 创建具有结构错误的文件系统映像。如果您遇到问题,我建议您从以下位置升级到最新的原始软件:

https://sourceforge.net/projects/cdrtools/files/

如果自动文件系统检测不起作用,则可能是由实际文件系统中的问题或检测软件中的错误引起的。

如果在检查由真实 mkisofs 创建的文件系统映像时问题仍未消失,请针对检测软件提交错误报告。

相关内容