Linux 中的多会话 CD

Linux 中的多会话 CD

我正在尝试在 Linux 上读取多会话 CD(在 MS Windows 系统上制作)。我想访问各个会话。

我发现我可以写:

mount -t iso9660 -oro,session=2 /dev/dvd /mnt/dir

就目前而言,这是有效的。我还剩下三个问题:

  1. 如何枚举现有会话?
    编辑:看来我可以通过wodim dev=/dev/sr0 -toc 这显示曲目获得部分列表,但不是英文可读的曲目详细信息。

  2. 如何一次安装多个会话? (目前,当我尝试安装第二个会话时,它只是将现有安装链接到新的安装点。)

  3. 如何让它因不存在的会话而失败? (目前,它只打开最后一个会话。显然有我可以阅读的 printk 消息。)

以前,我会使用CDfs,并且(我认为)对这些问题都没有任何问题。不幸的是,它不再受支持。

答案1

该程序wodim是由一群对 OSS 怀有敌意的人于 2004 年 5 月创建的,目的是愚弄用户。wodim尽管有大量针对该软件特定变体的错误报告,但自 2004 年 8 月以来尚未得到修复,因此请勿使用它。

您最好使用原始软件cdrtools和程序,并且您应该知道,当您在 Linux 上时,使用特殊参数cdrecord进行调用是不明智的,因为 Linux 为同时可用的相同硬件实现了多个不同质量的竞争驱动程序,并且通常强制使用现有驱动程序中最差的。如果您使用官方记录的语法,则能够自动选择可用的最佳驱动程序,并且如果您的计算机中只有一个光驱,如果您完全省略,甚至会自动发现它自己的正确接口。cdrecorddev=/dev/sr0dev=/dev/sr0dev=cdrecordcdrecorddev=

为了满足您的愿望,最好的方法是致电:

cdrecord -minfo

因为这列出了所有曲目和所有相关会话及其编号。您可能需要进行试验,以查明您的操作系统是否存在该选项的会话号偏移一问题mount

请注意,该选项-minfo 已于 2006 年 11 月添加,因此您需要一个cdrecord足够新的版本...一些不友好的 Linux 发行版可能从那时起就没有更新其软件。 Gentoo、Arch、Suse 等都是一些友好的 Linux 发行版,它们配备了最新的软件。

有趣的是,自 2004 年以来,原始软件的源代码和功能集增加了一倍多,当时 OSS 敌对人员创建了您正在使用的分叉。

如果您的发行版是不友好的发行版之一,请获取最新的源代码希利工具http://sourceforge.net/projects/schilytools/files/并通过调用来编译它make

让我添加来自多会话 CD 的典型输出的部分,如网络中调用结果所示cdrecord -minfo -v

  ATIP start of lead out: 359847 (79:59/72)
...

Track  Sess Type   Start Addr End Addr   Size
==============================================
    1     1 Data   0          299        300         -1
    2     2 Data   11702      21333      9632     11402
    3     3 Data   28236      78091      49856     6902
    4     4 Blank  84994      359844     274851    6902

Last session start address:         28236
Last session leadout start address: 78092
Next writable address:              84994
Remaining writable size:            274851

BTW:最后一列不带标题的是记录数据后的引出区的大小。第一个引出区的大小是11402个扇区,其他引出区的大小是缩小后的6902个扇区。

在这种情况下,磁盘上有 3 个写入会话。列表中提到的第四个会话是介质上的剩余可用空间。

最后,让我对经常出现的针对原版的毫无根据的主张添加评论cdrtools,人们断言cdrtools据称存在许可证问题。 Sun Microsystems、Oracle和SUSE的法务部门以及Eben Moglen都进行了深入分析,确认原版从来不存在任何许可问题cdrtools

相关内容