Linux

在 Linux 上添加 SCSI 磁碟而無需重新啟動

  • June 19, 2019

我向正在執行的 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

即如果磁碟被添加到Host=8,命令是

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

重新掃描所有 SCSI/SATA 主機

通常,如果您不知道添加磁碟的主機號,則可以掃描您機器上的整個 SCSI 主機。

獲取 SCSI/SATA 主機列表:

  1. 使用lsscsi獲取主機列表:lsscsi -H
  2. 使用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

此答案中使用了來源:

埃文霍夫曼的部落格

尼克斯工藝

紅帽客戶門戶

引用自:https://serverfault.com/questions/882835