Войти

Показать полную графическую версию : [решено] Подключение SATA на горячую


Тишина
29-08-2013, 00:56
Как реализовать подключение sata-дисков при работающей системе? в Win достаточно обновить устройства, после чего список пополняется свежеподключенным хардом.
Как в *nix организовать "refresh /dev" ?

Kent
29-08-2013, 03:02
А в Linux не обнаруживает? Вроде, udev это должен делать автоматически.

shisik
29-08-2013, 03:16
Тишина, посмотрите здесь (http://xgu.ru/wiki/SATA_hotplug).

ruslandh
29-08-2013, 06:44
Могу только повторить, что udev должен их обнаруживать автоматом. ну, и смонтировать их надо, что-бы использовать.

vadblm
29-08-2013, 11:01
Не нужно никаких "рефрешей", всё происходит автоматически. Вставил диск — появилось устройство, вынул — исчезло. Разумеется, контроллер и его драйвер должны уметь горячее подключение. Список контроллеров и драйверов https://ata.wiki.kernel.org/index.php/SATA_hardware_features см. колонку hotplug.

Тишина
29-08-2013, 18:09
На счёт контроллера точно не скажу... Могу точно сказать, что:
материнская плата Gigabyte GA-H61M-S2PV, achi выключен, в Windows подключается на ура, а в Linux нет. как есть единственный sda системный, так он и остаётся... О_о
ну и ещё: Linux Lubuntu 12.04 и RIP Linux 13.7 (вроде бы он на slackware базируется), хотя, вроде бы, не должно играть роли.

P.S. на всякий случай уточню, что подключаю sata (не eSata) винчестеры напрямую, без переходников на usb.

ruslandh
29-08-2013, 18:39
Если честно, есть такая команда - перечитать разделы жёсткого диска (на уровне ядра), но не помню как она называется :)


Перечитать таблицу разделов
# partprobe
(из пакета parted).
Другие способы:
hdparm -z /dev/DISK
blockdev –rereadpt /dev/DISK
echo 1 > /sys/block/DISK/device/rescan
Здесь везде вместо DISK название соответствующего устройства (sda, sdb, sdc).

vadblm
29-08-2013, 20:35
Если честно, есть такая команда - перечитать разделы жёсткого диска »
Это не про отключение/подключение, а про переразбиение на лету без перпеподключения.

achi выключен »
Ну и чего вы хотите?

ruslandh
29-08-2013, 21:37
Это не про отключение/подключение, а про переразбиение на лету без перпеподключения. »
Какая разница?

AMDBulldozer
30-08-2013, 04:29
Как в *nix организовать "refresh /dev" ? »

echo - - - > /sys/class/scsi_host/host0/scan
Ну, или какой там еще номер шины вместо host0...
Примечание: вообще говоря, эта команда бывает нужна только если Вы физически жесткий диск не отключали, а убрали его, скажем, командой echo 1 > /sys/block/sda/device/delete.
Ну, или какой там еще устойство вместо sda...
Если система не сканирует шину после подключения диска, скорее всго ядро собрано без этой поддержки "горячего" подключения. Это легко проверить - воткните диск и посмотрите, появится ли сообщение об этом в dmesg.

Тишина
02-09-2013, 10:29
Цитата Тишина:
achi выключен »
Ну и чего вы хотите? »
а что? =) в Win без него всё подключается и отключается =) проверено на XP sp2/3 32/64, win 7 с sp1 и без 32/64. причём не только на данной материнской плате (ещё 3-4 матплаты gigabyte, 4 asus, 2 microstar, asrock). так что получается для горячего подключения achi требуется не всегда (возможно на некоторых контроллерах он обязателен, но мне пока такие не попадались =) ).

хотя это Win, с Lin может быть по-другому =/

Примечание: вообще говоря, эта команда бывает нужна только если Вы физически жесткий диск не отключали, »
как раз диски подключаются к рабочей системе, которая стартует только с системным диском.

Ну, или какой там еще номер шины вместо host0... »
а если номер шины не известен, то как просканить все? скрипт с перебором написать?

Если система не сканирует шину после подключения диска, скорее всго ядро собрано без этой поддержки "горячего" подключения. Это легко проверить - воткните диск и посмотрите, появится ли сообщение об этом в dmesg. »
хорошая мысль! при установке лина можно включить эту опцию или это получится сделать только на slackware и gentoo? или как её включить в уже установленном дистрибутиве Lubuntu, т.е. Debian (RIP работает из-под live cd)? на сколько это сложно и(или) опасно пересобирать ядро?

AMDBulldozer
02-09-2013, 11:07
for i in /sys/class/scsi_host/host*; do echo "- - -" > $i/scan; done
Но Вы всё-таки посмотрите dmesg в момент подключения диска. Что-то не верю я в возможность сборки ядер без поддержки горячего подулючения. Хотя, конечно, при желании пересобрать его займет 10 минут.

Тишина
02-09-2013, 15:19
спасибо! освободится машина с лином - обязательно попробую!

Тишина
04-09-2013, 14:41
Всё! Спасибо! Работает.

Резюме:

подключить диски:
for i in /sys/class/scsi_host/host*; do echo "- - -" > $i/scan; done

удалить диск
echo 1 > /sys/block/sdX/device/delete
X - литера диска!
аккуратней! не удалите системный диск, т.к. уберётся без предупреждения =)




© OSzone.net 2001-2012