Linux
如何在不重新啟動的情況下檢測連接的新硬碟?
我有一個小問題。我有一個在 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
發現了設備。