我添加了新的磁盘到我正在运行的Linux虚拟机。
是否可以明确地添加SCSI / SATA设备,或重新扫描整个SCSI / SATA主机总线,而无需重新启动正在运行的Linux?
对的,这是可能的。 有一些方法可以做到这一点:
添加一个设备
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
即如果磁盘被添加到主机= 8,命令是
echo "- - -" > /sys/class/scsi_host/host8/scan
重新扫描所有SCSI / SATA主机
一般来说,如果您不知道添加磁盘的主机号码,则可以扫描机器上的整个SCSI主机。
获取SCSI / SATA主机列表:
使用lsscsi获取主机列表: lsscsi -H
使用sysfs来获取主机列表: 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
来源被用在这个答案:
EVAN HOFFMAN的博客
nixCraft
RedHat客户门户