当前位置:首页 > Linux > 正文

Linux查看SCSI ID命令

在Linux中查询SCSI ID可通过以下方法:,1. 使用命令 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设备详细信息:

Linux查看SCSI ID命令  第1张

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

关键概念说明

  1. SCSI ID组成
    • Host:SCSI控制器编号(从0开始)
    • Channel:控制器下的通道号(通常为0)
    • Target:设备的物理ID(即SCSI ID,范围0–15)
    • LUN:逻辑单元号(子设备标识)
  2. 应用场景
    • 定位多路径存储中的物理磁盘
    • 配置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+)验证。

0