Возможности libata: статус поддержки SATA в Linux
Обновлено 8 ноября 2026
Сводка по функциям SATA в ядре Linux: что работает, с какими оговорками и как проверить у себя.
| Возможность | Статус | Как проверить | |
|---|---|---|---|
| NCQ | Поддерживается | cat /sys/block/sda/device/queue_depth | подробнее |
| TRIM (discard) | Поддерживается, для части SSD очередной TRIM отключён | lsblk --discard | |
| Горячая замена | Поддерживается в AHCI и части sata_* | dmesg | grep -i "link up" | подробнее |
| Port multiplier | ahci (у части контроллеров), sata_sil24, sata_mv | флаг pm в журнале ahci | |
| Энергосбережение линка (ALPM, DIPM) | Поддерживается в ahci | link_power_management_policy | подробнее |
| DevSleep | Если поддерживают контроллер и диск | флаги sds, sadm | подробнее |
| SMART, ATA PASS-THROUGH | Поддерживается | smartctl -a /dev/sda | подробнее |
| Приоритет NCQ | Для дисков с поддержкой NCQ priority | ncq_prio_enable в sysfs | |
| Зональные SMR-диски (ZAC) | Поддерживаются | cat /sys/block/sda/queue/zoned | |
| ATAPI (оптические приводы) | Поддерживается | устройство /dev/sr0 | |
| ATA Security (Secure Erase) | Через hdparm, если диск не в состоянии frozen | hdparm -I /dev/sda | |
| Сектора 4K | Поддерживается | physical_block_size в sysfs |
NCQ
Очередь команд до 32 запросов. Глубина очереди видна в sysfs и в журнале загрузки. При ошибках с командами FPDMA QUEUED NCQ можно отключить для отдельного порта. Подробно в статье про NCQ.
TRIM
TRIM сообщает SSD, какие блоки свободны. Проверка: колонки DISC-GRAN и DISC-MAX в выводе lsblk --discard не должны быть нулевыми. Периодический TRIM запускает таймер fstrim.timer, его состояние покажет systemctl status fstrim.timer. Для моделей SSD с ошибками в очередном TRIM ядро само переключается на обычный.
Горячая замена и port multiplier
Горячая замена работает в AHCI и требует включённого Hot Plug в BIOS на части плат. Port multiplier позволяет подключить несколько дисков к одному порту, это используют корзины eSATA. Порядок безопасного отключения диска описан в статье о горячей замене.
Энергосбережение
Ядро умеет переводить линк в состояния Partial и Slumber, а SSD с поддержкой DevSleep почти полностью отключать в простое. Настройка и риски разобраны в статье об энергосбережении SATA.
Параметр libata.force
Если контроллер или диск работает с ошибками, поведение libata можно поменять параметром ядра в загрузчике:
libata.force=noncq # отключить NCQ для всех
libata.force=3:1.5Gbps # ограничить скорость линка порта 3
libata.force=noncqtrim # отключить очередной TRIM
Полный список значений приведён в документации ядра, раздел kernel-parameters. Список контроллеров и драйверов смотрите на странице поддержки SATA-контроллеров.