Подключение жестких дисков на горячую в Linux системах (Debian / Ubuntu)

Дата публикации: 29-08-2014 | Автор: MelfisFettel | Рубрика: Ubuntu Server

Подключение HDD на горячую в LinuxВ общем то в Windows подключить жесткий диск SATA не составляет труда. Подключили, обновили список оборудования и все готово, можно работать.
В Linux вроде бы все должно быть как то так-же просто. (так то так, да не так.) Как то мне понадобилось подключить на горячую дополнительный жесткий диск к Linux серверу на Ubuntu Server 12.04 для хранения бэкапов данных.
В смысле дополнительный диск для бекапов. Диск подключил, он зашуршал, в dmesg появились сообщения о том что жесткий диск был подключен. Да вот только через fdisk -l его не видно.

Первая мысль была перезагрузится, и диск должен появится сам.
Только сервер было останавливать не охота, ибо с начала нужно обойти 40 человек и сказать что бы они отключились от сервера, потом только перегружать, а потом снова обойти 40 человек и сказать что можно работать.
Да и останавливать контору из за нового диска не очень хотелось. Еще как вариант подключится вечером, перегрузить сервер удаленно и создать необходимые записи в fstab для автоподключения. Пятница, вечером как то работать вообще не охота.
Все оказалось немного проще. Для того что бы диск стал доступен нужно указать точный номер шины на котором находится диск, а вот
того номера я как раз таки и не знаю (Да и не точного я тоже не знаю :D ). Для тех кто знает номер шины на которой находится диск, то можно просто использовать команду:

1
echo "- - -" > /sys/class/scsi_host/hostВОТТУТНОМЕРШИНЫ/scan
echo "- - -" > /sys/class/scsi_host/hostВОТТУТНОМЕРШИНЫ/scan

Ну так вот, номер шины я не знал. И как оказалось и тут можно все автоматизировать при помощи обычного bash скрипта.
Итак, для того что бы на горячую подключить SATA диск к Linux системе достаточно использовать сделедующий скрипт:

1
2
3
4
#!/bin/bash
for i in /sys/class/scsi_host/host*; do 
echo "- - -" > $i/scan; 
done
#!/bin/bash
for i in /sys/class/scsi_host/host*; do 
echo "- - -" > $i/scan; 
done

После чего жесткий диск отлично откликается на fdisk -l. Ну а дальше создаем файловую систему, монтируем, копируем, и .т.д.

Ну а дельше, если Вам нужно на горячю отсоединить жесткий диск от Linux, необходимо его отмонтировать, можно просто использовать fdisk -l что бы узнать обозначение диска (например sdb или sda или sdc)

и выполнить команду:

1
echo 1 > /sys/block/###/device/delete
echo 1 > /sys/block/###/device/delete

где ### это например sdb или sda или sdc и так далее.

На этом все, можно отключать.

Не смотря на то что у меня удалось выполнить эту процедуру по подключению жесткого диска на горячую в Linux, на моем локальном компьютере (Ubuntu 13.04) это сделать не удалось.
Думаю что это зависит от контроллера который используется на материнской плате. dmesg сыпал ошибками и диск подключить не удалось. Однако проэксперементировав на нескольких серверах под управлением Debian и Ubuntu, диски нормально опеределялись.

Понравилась статья? Расскажи друзьям:


Комментариев (1)

Получилось!) Огромное спасибо))

Обсудить