如何在 Linux 上读取 CDRW 或 DVDRW 的 RID?

如何在 Linux 上读取 CDRW 或 DVDRW 的 RID?

这个问题的灵感来自于这个答案在超级用户上作者:Proger_Cbsk。

RID 是记录器标识。它唯一标识写入 CD/DVD 的驱动器。

什么软件(如果有的话)可以读取 CD-RW 或 DVD-RW 写入的 RID?根据链接的答案,

奇怪的是,INCITS 标准有一个命令可以读取 DVDR 中的 RID,但不能读取 CDR 中的 RID!

我想读取 CD 和 DVD 的 RID,

  • DVDR:我想知道如何发出标准化命令来读取RID
  • CDR:我想对 CDR 做同样的事情。如果这是特定于驱动器供应商的,那就没问题。我将购买该驱动器。

答案1

我只能回答部分

DVDR:我想知道如何发出标准化命令来读取RID`

对于 DVD minus(R 或 RW),用于获取用于在光盘上写入的 RID(实际上是“驱动器制造商 ID、序列号和型号”)的符合标准的 SCSI MMC 命令是带有READ DISC STRUCTURE格式代码0Ch0Dh.

在 Linux 下,您可以使用该sg_raw工具并发送以下 SCSI 命令 (CDB):

sg_raw -r 32k <device> ad 00 00 00 00 00 00 0c 7f ff

解释:

ad是读取光盘结构命令

0c是格式代码(您可以安全地尝试0d

7f ff据说最多可以读取32k的数据。

有关该命令的完整详细信息可以在任何“Mt Fuji Commands for Multimedia Devices”PDF 中找到(它继承了 INCITS MMC 并且免费提供)

成功发出命令后,您将获得录制管理数据块 (RMD) 的转储,这是一个乏味的长二进制文件,其中包含有关 DVD 写入方式的所有微小细节。使用任何十六进制编辑器,您都可以在偏移量 26624 附近以 ASCII 格式找到您要查找的 RID。如果你想解析和理解整个RMD,请查看ECMA-338标准PDF

注意:不要乱搞sg_raw,一定要仔细检查您发送的 CDB,尤其是前两个字节。

相关内容