Linux SMARTКритическая

Ошибка SMART в Linux: как диагностировать и исправить

Статья объясняет, что означают ошибки SMART в Linux, и предоставляет проверенные способы их решения, включая команды для диагностики и замены диска.

Обновлено 16 февраля 2026 г.
15-30 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 20.04+CentOS 7+Debian 10+Any Linux with smartmontools

Что означает ошибка SMART

Ошибка SMART (Self-Monitoring, Analysis, and Reporting Technology) — это сигнал от встроенной системы самодиагностики вашего жёсткого диска (HDD) или SSD. Она указывает, что один или несколько мониторируемых параметров диска вышли за допустимые пределы, что часто предшествует полному отказу носителя.

Типичный вывод команды smartctl при проблеме:

SMART overall-health self-assessment test result: FAILED!

Или в таблице атрибутов:

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   Pre-fail   100   100   050    Old_age   Always       -       10
197 Current_Pending_Sector Offline     100   100   000    Old_age   Always       -       5

В этом примере Reallocated_Sector_Ct (перераспределённые сектора) и Current_Pending_Sector (ожидающие перераспределения) имеют ненулевые значения, что указывает на физические повреждения поверхности диска.

Причины возникновения

Ошибки SMART возникают из-за естественного износа или внешних факторов, влияющих на надёжность накопителя:

  1. Механический износ (для HDD): Износ двигателя, головок или подшипников после нескольких лет активного использования.
  2. Электронные компоненты: Сбои контроллера диска или памяти (особенно актуально для SSD).
  3. Перегрев: Длительная работа при высоких температурах ускоряет деградацию носителя.
  4. Плохие сектора: Появление нечитаемых секторов из-за повреждения поверхности (HDD) или износа ячеек (SSD).
  5. Физические воздействия: Удары, вибрации или скачки напряжения во время работы.
  6. Кабели и интерфейс: Плохие соединения (особенно для SATA/IDE), приводящие к ошибкам CRC (UDMA_CRC_Error_Count).

Способ 1: Проверка состояния диска с помощью smartctl

Это основной метод диагностики. Убедитесь, что утилита smartmontools установлена:

# Для Ubuntu/Debian
sudo apt update && sudo apt install smartmontools

# Для CentOS/RHEL/Fedora
sudo yum install smartmontools
# или
sudo dnf install smartmontools
  1. Определите имя дискового устройства:
    lsblk
    

    Или для более детального списка:
    sudo fdisk -l
    

    Найдите ваш диск (например, /dev/sda, /dev/sdb, /dev/nvme0n1). Будьте осторожны: работа с неверным устройством может привести к потере данных.
  2. Запустите полную проверку SMART:
    sudo smartctl -a /dev/sdX
    

    Замените sdX на ваше устройство (например, sda).
  3. Проанализируйте вывод:
    • Overall-health: Ищите строку SMART overall-health self-assessment test result. Если FAILED — диск критически нездоров.
    • Attribute table: Обратите внимание на атрибуты:
      • Reallocated_Sector_Ct (ID 5): Количество секторов, переназначенных на резервные. Ненулевое значение — признак износа.
      • Current_Pending_Sector (ID 197): Сектора, ожидающие переназначения. Обычно указывает на неисправимые ошибки чтения.
      • UDMA_CRC_Error_Count (ID 199): Ошибки контроля целостности данных на кабеле. Часто решается заменой SATA-кабеля.
      • Power_On_Hours (ID 9): Время наработки. Сравните с MTBF (средним временем наработки на отказ) диска.
    • Threshold exceeded: В таблице атрибутов, если в колонке WHEN_FAILED стоит FAILING_NOW или PRE-FAIL, это критично.

💡 Совет: Для SSD ключевые атрибуты — Media_Wearout_Indicator (износ памяти) и Available_Reservd_Space (оставшееся резервное пространство).

Способ 2: Запуск расширенного самотестирования

