关于 SCSI READ 命令

Posted

技术标签:

【中文标题】关于 SCSI READ 命令【英文标题】:Regarding SCSI READ Command 【发布时间】:2013-08-29 13:25:02 【问题描述】:

我正在尝试使用 SCSI 读取容量命令获取磁盘的最大 LBA。

我创建了 10 字节的 CDB,如下所示

ccb->cam_flags = NO_DATA;  

ccb->cdb[0] = READ_CAPACITY;     /*  0x25 SCSI Opcode for Read Capacity Command */       ccb->cdb[1] = 0x01;

ccb->cdb[2] = 0;

ccb->cdb[3] = 0;

ccb->cdb[4] = 0;

ccb->cdb[5] = 0;

ccb->cdb[6] = 0;

ccb->cdb[7] = 0;

ccb->cdb[8] = 0x01;

ccb->cdb[9] = 0;

SCSI 命令成功。不幸的是,我没有得到预期的 LBA,它显示为零。

我的基本问题是上面创建的 SCSI CDB 命令是否正确?

【问题讨论】:

你应该添加语言/环境/调用细节和标签 将适当的 CAM 标志设置为 DATA_IN 0x40000000。我仍然没有获得磁盘的最大 LBA 【参考方案1】:

尝试将ccb->cdb[1]设置为0。在这种情况下不应该使用相对地址位。

【讨论】:

这个,并设置 cdb[8] = 0 太。不要打扰部分中等指标。

以上是关于关于 SCSI READ 命令的主要内容,如果未能解决你的问题,请参考以下文章

用java发出硬盘命令

Linux 执行partprobe命令时遇到Unable to open /dev/sr0 read-write (Read-only file system)

Windows 上物理驱动器上的 SCSI 读取 (10)

Linux 相关scsi命令

RK356x U-Boot研究所(命令篇)3.9 scsi命令的用法

Linux命令lsscsi详解