![如何在 Linux 上读取 CDRW 或 DVDRW 的 RID?](https://linux22.com/image/228817/%E5%A6%82%E4%BD%95%E5%9C%A8%20Linux%20%E4%B8%8A%E8%AF%BB%E5%8F%96%20CDRW%20%E6%88%96%20DVDRW%20%E7%9A%84%20RID%EF%BC%9F.png)
这个问题的灵感来自于这个答案在超级用户上作者: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
格式代码0Ch
或0Dh
.
在 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,尤其是前两个字节。