lsscsi -g
查看设备SCSI标识符及对应的通用设备路径。,2. 检查 /sys/class/scsi_device/
目录下子目录的 device/identifier
文件,如 cat /sys/class/scsi_device/*/device/vendor
获取详细信息。方法1:使用 lsscsi
命令(推荐)
lsscsi
是最直接的查询工具,需先安装:
sudo apt-get install lsscsi # Debian/Ubuntu sudo yum install lsscsi # RHEL/CentOS
运行命令:
lsscsi -L
输出示例:
[0:0:0:0] disk ATA ST1000DM010-2EP1 CC43 /dev/sda
Host: scsi0 Channel: 00 Target: 00 Lun: 00
- 关键字段:
Host
:主机适配器编号(如scsi0
)Target
:SCSI目标ID(即传统意义的SCSI ID)Lun
:逻辑单元号
方法2:通过 /sys
文件系统(底层信息)
Linux内核通过 /sys
暴露SCSI设备详细信息:
ls /sys/class/scsi_device/
进入具体设备目录查看ID:
cat /sys/class/scsi_device/<host>:<channel>:<target>:<lun>/device/{host,channel,target_id}
示例:
cat /sys/class/scsi_device/0:0:0:0/device/target_id # 输出:0 (Target ID)
方法3:使用 scsi_id
命令(持久化标识符)
查询设备的持久化UUID(适用于生成稳定的设备路径):
sudo /lib/udev/scsi_id -g -u /dev/sda
输出为唯一字符串(如 3600508b4000cffa00000000000000000
),可用于绑定设备。
方法4:结合 dmesg
查看内核日志
通过内核日志回溯设备识别过程:
dmesg | grep -i scsi
输出片段:
scsi 0:0:0:0: Direct-Access ATA ST1000DM010-2EP1 CC43 PQ: 0 ANSI: 5
0:0:0:0
对应Host:Channel:Target:LUN
关键概念说明
- SCSI ID组成:
- Host:SCSI控制器编号(从0开始)
- Channel:控制器下的通道号(通常为0)
- Target:设备的物理ID(即SCSI ID,范围0–15)
- LUN:逻辑单元号(子设备标识)
- 应用场景:
- 定位多路径存储中的物理磁盘
- 配置udev规则绑定设备
- 调试存储设备识别问题
注意事项
- 权限要求:部分命令需
sudo
权限(如scsi_id
)。 - 设备动态性:设备路径(如
/dev/sda
)可能重启后变化,但SCSI ID稳定。 - 虚拟环境:虚拟机/云主机中SCSI ID可能由Hypervisor分配(如VMware的
vmssd
设备)。
引用说明基于Linux内核文档(kernel.org/doc)及
lsscsi
官方手册(lsscsi.sourceforge.net),方法已在主流Linux发行版(RHEL 8+, Ubuntu 20.04+)验证。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/47066.html