Проверка SATA HDD и SSD дисков с помощью smartctl.

08 Jul 2026, 13:30:37
SMART (Self-Monitoring, Analysis and Reporting Technology) - технология самоконтроля, анализа и отчётности состояния диска, которую поддерживает почти любой современный жёсткий диск, SSD или NVMe-накопитель. В процессе работы контроллер диска собирает некоторую статистику своего состояния (температуру, количество отработанных часов, ошибки, число запусков и многое другое). Эта информация косвенно или прямо может указать на проблемы диска или его подключения, выявить признаки деградации до полного отказа носителя.
В этой статье мы рассмотрим работу с пакетом smartmontools, который используется для отображения параметров SMART, запуска тестов и автоматического контроля состояния накопителей.

Что такое smartctl

smartctl - утилита из пакета smartmontools для ручной диагностики диска и вывода информации о нём. Пакет также содержит демон smartd для автоматического контроля состояния диска, а также уведомления об обнаруженных проблемах.

Установка smartctl

На всех выделенных серверах компании Virterion.com утилита установлена по умолчанию. Установить пакет smartmontools можно из стандартных репозиториев системы. Все команды в примерах выполняются под пользователем root, в ином случае перед основной командой добавляйте команду sudo.

Debian и Ubuntu

apt install smartmontools

AlmaLinux, RHEL

dnf install smartmontools

Arch Linux

pacman -S smartmontools
Проверить версию установленной программы можно командой:
smartctl --versionНа момент написания статьи в репозиториях Ubuntu 24.04 имеется версия smartctl 7.4:
20260708_fyPrcU0B
Однако актуальная версия smartmontools, на момент написания статьи, это 7.5. Для её установки утилиту необходимо собрать вручную.

Сборка smartmontools из исходников

Установим все необходимые зависимости, для Ubuntu и Debian команда выглядит так:
apt update
apt install build-essential git autoconf automake libtool
Скачиваем и распаковываем архив с программой:
wget -q https://downloads.sourceforge.net/project/smartmontools/smartmontools/7.5/smartmontools-7.5.tar.gz && tar xf smartmontools-7.5.tar.gz20260708_QTHY9lik
Собираем smartmontools и устанавливаем пакет с помощью команд:
cd smartmontools-7.5
./configure
make && make install
Сборка займёт непродолжительное время. После успешного завершения можно проверить версию утилиты и убедиться, что собрана актуальная версия:
smartctl --version20260708_T5wJ1cKo

Обновление smartmontools

Если у вас уже установлена старая версия smartmontools, например из репозиториев системы, актуализировать её можно собрав программу вручную (как это сделать описано в прошлой главе).
После сборки новой версии программы достаточно заменить исполняемый файл на новый. Найти его можно с помощью команды:
whereis smartctlНа Ubuntu 24.04 это /usr/sbin/smartctl.
20260708_nELLLd8V
Создадим ссылку на исполняемый файл новой версии программы, заменив старую:
ln -sf /usr/local/sbin/smartctl /usr/sbin/smartctl
  • -s - создать символическую ссылку;
  • -f - удалить файл по пути ссылки, если он существует.
20260708_R4vsYQaD

Определение дисков

С помощью smartctl можно вывести список всех накопителей в системе, с которыми утилита может работать:
smartctl --scanКоманда выводит список найденных устройств и рекомендуемый тип устройства.
20260708_qbwlZQYH

Вывод информации о диске

Просмотреть информацию о накопителе можно с помощью команды:
smartctl -i /dev/sda
  • /dev/sda - имя диска.
20260708_Euop4VcQ
Основные поля:

Device Modelмодель диска
Serial Numberсерийный номер
Firmware Versionверсия прошивки
User Capacityобъём диска
Sector Sizeразмер логического и физического сектора
Rotation Rateскорость вращения шпинделя HDD (в примере SSD)
Form Factorфизический формат накопителя
TRIM Commandподдержка команды TRIM (только для SSD)
Device isналичие информации о модели накопителя в базе данных smartmontools
SATA Version isподдерживаемая и версия стандарта SATA и скорость обмена данными (поддерживаемая и используемая)
SMART support isдве одноимённых строки: первая ("Available - device has SMART capability") говорит о аппаратной поддержке технологии SMART самим накопителем, вторая ("Enabled") - говорит о том, что SMART включен или отключен (Disabled).

Включить SMART

Если при проверке информации о диске вы видите строку "SMART support is: Disabled":
20260708_N1XE47gr
Вам необходимо включить SMART для носителя:
smartctl -s on /dev/sda20260708_kI7y0ezV
Также полезно сразу включить автоматическое тестирование носителя:
smartctl -o on /dev/sda20260708_JNweTLGr
И сохранение значений параметров в энергонезависимую память:
smartctl -S on /dev/sda20260708_svNwP5wS

Полная информация о диске

Чтобы вывести всю информацию о SMART накопителя для его диагностики воспользуйтесь командой:
smartctl -a /dev/sda

Общее состояние диска

Ранее мы рассмотрели атрибуты блока "START OF INFORMATION SECTION", теперь рассмотрим блок "START OF READ SMART DATA SECTION".
Первая строка, "SMART overall-health self-assessment test result", говорит о общем "здоровье" диска.
Её же можно вывести с помощью команды:
smartctl -H /dev/sda20260708_FYuYhYVR
Значение PASSED говорит о том, что контроллер накопителя не обнаружил превышения пороговых значений критических SMART-атрибутов, указывающих на скорый отказ накопителя. Однако это не означает, что диск не имел ошибок и находится в хорошем состоянии.
Значение FAILED говорит о критическом состоянии диска. В этом случае вам необходимо как можно быстрее переносить данные и менять сбойный диск.

General SMART Values

Блок General SMART Values содержит информацию о ходе тестирования, примерном времени проверок, статусе оффлайн тестов.

SMART атрибуты диска

Блок SMART атрибутов содержит в себе таблицу с атрибутами и значениями, которые мы разберём далее. Они частично стандартизированы и могут отличаться в зависимости от производителя, мы рассмотрим самые основные.
20260708_rd5ogFbd
Разберём основные колонки указанной таблицы:
IDидентификатор атрибута
ATTRIBUTE_NAMEимя атрибута
FLAGполе с битовыми флагами, описывающими свойства атрибута
VALUEтекущее нормализованное значение атрибута (как правило от 1 до 253)
WORSTминимальное значение VALUE, когда-либо зафиксированное SMART
THRESHпороговое значение VALUE, при достижении которого общее состояние носителя изменит статус на FAILED
TYPEтип атрибута (Pre-fail - атрибуты определяющие общее состояние диска, Old_age - эксплуатационные показатели)
UPDATEDобновление атрибута (Always - автоматическое, Offline - во время тестов)
WHEN_FAILEDкогда атрибут пересёк порог THRESH ("-" - никогда);
RAW_VALUEисходное значение атрибута
В основном мы смотрим на колонку RAW_VALUE, так как значения могут отличаться в зависимости от типа накопителя или производителя и нормализованное значение самой утилиты не всегда полностью отображает картину.

Разберём SMART-атрибуты:

Reallocated_Sector_Ctколичество секторов (блоков), которые были отмечены неисправными и заменены резервными
Power_On_Hoursколичество часов работы накопителя
Power_Cycle_Countколичество включений
Wear_Leveling_Countстепень "износа" памяти (для Samsung и Intel чем выше значение - тем лучше)
Used_Rsvd_Blk_Cnt_Totколичество использованных резервных блоков
Program_Fail_Cnt_Totalколичество ошибок при записи данных в ячейки памяти
Erase_Fail_Count_Totalколичество ошибок стирания ячеек памяти
Runtime_Bad_Blockколичество сбойных блоков, обнаруженных в процессе повседневной работы
Uncorrectable_Error_Cntколичество неисправимых ошибок (контроллер не смог восстановить данные при чтении или записи с повреждённого участка памяти)
Airflow_Temperature_Celтемпература диска
ECC_Error_Rateколичество ошибок, исправленных алгоритмами коррекции
CRC_Error_Countколичество ошибок интерфейса (ошибок передачи данных между контроллером дисков на плате и самим диском), почти всегда указывает на проблему с кабелем подключения накопителя или разъёмом
POR_Recovery_Countсколько раз диск восстанавливался после аварийного отключения питания
Total_LBAs_Writtenважный показатель жизненного ресурса диска, а именно указывает сколько логических блоков было записано за всё время. Именно из этого показателя можно высчитать TBW, который указывает производитель

Лог ошибок SMART

Если диск в исправном состоянии - вы увидите надпись "No Errors Logged" в разделе лога ошибок. Однако если в нём появились какие-либо записи - это повод к запуску полного теста диска и его последующей замены. Как правило, почти любая ошибка в логе является поводом для замены оборудования, за исключением очень старых ошибок и ошибок связанных с подключением (кабелем) или аварийным отключением питания.
Вывести лог ошибок можно отдельно командой:
smartctl -l error /dev/sda20260708_rCyzWNAj

Тестирование диска

Состояние носителя уже можно диагностировать по показателям перечисленных ранее атрибутов, например по атрибутам Reallocated_Sector_Ct, ECC_Error_Rate, Runtime_Bad_Block, Uncorrectable_Error_Cnt и журнала ошибок. Но окончательным приговором для носителя являются результаты тестов, которые идут следующим блоком.
20260708_ndlTeT0N
Утилита smartmontools имеет два типа тестов:
  • Short - быстрая проверка (~2 минуты), тест проверяет все основные механизмы, кэш, контроллер диска, части областей памяти;
  • Extended (Long) - полная проверка (~3 часов, зависит от диска), проверяет то же самое, что и short, и каждую ячейку памяти.
    Для запуска одного из тестов выполните следующую команду:
smartctl -t short /dev/sda
  • -t - тип теста (short или long);
  • /dev/sda - имя устройства.
20260708_Y6jPVMQh
Для вывода только результатов тестов можно воспользоваться командой:
smartctl -l selftest /dev/sda
  • /dev/sda - тестируемый диск.
20260708_8Ckf2tri
Быстрый тест может использоваться для постоянного контроля состояния накопителей, полный тест выполняют, когда диск вызывает подозрения (ухудшение показателей SMART, снижение производительности). Ошибки в ходе полного теста носителя однозначный показатель необходимости его замены. Для которой вы можете обратиться в нашу службу поддержки круглосуточно.

Заключение

Пакет smartmontools является базой для тестирования дисков и анализа параметров SMART не только для Linux-систем. Он позволяет оценить состояние SSD, HDD и NVMe носителей, выявить признаки начала деградации устройства и предотвратить возможную потерю данных. Периодический запуск быстрого теста и хотя бы ежемесячный запуск полного - хорошая практика для безопасного владения сервером, особенно без использования зеркальных RAID-массивов.
Если вы являетесь клиентом компании Virterion.com, вам не обязательно разбираться в тонкостях работы данной утилиты, вы всегда можете обратиться к нам в поддержку и мы проверим состояние дисков на вашем выделенном сервере совершенно бесплатно.