无需重启即可在 Linux 上添加 SCSI 磁盘

无需重启即可在 Linux 上添加 SCSI 磁盘

我向正在运行的 Linux 虚拟机添加了新磁盘。

是否可以明确添加 SCSI/SATA 设备,或者无需重新启动正在运行的 Linux 即可重新扫描整个 SCSI/SATA 主机总线?

答案1

是的,这是可能的。有一些方法可以做到这一点:

添加单个设备

 echo "scsi add-single-device <Host> <Bus> <Target> <Lun>" > /proc/scsi/scsi

在我的例子中,我在 Host=8 上添加了唯一的 SCSI/SATA 磁盘,因此命令是

echo "scsi add-single-device 8 0 0 0" > /proc/scsi/scsi

重新扫描 SCSI/SATA 主机总线

如果您的系统中添加了多个磁盘,则可以扫描特定 SCSI/SATA 主机上的所有设备

echo "- - -" > /sys/class/scsi_host/hostHOSTNUM/scan

即如果磁盘被添加到Host = 8,则命令为

echo "- - -" > /sys/class/scsi_host/host8/scan

重新扫描所有 SCSI/SATA 主机

一般来说,如果您不知道添加磁盘的主机号,您可以扫描机器上的整个 SCSI 主机。

获取 SCSI/SATA 主机列表:

  1. 使用安全接口获取主机列表:lsscsi -H

  2. 使用系统文件系统获取主机列表:ls -d /sys/class/scsi_host/host*

重新扫描给定主机: echo "- - -" > /sys/class/scsi_host/hostX/scan

简单的全扫描自动化脚本

#/bin/bash
# ReScan all SCSI/SATA Hosts
for SHOST in /sys/class/scsi_host/host*; do
    echo -n "Scanning ${SHOST##*/}..."
    echo "- - -" > ${SHOST}/scan
    echo Done
done

本答案所用资料来源:

埃文·霍夫曼的博客

nixCraft

RedHat 客户门户

相关内容