Диски редко умирают внезапно. Обычно они несколько недель предупреждают о себе в SMART — если туда кто-то смотрит.
Что решает эта инструкция
Научимся читать SMART-атрибуты, отличать значимые от косметических и понимать, когда накопитель пора выводить из эксплуатации.
Установка
sudo apt install -y smartmontools
Шаг 1: список накопителей
lsblk -d -o NAME,SIZE,MODEL,TRAN
sudo smartctl --scan
Колонка TRAN покажет тип подключения: sata, nvme, usb.
Шаг 2: общая сводка
sudo smartctl -H /dev/sda
Ответ PASSED означает, что встроенная оценка диска положительна. Этого недостаточно — диск может отдавать PASSED при явных проблемах в атрибутах.
Шаг 3: полная информация
sudo smartctl -a /dev/sda
Для NVMe:
sudo smartctl -a /dev/nvme0
Значимые атрибуты HDD
Из нескольких десятков атрибутов реально предсказывают отказ немногие:
| ID | Атрибут | Что означает |
|---|---|---|
| 5 | Reallocated_Sector_Ct | Переназначенные секторы. Любое значение больше нуля — тревога, рост — приговор |
| 187 | Reported_Uncorrect | Неисправимые ошибки. Больше нуля — диск теряет данные |
| 188 | Command_Timeout | Таймауты команд. Часто указывает на проблему кабеля или питания |
| 197 | Current_Pending_Sector | Секторы-кандидаты на переназначение. Самый ранний признак деградации |
| 198 | Offline_Uncorrectable | Секторы, которые не читаются вообще |
Смотреть нужно колонку RAW_VALUE, а не VALUE — последняя нормализована производителем и менее информативна.
sudo smartctl -A /dev/sda | awk '$1 ~ /^(5|187|188|197|198)$/'
Предупреждение. Атрибуты 5 и 197 в ненулевом значении означают, что диск уже теряет секторы. Он может проработать ещё месяцы, а может отказать завтра. Планируйте замену и убедитесь, что бэкапы актуальны.
Значимые атрибуты SSD
| Атрибут | Что означает |
|---|---|
| Percentage Used / Wear_Leveling_Count | Износ ячеек в процентах. 100% — исчерпан заявленный ресурс |
| Media_Wearout_Indicator | То же у Intel: 100 — новый, 0 — исчерпан |
| Available Spare | Резервные блоки. Падение ниже порога — скорая смерть |
| Data Units Written / Total_LBAs_Written | Записано всего. Сравнивайте с TBW из спецификации |
| Unsafe Shutdowns | Отключений без штатного завершения |
Для NVMe:
sudo smartctl -A /dev/nvme0 | grep -E "Percentage Used|Available Spare|Data Units Written|Power On Hours"
Перевести Data Units Written в терабайты: значение умножить на 512000 и разделить на 10^12. Одна единица равна 1000 блокам по 512 байт.
Запуск самотестирования
Короткий тест, 1–2 минуты:
sudo smartctl -t short /dev/sda
Полный тест — от часа до суток в зависимости от объёма:
sudo smartctl -t long /dev/sda
Тесты выполняются в фоне, диск остаётся рабочим. Результат:
sudo smartctl -l selftest /dev/sda
Мониторинг
Демон smartd сообщит о проблеме до того, как вы её заметите. Файл /etc/smartd.conf:
DEVICESCAN -a -o on -S on -s (S/../.././02|L/../../6/03) -m root -M exec /usr/share/smartmontools/smartd-runner
Расшифровка расписания: короткий тест ежедневно в 02:00, длинный — по субботам в 03:00.
sudo systemctl enable --now smartd
sudo systemctl status smartd
Windows
Встроенная проверка даёт минимум информации:
Get-PhysicalDisk | Select-Object FriendlyName, MediaType, HealthStatus, OperationalStatus
Get-StorageReliabilityCounter -PhysicalDisk (Get-PhysicalDisk) |
Select-Object DeviceId, Wear, ReadErrorsTotal, Temperature
Для полноценного SMART используйте smartmontools для Windows или CrystalDiskInfo.
Когда менять диск
Немедленно:
- Reallocated_Sector_Ct растёт от замера к замеру
- Current_Pending_Sector больше нуля и не обнуляется
- Available Spare у SSD ниже порогового значения
- SMART overall-health возвращает FAILED
Планово:
- Percentage Used у SSD выше 90%
- Power_On_Hours больше 40 000 для десктопного HDD
- Единичные ненулевые значения атрибутов 5 или 197 без роста
Совет. Снимайте показания раз в неделю и сохраняйте. Абсолютное значение атрибута говорит меньше, чем динамика: пять переназначенных секторов за год — норма старения, пять за неделю — отказ на подходе.
Итог
Для HDD смотрите атрибуты 5, 187, 197, 198. Для SSD — Percentage Used и Available Spare. Общий статус PASSED ничего не гарантирует. Настройте smartd, чтобы не проверять вручную.