Краткий тест (short) быстро проверяет электронику и базовые сектора. Длительный тест (long) сканирует всю поверхность диска.

  1. Запустите длительный тест (может занять от 1 до 10 часов в зависимости от размера диска):
    sudo smartctl -t long /dev/sdX
    

    Команда вернёт примерное время завершения.
  2. Проверьте прогресс (опционально):
    sudo smartctl -a /dev/sdX | grep "Self-Test"
    

    Или просто подождите завершения.
  3. После завершения снова выполните:
    sudo smartctl -a /dev/sdX
    

    Прокрутите до раздела Self-Test Log. Ищите записи с Completed и Read Failure или Failure. Любая ошибка в логе — серьёзный повод для замены диска.

⚠️ Важно: Длительный тест нагружает диск. Не запускайте его на системном диске в период высокой нагрузки, если это возможно.

Способ 3: Проверка логов системы на ошибки ввода-вывода

Иногда SMART не всегда оперативно сообщает о проблемах, но ядро Linux фиксирует ошибки чтения/записи.

  1. Просмотрите системный журнал (journalctl):
    sudo journalctl -xe | grep -iE "error|fail|ata|scsi|nvme"
    

    Или для более точного поиска по устройству:
    sudo dmesg | grep -i /dev/sdX
    
  2. Типичные сообщения:
    [ 1234.567890] sd 0:0:0:0: [sda] Sense Key : Medium Error [current] 
    [ 1234.567891] sd 0:0:0:0: [sda] Add. Sense: Unrecovered read error
    

    Это указывает на невосстановимые ошибки чтения, часто связанные с физическими повреждениями.
  3. Для NVMe дисков используйте утилиту nvme-cli:
    sudo nvme smart-log /dev/nvme0
    

    Обращайте внимание на critical_warning и media_errors.

Способ 4: Резервное копирование и замена диска

Если диагностика подтвердила критическое состояние диска (FAILED в overall-health, растущие значения Reallocated_Sector_Ct или Current_Pending_Sector, ошибки в логах), действуйте немедленно:

  1. Создайте полную резервную копию всех данных с проблемного диска. Используйте dd, rsync или инструменты бэкапа.
    # Пример rsync для копирования домашних каталогов
    sudo rsync -avh /home/ /backup/home_backup/
    
  2. Если диск в RAID:
    • Для программного RAID (mdadm) проверьте состояние: cat /proc/mdstat.
    • Замените диск в массиве, следуя процедуре вашего RAID-уровня (обычно mdadm --manage /dev/md0 --add /dev/sdX).
    • Для аппаратного RAID используйте утилиты контроллера (например, storcli для LSI).
  3. Физическая замена:
    • Выключите систему (если это системный диск).
    • Замените диск на новый.
    • Восстановите данные из бэкапа или переустановите систему.

Профилактика

Чтобы минимизировать риски внезапного отказа диска:

  • Регулярная проверка SMART: Настройте cron-задачу для ежемесячного автоматического сканирования.
    # Пример crontab (ежедневно в 2:00 ночи)
    0 2 * * * /usr/sbin/smartctl -H /dev/sdX | grep -q "FAILED" && echo "SMART FAIL on /dev/sdX" | mail -s "Disk Alert" admin@example.com
    
  • Мониторинг температуры: Диски не должны работать выше 50-60°C. Используйте hddtemp или smartctl -A.
  • Используйте RAID 1/5/6/10 для критически важных данных. RAID не заменяет бэкап, но повышает отказоустойчивость.
  • Избегайте физических воздействий: Не перемещайте работающий HDD, обеспечивайте адекватное охлаждение.
  • Обновляйте прошивку диска (если производитель выпустил обновление, улучшающее надёжность).
  • Для SSD: Следите за оставшимся ресурсом записи (Media_Wearout_Indicator). SSD имеют ограниченное число циклов перезаписи.

💡 Совет: Для SSD также важно не заполнять диск более чем на 80-90%, чтобы оставить место для алгоритмов износа (wear leveling).

Часто задаваемые вопросы

Что такое SMART и почему она важна?
Можно ли игнорировать ошибку SMART, если диск ещё работает?
Какой атрибут SMART считается критическим?
Нужно ли останавливать сервисы перед запуском SMART-теста?

Полезное

Установите утилиту smartmontools
Определите имя дискового устройства
Запустите полную диагностику SMART
Выполните длительное самотестирование
Примите меры при подтверждённых проблемах