我向正在运行的 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 主机列表:
使用安全接口获取主机列表:
lsscsi -H
使用系统文件系统获取主机列表:
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
本答案所用资料来源: