LINUX.ORG.RU

[РЕШЕНО] Внешние SATA диски система не обнаруживает. Windows 10 всё видит и могёт.

 ,


1

1

Привет!

При подключении внешнего SATA диска через SATA-кабель (в системнике включаю питание нужному мне диску), этот диск не обнаруживается системой вообще никак. Ядро его не видит. Если перезагрузится, то всё прекрасно, диск обнаруживается и доступен к монтированию файловой системы. Что делать, куда копать?

В BIOS’е:

  • Режим AHCI
  • hotplug для всех других шин SATA, кроме системного диска — включен

В системе модуль имеется:

$ lsmod | grep ahci
ahci                   40960  2
libahci                40960  1 ahci
libata                278528  2 libahci,ahci

Но в выводе блочных устройств, ничего кроме sda нет и не появляется.

$ lsblk 
NAME          MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda             8:0    0 931,5G  0 disk 
├─sda1          8:1    0   499M  0 part 
├─sda2          8:2    0   100M  0 part /boot/efi
├─sda3          8:3    0    16M  0 part 
├─sda4          8:4    0   100G  0 part 
├─sda5          8:5    0 780,9G  0 part 
└─sda6          8:6    0    50G  0 part 
  ├─vg01-swap 254:0    0    10G  0 lvm  [SWAP]
  ├─vg01-var  254:1    0    20G  0 lvm  /var
  ├─vg01-root 254:2    0    10G  0 lvm  /
  └─vg01-home 254:3    0    10G  0 lvm  /home

dmesg молчит, ничего не выдает при подключении диска. Дистрибутив Manjaro Linux самый распоследний со всеми обновлениями. Что делать?

P.S. Модели дисков разные пробовал, никакой из них не обнаруживается.


В рамках костыля, попробуй так:

echo - - - > /sys/class/scsi_host/hostN/scan

Вместо hostN — порядковое имя SATA-контроллера (ищется по dmesg | grep 'host[0-9]').

intelfx ★★★★★ ()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Спасибо! Сработало. Хочется узнать, это баг какой-то в ядрах, почему приходится использовать этот костыль? И еще вопрос: Если эту команду использовать для всех hostX, какие могут быть негативные последствия для домашнего использования (не сервер)?

dva20 ()
Ответ на: комментарий от dva20

Хочется узнать, это баг какой-то в ядрах, почему приходится использовать этот костыль?

Может, в ядре. Может, в твоём железе. Я бы ставил на последнее.

Если эту команду использовать для всех hostX, какие могут быть негативные последствия для домашнего использования (не сервер)?

Фризы I/O во время выполнения этой команды.

intelfx ★★★★★ ()
Ответ на: комментарий от intelfx

Я бы ставил на последнее.

Понятно... Но винда же как-то справляется и ни разу небыло такого, чтобы не «увидела». )) Вообщем и на том спасибо, выручил и помог.

dva20 ()
Ответ на: комментарий от intelfx

Очень странно, но если, однажды, при работающей системе подключить указанным выше способом диск, а затем его отключить командой:

echo - > /sys/class/scsi_device/2\:0\:0\:0/device/delete

Затем обесточить (вытащить сетевой кабель), а зетем вновь подключить питание, то диск, в дальнейшем, обнаруживается автоматически! Повторно, «костыль» применять нет необходимости. Так что… мне кажется это не с железом, а с ядром что-то не так.

dva20 ()

начиная с каких-то третьих ядер подключением внешних USB-хранилищ занимается модуль usb_storage. проверь, что он подгружен. если что - пропиши его в modules.

Iron_Bug ★★★★ ()
Ответ на: комментарий от targitaj

а, это я пост невнимательно читала.

а так, hot-swap работает только если контроллер в AHCI режиме. это обычно переключается в BIOS'е.

Iron_Bug ★★★★ ()
Ответ на: комментарий от Deleted

Всё таки это не то, что нужно. Как я понял, partprobe

информирует ядро операционной системы об изменениях таблицы разделов

В моем случае до разделов дело не доходит, ядро железо «не видит». Если ошибаюсь, поправьте и дайте более потробную информацию.

dva20 ()

В принципе, этот костыль можно повесить в systemd timer или как там его, который работает как cron? И дело с концо. Пусть висит и опрашивает через заданное время. Просто не понятно, проблеме не один год, почему это не реализуют в дистрибутивах? Какие подводные камни есть у этого решения?

dva20 ()
Ответ на: комментарий от dva20

Так что… мне кажется это не с железом, а с ядром что-то не так.

С ядром всё нормально. На z77-ds3h при включении hotplug для канала sata автоподключение работает само, без пинков в /sys. Ты, кстати, не сказал, что у тебя за платформа.

Suigintou ★★★★ ()
Последнее исправление: Suigintou (всего исправлений: 1)
Ответ на: комментарий от dva20

Просто не понятно, проблеме не один год, почему это не реализуют в дистрибутивах?

Проблема какая-то локальная, у остальных всё хорошо, я esata постоянно пользуюсь. Биос последний? Esata на интеле или отдельным чипом висит? Прошивка для него актуальная?

Deleted ()
Ответ на: комментарий от Deleted

Все прошивки актуальны. Но производителем уже видимо не поддерживается, морально платформа устарела с 2013 года и новые прошивки не выпускаются давно.

Esata на интеле или отдельным чипом висит?

Насколько я понимаю, у меня их 2:

Intel® Z87 chipset :
6 x SATA 6Gb/s port(s), yellow
Support Raid 0, 1, 5, 10
Supports Intel® Dynamic Storage Accelerator, Intel® Smart Response Technology, Intel® Rapid Start Technology, Intel® Smart Connect Technology*5

ASMedia® ASM1061 controller : *6
2 x SATA 6Gb/s port(s), 

А это идея! Проверить на втором контроллёре! Я как-то и забыл, что такое есть на этой материнке. Если бы Вы не задали вопрос, я не вспомнил бы ))

dva20 ()
Ответ на: комментарий от Deleted

Ну и еще.. дело в том, что я указал явно в заголовке фразу, которую обычно не любят и реагируют негативно, но это так.. Window могёт, то есть, у неё с моим железом проблем нет никакх, все диски определяются и монтируются ожидаемо, то есть при включении на них питания. А Вот Manjaro Linux так себя не ведет, из чего я и сделал вывод, что проблема где-то на стороне ядра (драйвера). Иначе как объяснить, то, что на Windows нет описанной проблемы?

dva20 ()
Ответ на: комментарий от dva20

Посмотри внимательно настройки BIOS, там кроме режима есть еще отдельный пункт «Hot Swap» для каждого порта на материнке. Они обычно все «off».

Сделано вроде как для того, чтобы устройство не определялось как съемное и система настраивала кэширование соответствующим образом.

Radjah ★★★★★ ()
Ответ на: комментарий от Radjah

В самом топике я это указал, что всё включено:

В BIOS’е:

* Режим AHCI
* hotplug для всех других шин SATA, кроме системного диска — включен

dva20 ()
Ответ на: комментарий от dva20

Значит, потестил я на своих 2-х SATA контроллёрах на материнке Asus z87 pro:

  • Intel® Z87 chipset
  • ASMedia® ASM1061 controller

Ни на одном из них, Linux не видит диск ни в какую, пока не дашь ему пинка командой свыше. Windows 10 попрежнему всё видит и могёт, никаких пинков ей не нужно.

Тут выходит, что явные проблемы с ядром (драйверами), а не с железом. Что еще можно предпринять, чтобы было как в увиндоуз? )) Я не силён с этой частью линукса, не представляю как он работает с драйверами, но помню, что они компилируются с ядром вместе, а их туда поставляет мэйнтейнер. Или есть какая-то возможность поставить «свои» драйвера, полученные от производителя? Или смириться с костылём, повесить его в крон systemd и забыть?

dva20 ()
Ответ на: комментарий от dva20

Ни на одном из них, Linux не видит диск ни в какую, пока не дашь ему пинка командой свыше.

Какая-то фигня. У всех всё работает. Может, windows, уходя в гибридное выключение, выключает что-нибудь? Попробуй windows не выключить, а перегрузиться в linux.

Deleted ()
Ответ на: комментарий от Deleted

Так вот и я о том же, фигня какая-то происходит непонятная и понять никак не получается.

Может, windows, уходя в гибридное выключение, выключает что-нибудь?

Пробовал вот так:

  • Была загружена Windows
  • Выключил Windows
  • Потушил питание системника
  • Подключил SATA кабель к портам контроллёра ASMedia и диску SATA, но НЕ ПОДКЛЮЧИЛ питание на HDD
  • Включаю системник, загружаю Manjaro Linux
  • После загрузки, смотрю dmesg, lsblk и на всякий случай в /sys/class/scsi_device/. Фиксирую состояние (глазками)
  • Подключаю питание на SATA диск
  • Ничего не меняется, ничего не происходит, кроме того, что блины закрутились в диске.

Аналогично, всё проделываю с Windows - как только подрубаю диску питание, windows обнаруживает его на канале и монтирует ФС. Что на intel контроллёре, что на ASMedia, Windows видит и могёт, а Linux молчит. Подключений было много раз, перезагрузок, остановок, пока менял настройки в BIOS - ситуация не меняется в Linux никак. Вот таки дела…

dva20 ()
Ответ на: комментарий от dva20

Другой дистрибутив попробуй. Походу дела ядро Манджаро настроено особым способом. Лайв убунту как например.

Ramil ★★★★ ()
Ответ на: комментарий от Ramil

Проверил. Действительно, на Ubuntu 18.10 такой проблемы нет, диск сразу же обнаруживает. Всё таки дело получается конкретно в Manjaro…

dva20 ()
Ответ на: комментарий от Ramil

Какой параметр можно попытаться передать ядру? Я даже не знаю в какую сторону копать… Ядро обновил с 4.19.16 на 4.20.7 - ничего не поменялось. Видимо это «фишка» исключительно Manjaro какая-то… А какая? (((

dva20 ()
Ответ на: комментарий от dva20

А какая?

Пробежаться диффом конфигам?

anonymous ()
Ответ на: комментарий от dva20

Видимо это «фишка» исключительно Manjaro какая-то…

Точно. Какая именно – никто не знает.

https://forum.manjaro.org/t/sata-drive-hotplug-no-detected/17594/13

laptop-mode-tools или tlp не установлены?

greenman ★★★★★ ()
Последнее исправление: greenman (всего исправлений: 1)
Ответ на: комментарий от greenman

laptop-mode-tools в репах есть, но у меня не установлен:

$ pacman -Ss laptop-mode-tools
community/laptop-mode-tools 1.72.2-1
    Power Saving tool for Linux

$ pacman -Q laptop-mode-tools
error: package 'laptop-mode-tools' was not found

tlp установлен:

$ pacman -Qs tlp
local/tlp 1.1-1.0
    Linux Advanced Power Management
dva20 ()
Ответ на: комментарий от greenman

Урраааа!! ))) Всё получилось! Спасибо огромное!

Я так понимаю, пакет мне не нужен (у меня PC) и можно без него обойтись?

dva20 ()
Ответ на: комментарий от greenman

Спасибо! Я пользовался гуглом, но на этот пост не поподал ((

dva20 ()
Ответ на: комментарий от greenman

Кстати, может кому пригодится, можно не удалять пакет, эффект будет тот же (диск будет появляться в системе при hotswap/hotplug), а закомментировать (отключить) опцию SATA_LINKPWR_ON_AC (для питания от сети) и/или SATA_LINKPWR_ON_BAT от питания от аккумулятора в конфиге /etc/default/tlp:

#SATA_LINKPWR_ON_AC="med_power_with_dipm max_performance"
SATA_LINKPWR_ON_BAT="med_power_with_dipm min_power"

В моём случае, достаточно было закомментировать только первую опцию, так как у меня PC.

Источник - мануал по tlp

dva20 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.