16. February 2021
SCSI-BUS rescan
SCSI – BUS auf neue device scannen. In keinem der unten angeführten Schritte ist ein reboot des Systems erforderlich!
#!/bin/bash SCSI_HOSTS=$( ls -l /sys/class/scsi_host/host* | grep -o host[0-9] | uniq ) for SCSI_HOST in ${SCSI_HOSTS}; do echo "- - -" > /sys/class/scsi_host/${SCSI_HOST}/scan done
nun sehen wir ein dmesg ein neues Device.
Jetzt muss der Bus diese Devices ermittelt werden sofen die aktuelle größe zwischenzeitlich verändert wurde.
In unserem Fall ist dies /sys/class/scsi_device/0:0:1:0
SCSI Device neue Größe ermitteln
ll /sys/class/scsi_device/ total 0 lrwxrwxrwx 1 root root 0 Jan 20 09:29 0:0:0:0 -> ../../devices/pci0000:00/0000:00:10.0/host0/target0:0:0/0:0:0:0/scsi_device/0:0:0:0 lrwxrwxrwx 1 root root 0 Jan 20 09:29 0:0:1:0 -> ../../devices/pci0000:00/0000:00:10.0/host0/target0:0:1/0:0:1:0/scsi_device/0:0:1:0 lrwxrwxrwx 1 root root 0 Jan 20 09:29 0:0:2:0 -> ../../devices/pci0000:00/0000:00:10.0/host0/target0:0:2/0:0:2:0/scsi_device/0:0:2:0 lrwxrwxrwx 1 root root 0 Jan 20 09:29 0:0:3:0 -> ../../devices/pci0000:00/0000:00:10.0/host0/target0:0:3/0:0:3:0/scsi_device/0:0:3:0 lrwxrwxrwx 1 root root 0 Jan 20 09:29 0:0:4:0 -> ../../devices/pci0000:00/0000:00:10.0/host0/target0:0:4/0:0:4:0/scsi_device/0:0:4:0 lrwxrwxrwx 1 root root 0 Jan 20 09:29 0:0:5:0 -> ../../devices/pci0000:00/0000:00:10.0/host0/target0:0:5/0:0:5:0/scsi_device/0:0:5:0 lrwxrwxrwx 1 root root 0 Jan 20 09:29 0:0:6:0 -> ../../devices/pci0000:00/0000:00:10.0/host0/target0:0:6/0:0:6:0/scsi_device/0:0:6:0 lrwxrwxrwx 1 root root 0 Jan 20 09:29 2:0:0:0 -> ../../devices/pci0000:00/0000:00:07.1/ata3/host2/target2:0:0/2:0:0:0/scsi_device/2::0:0 echo 1 > /sys/class/scsi_device/0\:0\:1\:0/device/rescan
et voila
Disk /dev/sdb: 644.2 GB, 644245094400 bytes 255 heads, 63 sectors/track, 78325 cylinders, total 1258291200 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/sdb doesn't contain a valid partition table
Und alles in einem Script
#!/bin/bash SCSI_DEVICES=$( ls /sys/class/scsi_device/ ) SCSI_HOSTS=$( ls -l /sys/class/scsi_host/host* | grep -o host[0-9] | uniq ) ############################ ## RESCANNING HOST DEVICES ############################ for SCSI_HOST in ${SCSI_HOSTS}; do echo "RESCANNING HOST :: ${SCSI_HOST}" echo "- - -" > /sys/class/scsi_host/${SCSI_HOST}/scan done ############################ ## RESCANNING SCSI DEVICES ############################ for SCSI_DEVICE in ${SCSI_DEVICES} do echo "RESCANNING SCSI-DEVICE :: ${SCSI_DEVICE}" echo 1 > /sys/class/scsi_device/"${SCSI_DEVICE}"/device/rescan done