Ядро не видит SATA диск

vasek, ну как будет апгрейд, будем смотреть...
Обсуждалось на лоре, такой же винт и похожая проблема: https://www.linux.org.ru/forum/linux-install/8140978
In Tux We Trust
redix, так он уже два разных винта пробовал, результат один и тот же...
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Разные дистры тоже не видят...
Вообщем читать о проблеме одно, а видеть и пощупать ее самому, это другое, а потому решил провести эксперимент.
Загрузился с установочного archiso , смотрю выводы
lspci -v -s 00:1f.2
Kernel driver in use: ahci
Kernel modules: ahci
lsblk, fdisk, ls /dev/sd* - все на месте, проблем нет.
Выгружаю модуль ahci - modprobe -r ahci
Диск sda пропал - его нет в выводах lsblk, fdisk, ls /dev/sd*
Почти все как у ТС, но заметил одно отличие в выводе lspci -v -s <id>
у ТС
Ded1997
Kernel driver in use: ahci
у меня
Kernel modules: ahci
UPD - что мне не совсем понятно - хотя можно объяснить тем, что у ТС модуль ahci не полностью загружается …. верно ли это?, на 100% не уверен.

Загрузил модуль обратно
modprobe -v ahci (опция -v показывает. что грузиться)
insmod libmodules/.../libata.ko.gz
insmod libmodules/.../libahci.ko.gz
insmod libmodules/.../ahci.ko.gz
Проверил, все появилось и стало как прежде.

И тут я вспомнил, что когда писал ТС про загрузку модулей, то была такая фраза (в части указания опции -v для информативности)
Ded1997
Модули вообще никакой информации не предоставили при запуске, спокойно, молча запустились

В итоге, имхо, с большой долей вероятности, что проблема в загрузке драйвера ahci - он загружается не полностью - а вот почему, это уже другой вопрос.
И пока вывод lspci -v -s <id> не примет вид
Kernel driver in use: ahci
Kernel modules: ahci
диск не определится - не появиться файл устройства /dev/sda.
Нужно подгружать модули в ручную и обязательно с опцией -v, чтобы убедиться в подгрузке модуля (должно быть сообщение, типа insmod <модуль> ...)

EDIT 1 - а вот если модуль полностью все-таки не загрузиться, то тогда нужно смотреть и думать - почему он не загружается
Ошибки не исчезают с опытом - они просто умнеют
Уже удавалось загрузить модули. Kernel modules: ahci и недостающий libata в lsmod | grep ahci оказались на месте. Также это ничего не меняет.
Ded1997
Kernel modules: ahci и недостающий libata в lsmod | grep ahci оказались на месте. Также это ничего не меняет.
Вот это и странно. Будет время и желание попробуй еще раз загрузиться и выполнить следующее - за один раз, что б больше к этому не возвращаться.
Плюс к этому, тогда не выгрузили сначала все эти модули, а просто пытались загрузить не достающие.
1. ls /dev/sd*
2. ls /dev/disk/by-id
3. lspci -v -s <id> (вроде бы <id> = 00:11.0)
4. lsmod | grep ahci
и вдобавок отдельно зависимые модули
lsmod | grep libahci
lsmod | grep libata
lsmod | grep scsi_mod

Выгружаем модуль ahci
5. modprobe -v -r ahci
должно проинформировать какие модули были выгружены - и лучше проверить их наличие согласно п.4 - если что то осталось(что маловероятно, то выгрузить отдельно и снова проверить)
6.lspci -v -s <id>

Загружаем модуль обратно
7. modprobe -v ahci
в выводе должно быть указано три модуля
insmod /lib/modules/.../libata.ko.gz
insmod /lib/modules/.../libahci.ko.gz
insmod /lib/modules/.../ahci.ko.gz
Если какой то модуль не загрузился, грузим его в ручную
insmod /lib/modules/.../<модуль>.ko.gz
9. Проверяем загрузку модулей согласно п.4
10. Смотрим выводы согласно пп.1, 2, 3

Если опять ничего нет, попробуем загрузить модули в ручную, для чего
11. Выгружаем все модули, как это делали раньше в п.5
12. И загружем все модули используя insmod
insmod libmodules/.../libata.ko.gz
insmod libmodules/.../libahci.ko.gz
insmod libmodules/.../ahci.ko.gz
Путь расположения модулей смотрим в выводе, типа, modinfo -n libata
13. И опять смотрим окончательные выводы по пп. 1, 2, 3 и наличие диска.
UPD 1- все-таки советую это проделать, нет гарантии, что после апгрейд все наладится.
UPD 2- и все таки мне не понятно, это наблюдается только с этими двумя дисками или есть проблемы и с другими? Такое впечатление, что libata не понимает эти диски, а потому и не грузится данный модуль libata.

