実行中のLinux仮想マシンに新しいディスクを追加しました。
SCSI/SATAデバイスを明示的に追加したり、実行中のLinuxを再起動せずにSCSI/SATAホストバス全体を再スキャンしたりすることはできますか?
はい、可能です。それを行うにはいくつかの方法があります:
単一のデバイスを追加します
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を使用して、ホストのリストを取得します。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
この回答ではソースが使用されました: