Гид по технологиям

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

6 min read Инфраструктура Обновлено 16 Oct 2025
SMART и smartmontools — проверка дисков
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.

Результат покажет, доступна ли поддержка SMART и включена ли она. Если поддержка доступна, но выключена — включите:

sudo smartctl -s on /dev/sda

Проверка статуса здоровья:

sudo smartctl -H /dev/sda

Результат проверки здоровья диска.

Если вывод не содержит PASSED, диск либо уже неисправен, либо предсказывает скорый отказ. Скопируйте данные и подготовьте замену.

Просмотр возможностей SMART и оценка времени самотестов:

sudo smartctl -c /dev/sda

Показаны возможности SMART и оценки времени self-test.

Команды для запуска самотестов:

  • Короткий тест (обычно 1–10 минут):
sudo smartctl -t short /dev/sda

Запуск короткого self-test.

  • Длинный (расширенный) тест, более тщательный:
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.

Примерный порядок настройки:

  1. Откройте /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 выполняет дополнительные действия).
  1. Убедитесь, что на системе настроена отправка почты (mailx/ssmtp/postfix/ssmtp для тревог). Без рабочего MTA уведомления по e‑mail не придут.

  2. Включите демон при старте системы и запустите его. На systemd-системах:

sudo systemctl enable --now smartd

На системах с init-скриптом:

sudo /etc/init.d/smartmontools start
  1. Для проверки конфигурации используйте журналы:
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

  1. Не паниковать. Оцените сообщение: какие атрибуты деградируют (Reallocated_Sector_Ct, Current_Pending_Sector, UDMA_CRC_Error_Count и др.).
  2. Немедленно сделайте полный бэкап важных данных.
  3. Ограничьте нагрузку на диск (если возможно): отмонтируйте, переведите сервисы на другой диск/сервер.
  4. Протестируйте диск: запустите smartctl -t long и smartctl -l selftest.
  5. Запланируйте замену: закажите новый диск, проведите RMA если в гарантии.
  6. После замены — восстановите данные, проверьте целостность.

Критерии приёмки

  • Диск не имеет критических ошибок в выводе 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

Краткая методология внедрения в инфраструктуру (микро-план)

  1. Провести аудит: какие диски и контроллеры используются.
  2. Проверить, какие устройства поддерживают SMART напрямую.
  3. Настроить smartd с базовым расписанием и оповещениями на тестовой группе.
  4. Интегрировать оповещения в систему инцидентов (email, Slack, PagerDuty).
  5. Постепенно охватить всю инфраструктуру и ввести периодические проверки.

Безопасность и конфиденциальность

SMART не передаёт содержимое данных, только метрики состояния. Тем не менее оповещения могут содержать пути/имена устройств — следите за тем, чтобы логирование и рассылка соответствовали правилам безопасности и политики конфиденциальности вашей организации.

Глоссарий (одной строкой)

  • Reallocated_Sector_Ct — число переназначенных секторов; рост — плохой признак.
  • Current_Pending_Sector — сектора, ожидающие переадресации; критично.
  • UDMA_CRC_Error_Count — ошибки связи; может указывать на кабель/контроллер.

Заключение

SMART и smartmontools — мощный и бесплатный инструмент для раннего обнаружения проблем с накопителями. Он не заменяет надёжную стратегию резервного копирования, но даёт важное время для планирования замены и безопасной миграции данных. Настройте smartd, интегрируйте оповещения и регламентируйте действия при получении предупреждений.

Важно: не полагайтесь исключительно на SMART. Используйте его как часть комплексной политики доступности и резервирования данных.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Исправить ошибку 0x800b0109 — Some update files aren’t signed
Windows

Исправить ошибку 0x800b0109 — Some update files aren’t signed

Табуляторы в Word: настройка и управление
Microsoft Word

Табуляторы в Word: настройка и управление

Инвертировать цвета в Windows 11 — 5 способов
Windows

Инвертировать цвета в Windows 11 — 5 способов

Ошибка 1460 CSV на Windows Server — как исправить
Windows Server

Ошибка 1460 CSV на Windows Server — как исправить

Как создать time-lapse экрана с ChronoLapse
Видео

Как создать time-lapse экрана с ChronoLapse

ISBLANK в Excel: проверка пустых ячеек
Excel

ISBLANK в Excel: проверка пустых ячеек