EDIT 1 - Как всегда, что-нибудь да забуду.
1. Рекомендую увеличить уровень логирования ядра - dmesg -n 8 и просматривать вывод логов после выгрузки и загрузки модулей (думаю строк 20 хватит) - dmesg | tail -20
2. Попробуй загрузиться с параметром libata.force=noncq (отключение NCQ SATA, может проблема с поддержкой NCQ)
Ошибки не исчезают с опытом - они просто умнеют
Появилось у меня одно правдоподобное объяснение - вспомнил, что встречалось похожее раньше и были нарекания к HDD Seagate и некоторым другим HDD (в основном не определялись в BIOS и иногда в системе) - запомнилось название проблемы - муха СС, а потому и вспомнилось.
Сделал поиск по своей базе - и да был такой баг у некоторых HDD - описывать не буду, но грубо говоря зацикленная ошибка (Exception - ситуация при которой контроллер дуреет и не знает что ему делать).
UPD - кодов ошибки несколько, но в основном это LED:000000CC, LED:00000047
При этих ошибке диск не определяется и чтобы вывести его из этого режима, необходимо послать соответствующую SCSI команду.
Вообщем в домашних условиях это не излечимо.
Но можно попробовать сменить прошивку. Этот баг наблюдается у HDD, имеющих прошивку Firmware: CC4B (нужно вытащить диск и уточнить прошивку).
Советуют поменять ее на CC4A или CC4H.
Но у меня устаревшие данные, возможно этим страдают и другие прошивки , нужно гуглить.
Возможно предположение и ошибочное, но уж очень похоже на правду. Смущает одно, почему в данном случае наблюдается только в Linux.
Ошибки не исчезают с опытом - они просто умнеют
vasek, прошивка CC43. Иду пробовать новый лист команд...
Модули нормально включались и выключались, показывали нужные логи, обнаруживались в lsmod, когда им надо было там обнаруживаться. lspci -v -s при отключенных модулях показывал только Kernel modules: ahci, строка драйверов исчезла. NCQ отключил. Всё как всегда.

# dmesg | tail -29

[  556.677454] libata version 3.00 loaded.
[  556.686558] ahci 0000:00:11.0: version 3.0
[  556.688030] ahci 0000:00:11.0: AHCI 0001.0300 32 slots 8 ports 6 Gbps 0xff impl SATA mode
[  556.689112] ahci 0000:00:11.0: flags: 64bit ncq sntf ilck pm led clo pmp pio sxs
[  556.690205] ahci 0000:00:11.0: both AHCI_HFLAG_MULTI_MSI flag set and custom irq handler implemented
[  556.692685] scsi host0: ahci
[  556.698424] scsi host1: ahci
[  556.703476] scsi host2: ahci
[  556.704769] scsi host3: ahci
[  556.706023] scsi host4: ahci
[  556.707563] scsi host5: ahci
[  556.708749] scsi host6: ahci
[  556.709896] scsi host7: ahci
[  556.710994] ata1: SATA max UDMA/133 abar m2048@0xfeb70000 port 0xfeb70100 irq 36
[  556.711920] ata2: SATA max UDMA/133 abar m2048@0xfeb70000 port 0xfeb70180 irq 37
[  556.712828] ata3: SATA max UDMA/133 abar m2048@0xfeb70000 port 0xfeb70200 irq 38
[  556.713730] ata4: SATA max UDMA/133 abar m2048@0xfeb70000 port 0xfeb70280 irq 39
[  556.714614] ata5: SATA max UDMA/133 abar m2048@0xfeb70000 port 0xfeb70300 irq 40
[  556.715500] ata6: SATA max UDMA/133 abar m2048@0xfeb70000 port 0xfeb70380 irq 41
[  556.716388] ata7: SATA max UDMA/133 abar m2048@0xfeb70000 port 0xfeb70400 irq 42
[  556.717317] ata8: SATA max UDMA/133 abar m2048@0xfeb70000 port 0xfeb70480 irq 43
[  557.027599] ata1: SATA link down (SStatus 0 SControl 300)
[  557.029421] ata7: SATA link down (SStatus 0 SControl 300)
[  557.031255] ata6: SATA link down (SStatus 0 SControl 300)
[  557.033041] ata3: SATA link down (SStatus 0 SControl 300)
[  557.034837] ata2: SATA link down (SStatus 0 SControl 300)
[  557.036638] ata4: SATA link down (SStatus 0 SControl 300)
[  557.038360] ata5: SATA link down (SStatus 0 SControl 300)
[  557.039867] ata8: SATA link down (SStatus 0 SControl 300)
 
Зарегистрироваться или войдите чтобы оставить сообщение.