Linux

如何在不重新啟動的情況下檢測連接的新硬碟?

  • December 1, 2020

我有一個小問題。我有一個在 RHEL 6.7 (VM) 上執行並擁有 VMware 6.5(不由我們的團隊管理)的實時系統。問題是,另一組試圖擴展 VM 上現有磁碟的容量。之後,我像往常一樣執行掃描命令來檢測新磁碟echo "- - -" > /sys/class/scsi_host/host0/scan,但什麼也沒發生。他們在 sdb 磁碟上添加了 40G,應該是 100G,我看到它在 VM 上發生了變化,但在 Linux 中沒有。那麼問題出在哪裡?正如我所說,這是一個實時系統,所以我不想重新啟動它。

這是系統:

# df -h /dev/mapper/itsmvg-bmclv
                      59G   47G  9.1G  84% /opt/bmc

# lsblk sdb                          8:16   0   60G  0 disk  └─itsmvg-bmclv (dm-2)      253:2    0   60G  0 lvm  /opt/bmc

# vgs   VG       #PV #LV #SN Attr   VSize  VFree    itsmvg     1   1   0 wz--n- 59.94g     0 

# pwd   /sys/class/scsi_host

# ll lrwxrwxrwx 1 root root 0 Nov 13 16:18 host0 -> ../../devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0 lrwxrwxrwx 1 root root 0 Nov 13 16:19 host1 -> ../../devices/pci0000:00/0000:00:07.1/host1/scsi_host/host1 lrwxrwxrwx 1 root root 0 Nov 13 16:19 host2 -> ../../devices/pci0000:00/0000:00:15.0/0000:03:00.0/host2/scsi_host/host2

以下是您需要執行以掃描主機設備的命令,以便顯示已連接的新硬碟。

echo "- - -" >> /sys/class/scsi_host/host_$i/scan

$i 是主機號

如上所述,您可以使用單行掃描所有現有主機:

for host in /sys/class/scsi_host/*; do echo "- - -" | sudo tee $host/scan; ls /dev/sd* ; done

結果:

$ for host in /sys/class/scsi_host/*; do echo "- - -" | sudo tee $host/scan; ls /dev/sd* ; done
- - -
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdc  /dev/sdc1
- - -
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdc  /dev/sdc1

   ︙

- - -
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdc  /dev/sdc1
- - -
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdc  /dev/sdc1
- - -
/dev/sda  /dev/sda1  /dev/sda2  /dev/sdb  /dev/sdb1  /dev/sdc  /dev/sdc1  /dev/sdd  /dev/sdd1

最後一行顯示我們/dev/sdd發現了設備。

引用自:https://unix.stackexchange.com/questions/404405