Назад | Перейти на главную страницу

Добавить SCSI-диск в Linux без перезагрузки

Я добавил новый диск к моей работающей виртуальной машине Linux.

Можно ли явно добавить устройство SCSI / SATA или повторно сканировать всю шину хоста SCSI / SATA без перезагрузки работающего Linux?

Да, это возможно. Для этого есть несколько способов:

Добавить одно устройство

 echo "scsi add-single-device <Host> <Bus> <Target> <Lun>" > /proc/scsi/scsi

В моем случае я добавил единственный диск SCSI / SATA на Host = 8, поэтому команда

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

В этом ответе были использованы источники:

БЛОГ ЭВАНА ХОФФМАНА

nixCraft

Портал для клиентов RedHat