smartmontools: контроль и тестирование жёстких дисков

smartmontools — набор утилит (smartctl и smartd) для мониторинга SMART в ATA/SCSI дисках. Установите пакет, включите SMART, запустите тесты (короткий, длинный, conveyance), настройте демона smartd для автоматических проверок и уведомлений. Используйте gsmartcontrol для удобного GUI.
О smartmontools
smartmontools — это два основных инструмента: smartctl (вручную управляет и опрашивает диск) и smartd (демон для регулярных проверок и уведомлений). SMART — это встроенная в современные диски технология самоконтроля, анализа и отчётности. Коротко: SMART собирает показатели работы диска и может заранее предупредить о деградации.
Определение: SMART — встроенный набор метрик жёсткого диска для раннего обнаружения отказов.
Что делает этот материал
В этом руководстве показано: установка, базовые команды для терминала, интерпретация результатов, настройка демона smartd, советы по эксплойту и альтернативы. В конце — чек-листы для ролей, мини-методология внедрения и блок с частыми проблемами.
Установка
Для большинства Debian/Ubuntu-подобных систем команда установки простая:
sudo apt-get install smartmontools
Понадобится диск с поддержкой S.M.A.R.T. (обычно современные ATA/SCSI/SATA диски и SSD поддерживают).
Проверьте, распознаёт ли диск SMART:
sudo smartctl -i /dev/sda
Замените /dev/sda на имя вашего устройства (например /dev/nvme0n1 или /dev/sdb).
Важно: убедитесь, что в выводе есть строки, указывающие на поддержку SMART и что SMART включён или доступен.
Включение SMART
Чтобы включить SMART на диске выполните:
sudo smartctl -s on /dev/sda
Команда включит SMART, если он ещё не активен. Повторный запуск безопасен — если SMART уже включён, команда ничего не изменит.
Просмотр полной информации SMART
Для общего вывода SMART для IDE:
sudo smartctl -a /dev/sda
Для SATA (явно указать драйвер):
sudo smartctl -a -d ata /dev/sda
Чтобы получить краткий статус здоровья диска:
sudo smartctl -H /dev/sda
Если команда показывает FAIL или другие ошибки — сделайте резервную копию данных как можно скорее.
Самотесты диска: типы и запуск
smartctl поддерживает три основных типа самотестов:
- short — быстрый тест, обычно несколько минут;
- long (extended) — полный, может занимать часы;
- conveyance — тест после транспортировки (короткий тест ориентирован на механические проблемы при перевозке).
Посмотреть список доступных тестов и примерные времена выполнения:
sudo smartctl -c /dev/sda
Примеры запуска:
sudo smartctl -l long /dev/sda
sudo smartctl -l short /dev/sda
sudo smartctl -l conveyance /dev/sda
Результат выполнения длинного теста (пример):
Примечание: тесты запускаются на уровне диска и выполняются в фоне. Для получения статуса выполнения используйте команды smartctl для просмотра логов теста.
Получить результаты самотеста:
sudo smartctl -l selftest /dev/sda
Если вы не понимаете вывод — изучите man-страницы или используйте GUI (см. ниже).
man 8 smartctl
man 8 smartd
Демон smartd: автоматизация и уведомления
Чтобы smartmontools запускался автоматически, отредактируйте файл настроек по умолчанию:
sudo nano /etc/default/smartmontools
Найдите и раскомментируйте строку, отвечающую за автозапуск демона. После этого демон будет стартовать при загрузке системы.
Отредактируйте конфигурацию демона:
sudo nano /etc/smartd.conf
Если директива DEVICESCAN не работает, укажите конкретный путь, например /dev/sda. Пример строки в smartd.conf:
/dev/sda -m root -M exec /usr/share/smartmontools/smartd-runner
Разбор параметров:
- -m root — отправлять почту пользователю root при ошибке;
- -M exec /usr/share/smartmontools/smartd-runner — запускать скрипт smartd-runner для обработки событий (можно удалить, если файла нет).
Пример более полной строки с планировщиком самотестов:
DEVICESCAN -a -H -l error -l selftest -f -s(S/../.././02|L/../../6/03) -m root -M exec /usr/share/smartmontools/smartd-runner
Объяснение:
- -a — включает набор часто используемых опций;
- -H — проверять статус здоровья;
- -l error -l selftest — логировать ошибки и результаты самотестов;
- -f — проверять критические атрибуты использования (failure attributes);
- -s(S/../.././02|L/../../6/03) — расписание: короткий тест каждый день в 02:00, длинный тест — каждые субботы в 03:00.
Больше деталей в man-файле:
man 5 smartd.conf
GUI: GSmartControl
Если вы предпочитаете графический интерфейс, установите GSmartControl:
sudo apt-get install gsmartcontrol
Пример окна GSmartControl и контекстного меню по правому клику:
GUI упрощает чтение SMART-атрибутов и запуск самотестов.
Когда SMART может не сработать
Важно понимать ограничения SMART и случаи, когда он не предупреждает об отказе:
- SMART не покрывает все виды отказов аппаратуры (например, внезапная электроника на плате контроллера);
- Некоторые SSD имеют собственные внутренние метрики, которые smartctl не всегда корректно интерпретирует;
- Некорректные драйверы или контроллеры RAID могут скрывать SMART-информацию;
- SMART даёт предупреждения о трендах, но не гарантирует точного прогноза времени отказа.
Если вам нужна повышенная надёжность, используйте сочетание мониторинга SMART и стратегий резервного копирования/репликации.
Альтернативные подходы и инструменты
- vendor-specific утилиты (Seagate SeaTools, Western Digital Data Lifeguard) для глубоких тестов;
- контроллерные/RAID-ориентированные утилиты от производителя контроллера;
- аппаратные мониторы в системах хранения (SAN/NAS) с собственными S.M.A.R.T.-агрегаторами;
- регулярные проверки целостности данных (например, еженочные проверки контрольных сумм).
Комбинируйте несколько инструментов для снижения риска потери данных.
Ментальные модели и простые эвристики
- Ловите тренды, а не единовременные ошибки. Рост числа переназначенных секторов и увеличивающееся время чтения — тревожные признаки.
- Реагируйте немедленно на SMART ERROR или uncorrectable sectors — делайте бэкап и планируйте замену.
- Используйте автоматический демон для обнаружения трендов, а GUI для разовых глубоких проверок.
Мини-методология внедрения (быстрый план)
- Инвентаризация: определите все диски и контроллеры в системе.
- Тест на совместимость: запустите smartctl -i на всех устройствах.
- Включение SMART: smartctl -s on для поддерживаемых устройств.
- Настройка расписания: добавьте DEVICESCAN или конкретные устройства в /etc/smartd.conf.
- Внедрение уведомлений: настройте -m пользователь или интегрируйте скрипт в систему мониторинга.
- Документация: сохраните конфигурации и процедуры восстановления.
Роль‑ориентированные чек‑листы
Администратору:
- Проверить наличие и поддержку SMART на всех дисках;
- Включить smartd и убедиться, что демон запускается при загрузке;
- Настроить уведомления и периодические тесты;
- Тестировать процедуру восстановления данных.
Разработчику/инженеру по надежности:
- Интегрировать SMART-метрики в систему мониторинга (Prometheus, Zabbix, Nagios);
- Создать алерты на рост переназначенных секторов и времени чтения;
- Планировать замены дисков заранее при сигналах деградации.
Обычному пользователю:
- Регулярно делать резервные копии важных данных;
- В случае ошибок SMART — немедленно бэкапить и обратиться к администратору.
Критерии приёмки
- Демон smartd работает и начинает отправлять тесты по расписанию;
- Уведомления о критических ошибках доставляются (email/ALARMS);
- Минимум 90% дисков в инвентаре корректно отчитываются в smartctl -a;
- Документированная процедура замены диска и восстановления данных.
Примеры тестов и приёмочных критериев
- Запустить короткий тест на всех дисках и получить статус PASS для 95% устройств;
- Запустить длинный тест на выборке дисков и получить отсутствие новых критических ошибок;
- Смоделировать отказ диска и пройти процедуру восстановления из бэкапа.
Советы по безопасности и приватности
- Скрипты smartd-runner могут отправлять почту. Защитите конфиденциальные логи и доступ к почтовому серверу;
- Не публикуйте вывод smartctl с полными серийными номерами в публичных репозиториях;
- При интеграции с внешним мониторингом используйте защищённые каналы и меры контроля доступа.
Частые проблемы и обходы
- «SMART не доступен» на виртуализованных или аппаратных RAID-контроллерах — проверьте passthrough/параметры контроллера;
- NVMe-диски: используйте драйвер nvme и smartctl с ключом -d nvme если требуется;
- Если smartd-runner отсутствует, замените -M exec на собственный скрипт уведомления.
Пример простого рабочего процесса (playbook)
- Установить smartmontools и gsmartcontrol;
- Проверить устройства: smartctl -i на каждом;
- Включить SMART: smartctl -s on;
- Настроить smartd.conf с DEVICESCAN и расписанием коротких/длинных тестов;
- Настроить уведомления (-m) и протестировать отправку почты;
- Интеграция с системой мониторинга и запись метрик в долгосрочный бэкап.
Быстрый глоссарий (одна строка на термин)
- SMART — встроенная система самоконтроля диска;
- smartctl — утилита для ручной работы с SMART;
- smartd — демон для регулярных проверок и уведомлений;
- selftest — встроенный самопроверочный тест диска;
- DEVICESCAN — директива smartd.conf для автоматического поиска устройств.
Когда сменить диск
Немедленно планируйте замену, если вы видите:
- FAIL в smartctl -H;
- возрастание Reallocated_Sector_Ct или Current_Pending_Sector;
- ошибки чтения/записи в логах ОС;
- системные ошибки I/O, которые коррелируют с ухудшением SMART-показателей.
Заключение
smartmontools — надёжный и простой в использовании набор утилит для мониторинга состояния дисков и раннего обнаружения деградации. Его стоит включить на серверах и рабочих станциях, где важна сохранность данных. Настройте smartd для автоматизации, используйте GUI для удобства и интегрируйте метрики в систему мониторинга для полного контроля.
Важно: SMART — не замена бэкапов. Это инструмент раннего оповещения, который работает лучше в паре с политикой резервного копирования и планом замены дисков.
Ссылки
- smartmontools.org
Похожие материалы

Кинематографичные видео на смартфон — 7 советов

Как ускорить Google Chrome — 9 быстрых способов

EA AntiCheat несовместимый драйвер — как исправить

Как использовать Android как модем по USB

Установить Linux на Chromebook: пошаговый гид
