SMART и smartmontools — проверка дисков

Что такое SMART
SMART — встроенная в современные накопители технология самоконтроля, коротко: она собирает показатели состояния диска (атрибуты), анализирует их и при признаках деградации может предупредить о вероятном выходе из строя. Это не гарантия, а индикатор: полезное дополнительное время для миграции данных.
Кратко о терминах:
- SMART: технология мониторинга состояния дисков.
- smartctl: утилита для интерактивных проверок и управления SMART.
- smartd: демон, который периодически запрашивает SMART и отправляет оповещения.
TL;DR по командам (копируйте и корректируйте под свой диск)
- Установить (Debian/Ubuntu): sudo apt-get update && sudo apt-get install smartmontools
- Проверить идентификацию диска: sudo smartctl -i /dev/sda
- Включить SMART: sudo smartctl -s on /dev/sda
- Быстрая проверка здоровья: sudo smartctl -H /dev/sda
- Запустить короткий тест: sudo smartctl -t short /dev/sda
- Просмотреть журнал самотестов: sudo smartctl -l selftest /dev/sda
Установка
На Debian/Ubuntu smartmontools доступен в стандартных репозиториях:
sudo apt-get update
sudo apt-get install smartmontools
На Fedora (dnf):
sudo dnf install smartmontools
На старых системах встречается yum:
sudo yum install smartmontools
Установка добавляет две главные программы: smartctl (интерактивная) и smartd (демон для фоновой работы).
smartctl — базовые проверки и самотесты
Важно: smartctl работает с устройством целиком, а не с разделами. Пример устройства — /dev/sda. Замените на свой файл устройства (/dev/nvme0n1, /dev/sdb и т.д.).
Получить информацию о диске:
sudo smartctl -i /dev/sda
Результат покажет, доступна ли поддержка SMART и включена ли она. Если поддержка доступна, но выключена — включите:
sudo smartctl -s on /dev/sda
Проверка статуса здоровья:
sudo smartctl -H /dev/sda
Если вывод не содержит PASSED, диск либо уже неисправен, либо предсказывает скорый отказ. Скопируйте данные и подготовьте замену.
Просмотр возможностей SMART и оценка времени самотестов:
sudo smartctl -c /dev/sda
Команды для запуска самотестов:
- Короткий тест (обычно 1–10 минут):
sudo smartctl -t short /dev/sda
- Длинный (расширенный) тест, более тщательный:
sudo smartctl -t long /dev/sda
Тесты выполняются в фоне, но могут замедлять диск. Проверить результаты (последние 20 тестов):
sudo smartctl -l selftest /dev/sda
Если self-test или health-check провалены — приоритет: резервное копирование, затем замена.
Советы и уточнения
- Параметр -d TYPE: при некоторых контроллерах (RAID-контроллеры, USB-адаптеры, nvme) smartctl может требовать указания типа устройства, например -d sat или -d nvme. Если smartctl корректно определил диск — этот параметр не нужен.
- NVMe: используйте smartctl -x /dev/nvme0n1 для расширенной информации.
- Права: smartctl требует root; используйте sudo.
smartd — автоматизация проверок и оповещений
smartd — демон для регулярной проверки SMART и отправки оповещений (например, по e‑mail). Он читает /etc/smartd.conf.
Примерный порядок настройки:
- Откройте /etc/smartd.conf и закомментируйте строку DEVICESCAN (если вы хотите явно перечислять устройства). Затем добавьте строчки для каждого диска, например:
/dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03) -m root -M exec /usr/share/smartmontools/smartd-runner
Пояснение опций:
- /dev/sda — файл устройства.
- -a — включает набор распространённых опций (включая некоторые базовые проверки).
- -d TYPE — укажите, если smartd не угадывает интерфейс (sat, ata, nvme и т.д.).
- -o on — автоматическое оффлайн-тестирование SMART.
- -S on — autosave SMART-атрибутов.
- -s (S/../.././02|L/../../6/03) — расписание: короткий тест ежедневно в 02:00 и длинный тест каждую субботу в 03:00.
- -m root — отправлять уведомления на root (можно несколько адресов через запятую).
- -M exec /usr/share/smartmontools/smartd-runner — запуск скрипта-обработчика вместо/вместе с письмом (на Debian/Ubuntu smartd-runner выполняет дополнительные действия).
Убедитесь, что на системе настроена отправка почты (mailx/ssmtp/postfix/ssmtp для тревог). Без рабочего MTA уведомления по e‑mail не придут.
Включите демон при старте системы и запустите его. На systemd-системах:
sudo systemctl enable --now smartd
На системах с init-скриптом:
sudo /etc/init.d/smartmontools start
- Для проверки конфигурации используйте журналы:
journalctl -u smartd --since "1 hour ago"
Для теста оповещений можно добавить ключ тестовой доставки в конфигурацию, например -M test, и перезапустить демон. Это должно вызвать условное уведомление.
Платформенные и аппаратные ограничения
Важно знать, когда SMART не поможет:
- Аппаратные RAID-контроллеры могут скрывать SMART-интерфейс за контроллером. В таких случаях нужно использовать утилиты контроллера или подключить диск напрямую.
- USB-корпуса иногда не передают SMART-команды. Подключите диск напрямую SATA/USB с поддержкой SMART или используйте адаптер, который поддерживает SMART passthrough.
- Некоторые SSD используют другие атрибуты, которые интерпретировать сложнее. У SSD и HDD разные критические атрибуты.
- Виртуальные диски/образы и облачные тома не имеют реального SMART.
Альтернативные и дополняющие подходы:
- Использовать родные утилиты производителя (SeaTools, Data Lifeguard и т.д.).
- Подключить мониторинг в систему наблюдения: Prometheus + node_exporter + smartmon_exporter.
- Регулярные файловые бэкапы и контрольная целостность (checksum, fsck, periodic scrubs) как основа надежности.
Практическое руководство — краткий playbook при предупреждении SMART
- Не паниковать. Оцените сообщение: какие атрибуты деградируют (Reallocated_Sector_Ct, Current_Pending_Sector, UDMA_CRC_Error_Count и др.).
- Немедленно сделайте полный бэкап важных данных.
- Ограничьте нагрузку на диск (если возможно): отмонтируйте, переведите сервисы на другой диск/сервер.
- Протестируйте диск: запустите smartctl -t long и smartctl -l selftest.
- Запланируйте замену: закажите новый диск, проведите RMA если в гарантии.
- После замены — восстановите данные, проверьте целостность.
Критерии приёмки
- Диск не имеет критических ошибок в выводе smartctl -H.
- Значения ключевых атрибутов (reallocated, pending) находятся в норме.
- Самотесты (short/long) завершены и не содержат FAIL.
Проверка и устранение типовых проблем
- smartd не запускается: проверьте синтаксис /etc/smartd.conf, логи journalctl, наличие прав на устройство, корректность параметра -d.
- Нет писем об ошибках: убедитесь в корректной настройке MTA (postfix/ssmtp) и в том, что адрес в -m существует.
- SMART не доступен через USB: подключите диск напрямую к SATA или используйте адаптер с поддержкой SMART passthrough.
Рольовые чек-листы
Администратор:
- Настроить smartd и расписания self-tests.
- Настроить оповещения (mail + скрипты runner).
- Мониторить ключевые метрики в панели наблюдения.
Helpdesk / инженер первой линии:
- При получении оповещения: собрать сообщение, уровень критичности и владельца данных.
- Организовать бэкап и уведомить администратора.
Обычный пользователь:
- Немедленно сделать локальный бэкап ценных файлов.
- Не пытаться «чинить» диск программными инструментами без согласования.
Примеры команд и шпаргалка
Просмотр всех SMART атрибутов:
sudo smartctl -A /dev/sda
Подробная диагностика (расширенный вывод):
sudo smartctl -x /dev/sda
Просмотр журнала самотестов:
sudo smartctl -l selftest /dev/sda
Запуск длинного теста и проверка статуса:
sudo smartctl -t long /dev/sda
sleep 10
sudo smartctl -c /dev/sda
Decision tree (быстрое решение) — диаграмма Mermaid
flowchart TD
A[Получено оповещение SMART] --> B{Статус health}
B -->|PASSED| C[Отследить и мониторить]
B -->|FAILED или Предупреждение| D[Сделать бэкап]
D --> E{Критические атрибуты?}
E -->|Да| F[Запланировать замену немедленно]
E -->|Нет| G[Запустить длинный тест и наблюдать 24–72ч]
G -->|Ухудшение| F
G -->|Стабильность| C
Краткая методология внедрения в инфраструктуру (микро-план)
- Провести аудит: какие диски и контроллеры используются.
- Проверить, какие устройства поддерживают SMART напрямую.
- Настроить smartd с базовым расписанием и оповещениями на тестовой группе.
- Интегрировать оповещения в систему инцидентов (email, Slack, PagerDuty).
- Постепенно охватить всю инфраструктуру и ввести периодические проверки.
Безопасность и конфиденциальность
SMART не передаёт содержимое данных, только метрики состояния. Тем не менее оповещения могут содержать пути/имена устройств — следите за тем, чтобы логирование и рассылка соответствовали правилам безопасности и политики конфиденциальности вашей организации.
Глоссарий (одной строкой)
- Reallocated_Sector_Ct — число переназначенных секторов; рост — плохой признак.
- Current_Pending_Sector — сектора, ожидающие переадресации; критично.
- UDMA_CRC_Error_Count — ошибки связи; может указывать на кабель/контроллер.
Заключение
SMART и smartmontools — мощный и бесплатный инструмент для раннего обнаружения проблем с накопителями. Он не заменяет надёжную стратегию резервного копирования, но даёт важное время для планирования замены и безопасной миграции данных. Настройте smartd, интегрируйте оповещения и регламентируйте действия при получении предупреждений.
Важно: не полагайтесь исключительно на SMART. Используйте его как часть комплексной политики доступности и резервирования данных.
Похожие материалы

Как AI переводит видео и помогает выйти на новые рынки

Исправить NET::ERR_CERT_AUTHORITY_INVALID в Windows 10
Учить английский с ИИ: 10 лучших приложений

Субтитры в Final Cut Pro — как добавить и настроить
Установка BIKA LIMS Inkosi на Ubuntu за 15 минут
