Я рву на себе волосы по этому вопросу.
Я хотел добавить отсек для горячей замены на свой домашний сервер, чтобы легко добавлять и удалять жесткие диски, например, для простой ротации резервных копий за пределами площадки. Рассматриваемая материнская плата представляет собой материнскую плату Asrock J4105-ITX с четырьмя собственными портами SATA, которые разделены между ASM1062 и контроллером SATA процессора Intel. Оба работают нормально и используют ахси
модуль ядра. В биосе есть опция горячей замены, но она не работает.
Если диск отключен (либо через эхо 1 > /sys/block/sdX/device/удалить
или грубым извлечением диска), после повторного подключения новое устройство не будет распознано. Пробовал принудительно пересканировать(эхо "- - -" > /sys/class/scsi_host/host<n>/scan
) но безрезультатно, порт SATA уже практически не работает до следующей перезагрузки. Я также безуспешно пробовал еще несколько экстремальных команд:
эхо 1 > /sys/класс/scsi_device/2:0:0:0/устройство/сброс
эхо 1 > /sys/devices/pci0000:00/0000:00:1f.2/повторное сканирование
эхо 1 > /sys/devices/pci0000:00/0000:00:1f.2/сброс
(взято из Как заставить Linux распознавать новый диск SATA /dev/sda, который я заменил без перезагрузки?)
«Хорошо, возможно, чипсет не поддерживает горячую замену или BIOS неисправен».
Поэтому я заказал два контроллера PCIe SATA (один использует ASM1064, другой использует Marvell 88SE9215). Оба имеют одинаковую проблему, хотя другие покупатели утверждают, что горячая замена работает для них, поэтому я предполагаю, что проблема либо связана с программным обеспечением (моя установка? Я использую ОС Arch, которая постоянно обновляется).
Некоторая, надеюсь, полезная информация:
$ uname -a
Имя сервера Linux 5.14.14-arch1-1 #1 SMP PREEMPT Среда, 20 октября 2021 г., 21:35:18 +0000 x86_64 GNU/Linux
$ dmesg | grep ахси
[0.447450] ahci 0000:00:12.0: версия 3.0
[0.447842] ahci 0000:00:12.0: флаг SSS установлен, сканирование параллельной шины отключено
[ 0.457970] ahci 0000:00:12.0: AHCI 0001.0301 32 слота 2 порта 6 Гбит/с 0x3 импл режим SATA
[0.457981] ahci 0000:00:12.0: flags: 64bit ncq sntf stag pm clo only pmp pio slum part sxs deso sadm sds apst
[0.458750] scsi host0: ahci
[0.459204] scsi host1: ahci
[ 0.469788] ahci 0000:01:00.0: AHCI 0001.0000 32 слота 4 порта 6 Гбит/с 0xf режим SATA
[0.469801] ahci 0000:01:00.0: flags: 64bit ncq sntf led only pmp fbs pio slum part sxs
[0.470767] scsi host2: ahci
[0.471203] scsi host3: ahci
[0.471562] scsi host4: ahci
[0.471904] scsi host5: ahci
[0.472341] ahci 0000:04:00.0: установлен флаг SSS, сканирование параллельной шины отключено
[ 0.472376] ahci 0000:04:00.0: AHCI 0001.0200 32 слота 2 порта 6 Гбит/с 0x3 импл режим SATA
[0.472382] ahci 0000:04:00.0: flags: 64bit ncq sntf stag led clo pmp pio slum part ccc
[0.472803] scsi host6: ahci
[0.473011] scsi host7: ahci
$ lspci-v
[...]
01:00.0 Контроллер SATA: Marvell Technology Group Ltd. 88SE9215 PCIe 2.0 x1 4-портовый контроллер SATA 6 Гбит/с (версия 11) (программа-если 01 [AHCI 1.0])
Подсистема: Marvell Technology Group Ltd. 88SE9215 PCIe 2.0 x1 4-портовый контроллер SATA 6 Гбит/с
Флаги: bus master, fast devsel, latency 0, IRQ 127
Порты ввода/вывода на e050 [размер=8]
Порты ввода/вывода на e040 [размер=4]
Порты ввода/вывода на e030 [размер=8]
Порты ввода/вывода на e020 [размер=4]
Порты ввода-вывода на e000 [размер = 32]
Память на уровне a1340000 (32-разрядная, без предварительной выборки) [размер = 2 КБ]
Расширение ПЗУ на a1300000 [отключено] [размер = 256K]
Возможности: [40] Управление питанием версии 3
Возможности: [50] MSI: Enable+ Count=1/1 Maskable- 64bit-
Возможности: [70] Express Legacy Endpoint, MSI 00
Возможности: [e0] SATA HBA v0.0
Возможности: [100] Расширенные отчеты об ошибках
Используемый драйвер ядра: ahci
[...]