Введение / Зачем это нужно
smartmontools — это набор утилит для контроля состояния накопителей (жестких дисков HDD и SSD) с использованием технологии SMART (Self-Monitoring, Analysis and Reporting Technology). SMART позволяет заранее выявлять признаки износа, сбоев или потенциальных отказов диска, что критически важно для предотвращения потери данных.
После установки smartmontools вы сможете:
- Просматривать подробную информацию о здоровье диска (температура, количество переназначенных секторов, время работы и т.д.).
- Запускать встроенные самотесты диска.
- Получать предупреждения о приближающемся отказе.
- Интегрировать мониторинг в системы оповещения (например, через Nagios, Zabbix).
Это руководство подходит для всех популярных дистрибутивов Linux.
Требования / Подготовка
Перед началом убедитесь, что:
- У вас есть доступ к терминалу с правами sudo (или root).
- Диск, который вы планируете мониторить, поддерживает технологию SMART (практически все современные диски поддерживают).
- У вас настроен интернет для установки пакетов (если вы работаете на сервере без интернета, потребуется скачать пакеты вручную).
⚠️ Важно: Для NVMe-накопителей используются команды
smartctlс особыми опциями. В этом гайде мы рассмотрим общий случай для SATA/SAS дисков. Для NVMe см. раздел Возможные проблемы.
Шаг 1: Определите имя диска
Сначала нужно узнать, как ваш диск представлен в системе. Откройте терминал и выполните:
lsblk
Вы увидите список всех блочных устройств. Обычно системный диск — /dev/sda, а дополнительные — /dev/sdb, /dev/sdc и т.д. Для NVMe дисков имена выглядят как /dev/nvme0n1.
Запомните или запишите имя диска, который хотите мониторить (например, /dev/sda). Если не уверены, какой диск нужен, проверьте точку монтирования в выводе lsblk или используйте sudo fdisk -l.
Шаг 2: Установите пакет smartmontools
Установка происходит через менеджер пакетов вашего дистрибутива. Выберите команду, соответствующую вашей системе:
Для Debian/Ubuntu и производных (Linux Mint, Pop!_OS и др.)
sudo apt update
sudo apt install smartmontools
Для RHEL/CentOS 7/8 и производных (AlmaLinux, Rocky Linux)
sudo yum install smartmontools
Для Fedora, RHEL 8+, CentOS Stream
sudo dnf install smartmontools
Для Arch Linux и производных (Manjaro, EndeavourOS)
sudo pacman -S smartmontools
Для openSUSE
sudo zypper install smartmontools
После выполнения команды пакетный менеджер установит утилиты smartctl (основная), smartd (демон для фоновой проверки) и документацию.
Шаг 3: Проверьте установку
Убедитесь, что утилита установилась корректно:
smartctl --version
Ожидаемый вывод (версия может отличаться):
smartctl 7.3 2022-02-28 r5145 [x86_64-linux-5.15.0-50-generic] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org
Если команда не найдена, проверьте, установлен ли пакет, и что /usr/sbin (где находится smartctl) есть в вашем PATH.
Шаг 4: Выполните первую проверку диска
Теперь можно запросить информацию о диске. Замените /dev/sdX на имя вашего диска (например, /dev/sda):
sudo smartctl -a /dev/sdX
Ключевые моменты вывода:
- SMART overall-health self-assessment test result:
PASSEDилиFAILED. ЕслиFAILED— диск скоро выйдет из строя. - SMART capabilities: Должно быть
Enabled. ЕслиDisabled, включите командойsudo smartctl -s on /dev/sdX. - Attributes (ATTRIBUTE_NAME): Обращайте внимание на:
Reallocated_Sector_Ct(переназначенные сектора) — значение >0 указывает на износ.Current_Pending_Sector(ожидающие переназначение) — значение >0 — тревожный сигнал.UDMA_CRC_Error_Count(ошибки кабеля) — часто указывает на плохой SATA-кабель.Temperature_Celsius— температура диска.
Быстрая проверка здоровья
Если нужно только общее состояние, используйте:
sudo smartctl -H /dev/sdX
Вывод будет кратким:
SMART Health Status: OK
Шаг 5: (Опционально) Настройте фоновый демон smartd
Для автоматического регулярного мониторинга можно запустить демон smartd. Он будет проверять диски по расписанию и отправлять уведомления (например, в syslog).
- Редактируйте конфигурацию:
sudo nano /etc/smartd.conf - Добавьте строку для вашего диска (пример для
/dev/sda):
Где:DEVICESCAN -a -o on -S on -s (S/../.././02|L/../../6/03)DEVICESCAN— автоматически найти все поддерживающие SMART диски.-a— мониторить все атрибуты.-o on— включить автоматическую сборку данных при старте.-S on— включить автосохранение атрибутов.-s— расписание тестов: короткий каждые 2 часа, длинный каждые 6 месяцев.
- Запустите и включите автозагрузку:
sudo systemctl enable --now smartd - Проверьте статус:
sudo systemctl status smartd
Теперь демон будет работать в фоне. Логи смотрите в /var/log/syslog или journalctl -u smartd.
Проверка результата
После выполнения шагов:
- Выполните
sudo smartctl -a /dev/sdXи убедитесь, что в выводе нет ошибок доступа и видна полная информация. - Если настраивали
smartd, проверьте, что демон активен:sudo systemctl is-active smartd(должно вернутьactive). - Для теста попробуйте запустить короткий тест вручную:
Подождите 1-2 минуты, затем снова выполнитеsudo smartctl -t short /dev/sdXsudo smartctl -a /dev/sdXи найдите в конце вывод разделSelf-test execution statusс результатом.
Если все шаги прошли без ошибок — установка и базовая настройка завершены.
Возможные проблемы
1. Ошибка SMART support is: Unavailable или Unable to detect SMART capability
- Причина: Диск или контроллер не передает SMART-данные (часто для RAID-массивов или некоторых USB- Enclosures).
- Решение:
- Для RAID: используйте утилиты от производителя контроллера (например,
MegaCliдля LSI). - Для USB: попробуйте подключить диск напрямую к SATA.
- Для NVMe: используйте
sudo smartctl -a /dev/nvme0(обратите внимание на опцию-d nvmeдля некоторых версий).
- Для RAID: используйте утилиты от производителя контроллера (например,
2. Ошибка Permission denied или smartctl: Command line error: Invalid argument (-a)
- Причина: Забыли
sudoили указали неверное имя диска. - Решение: Всегда используйте
sudoи проверьте имя диска черезlsblk.
3. smartd не запускается или не находит диски
- Причина: Неправильная конфигурация в
/etc/smartd.conf. - Решение:
- Упростите конфиг:
DEVICESCAN -a(только для теста). - Проверьте, что диски доступны для чтения SMART:
sudo smartctl -a /dev/sdXработает ли? - Посмотрите логи:
sudo journalctl -u smartd -n 50.
- Упростите конфиг:
4. Не хватает прав у пользователя для чтения SMART (без sudo)
- Причина: По умолчанию только root может читать SMART.
- Решение: Добавьте пользователя в группу
disk:
Внимание: Это даст доступ ко всем дискам. Перезайдите в систему или выполнитеsudo usermod -aG disk $USERnewgrp disk.
5. smartctl выдает SMART overall-health self-assessment test result: FAILED!
- Причина: Диск уже имеет критические атрибуты (например, много переназначенных секторов).
- Решение: Немедленно замените диск. Резервное копирование данных — приоритет. SMART-провал означает, что отказ может произойти в любой момент.
6. Для NVMe дисков: smartctl: Permission denied или No such device
- Причина: NVMe требует указания драйвера.
- Решение: Используйте:
Или для автоматического определения:sudo smartctl -a -d nvme /dev/nvme0
(в новых версиях smartmontools драйвер определяется автоматически).sudo smartctl -a /dev/nvme0