【现象说明】

我在VMware中为一台虚拟机在线添加了一块SCSI磁盘(IDE类型的磁盘添加必须关机进行);可是添加后使用lsblk和fdislk -l等都无法看到新增的磁盘信息。


【处理办法】

步骤 1:扫描新的 SCSI 设备

  1. 列出所有的 SCSI 主机适配器
ls /sys/class/scsi_host/

这将显示类似 host0, host1, host2 等等的列表。


  1. 触发 SCSI 设备扫描

对于每个 SCSI 主机适配器,执行以下命令:

echo "- - -" | sudo tee /sys/class/scsi_host/hostX/scan

其中 hostX 是步骤 1 中列出的每个 SCSI 主机适配器。例如,如果有 host0, host1, host2,则运行:

echo "- - -" | sudo tee /sys/class/scsi_host/host0/scan
echo "- - -" | sudo tee /sys/class/scsi_host/host1/scan
echo "- - -" | sudo tee /sys/class/scsi_host/host2/scan


当然上面的3条语句等同于shell脚本:

for host in /sys/class/scsi_host/host*; do
    echo "- - -" | sudo tee "$host/scan"
done

# 这将遍历所有 SCSI 主机适配器并触发每个适配器的扫描。


步骤 2:验证新磁盘

再次列出块设备

运行以下命令查看新磁盘是否已被识别:

lsblk

这个时候就可以看到新增磁盘的信息了。


额外的检查

如果上述步骤未能识别新磁盘,可以检查以下几点:

  • dmesg 输出:查看系统日志,确认系统是否检测到了新设备:
dmesg | grep sd
  • rescan-scsi-bus.sh:部分系统上安装了 sg3_utils 工具包,可以使用该包中的 rescan-scsi-bus.sh 脚本来扫描新设备。你可以通过以下命令安装 sg3_utils
sudo yum install sg3_utils

然后运行脚本:

sudo rescan-scsi-bus.sh

这些步骤可以实现在不重启虚拟机的情况下识别并使用新添加的 SCSI 磁盘。


【Linux】热添加SCSI磁盘后Centos Stream 9不重启情况下显示新增磁盘信息的办法_Linux