Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
ata1: softreset failed (device not ready) Linux / DevOps

ata1: softreset failed (device not ready) — Причины и исправление ошибки Linux

Обновлено: 18.08.2026  ·  Официальная база знаний

Архитектура ошибки и симптомы сбоя

Сообщение «ata1: softreset failed (device not ready)» появляется, когда подсистема управления накопителями libata пытается программно сбросить SATA-порт (выполнить Softreset через посылку SRST в Device Control Register) после сбоя обмена данными, однако устройство не снимает флаг BUSY (BSY) и не возвращает сигнатуру готовности в течение заданного таймаута (обычно от 10 до 30 секунд). В результате порт зависает, система циклически повторяет сбросы, а ядро в конечном итоге отключает накопитель (disabling device).

Диагностическая таблица параметров сбоя

ПараметрЗначениеИнженерный смысл сбоя
softresetSoftware Reset (SRST)Программная попытка ядра перезапустить логику общения с накопителем.
device not readyBSY flag assertedКонтроллер диска завис в собственном микрокоде или потерял физический контакт по питанию/линиям данных.
SControl / SStatusSATA Link StatusРегистры AHCI, отражающие физическое наличие несущей частоты на интерфейсе SATA.

Пошаговое дерево решений и сценарии траблшутинга

Сценарий 1: Проверка физического подключения кабелей питания и данных

В 80% случаев ошибка softreset failed вызвана перегибом кабеля SATA, окислением контактов или просадкой линии 5V/12V блока питания:

  • Замените интерфейсный кабель SATA на новый с металлической защелкой (latch).
  • Переключите диск в другой свободный порт SATA на материнской плате.
  • Исключите использование переходников питания Molex-to-SATA.

Сценарий 2: Принудительное ограничение скорости интерфейса (SATA Link Speed)

Если материнская плата или backplane корзины серверов имеют помехи на дорожках, ограничьте скорость порта в загрузчике GRUB:

# Добавьте в /etc/default/grub (ограничение скорости порта 1 до SATA II / 3.0Gbps):
GRUB_CMDLINE_LINUX="libata.force=1:3.0Gbps"

# Обновите конфигурацию GRUB:
sudo update-grub
sudo reboot

Сценарий 3: Переключение режима работы контроллера в BIOS/UEFI

  1. Перезагрузите сервер и войдите в BIOS/UEFI Setup.
  2. Убедитесь, что режим SATA выставлен строго в AHCI (а не IDE/Legacy или Vendor RAID).
  3. Отключите агрессивное энергосбережение портов ALPM (Aggressive Link Power Management).
Сервер зависает на этапе softreset при загрузке?
ITSTM проводит аппаратную диагностику серверных платформ, замену SAS/SATA экспандеров и восстановление доступа к дисковым томам.
Практический опыт инженера: При установке серверных SSD в корзины hot-swap всегда проверяйте надежность фиксации салазок. Неполный контакт в backplane вызывает повторяющиеся softreset failed именно при высоких вибрациях или пиковой нагрузке.

Частые вопросы (FAQ)

Чем softreset отличается от hardreset в логах libata?

Softreset — это программный сброс управляющих регистров без изменения физического линка. Hardreset (COMRESET) — это полный аппаратный сброс физического уровня интерфейса SATA с повторной синхронизацией частоты и передачей сигнатуры OOB.

Почему после нескольких неудачных softreset ядро пишет 'disabling port'?

Ядро Linux применяет политику защиты от бесконечного зависания. Если диск не отвечает после серии программных и аппаратных сбросов, libata полностью отключает порт, чтобы операционная система могла продолжить загрузку на остальных дисках.

Может ли причиной softreset failed быть деградация SSD-накопителя?

Да. Если контроллер SSD переходит в состояние защиты памяти (Read-Only Panic) или заблокирован из-за сбоя NAND flash, он перестает отвечать на сигналы сброса SRST, вызывая постоянный таймаут.

Как принудительно пересканировать отключенный SATA-порт без перезагрузки?

Выполните команду: echo '- - -' | sudo tee /sys/class/scsi_host/host0/scan (замените host0 на номер соответствующего контроллера).