Введение / Зачем это нужно
Проверка здоровья SSD-накопителя — критически важная процедура для предотвращения внезапной потери данных. В отличие от HDD, SSD не издают характерных звуков при сбое, поэтому единственный способ оценить их состояние — анализ встроенной технологии SMART (Self-Monitoring, Analysis and Reporting Technology).
В этом гайде вы научитесь:
- Устанавливать и использовать утилиту
smartctlдля диагностики SSD. - Читать и интерпретировать ключевые атрибуты SMART, специфичные для SSD.
- Определять оставшийся ресурс накопителя (TBW — Total Bytes Written).
- Выявлять ранние признаки износа и предсказывать отказ диска.
Процедура займет 10-15 минут и не требует специальных знаний, но потребует прав суперпользователя (sudo).
Требования / Подготовка
Перед началом убедитесь, что:
- У вас есть доступ к терминалу Linux с правами
sudo. - Установлен пакет
smartmontools(инструкция ниже). - Вы знаете имя устройства SSD, которое хотите проверить (например,
/dev/nvme0n1или/dev/sda).
💡 Совет: Если у вас несколько дисков, определите, какой из них SSD, по наличию в выводе
lsblkсловnvme(для NVMe SSD) или по размеру/модели. Для SATA SSD имя обычно/dev/sdX.
Шаг 1: Установка smartmontools
Утилита smartctl входит в пакет smartmontools. Установите его:
Для Debian/Ubuntu и производных:
sudo apt update
sudo apt install smartmontools
Для RHEL/CentOS/Fedora:
sudo yum install smartmontools # CentOS 7
sudo dnf install smartmontools # CentOS 8+, Fedora
Для Arch Linux:
sudo pacman -S smartmontools
Проверьте установку:
smartctl --version
Шаг 2: Определение устройства SSD
Выполните команду, чтобы увидеть все блочные устройства:
lsblk
Пример вывода:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238,5G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 128G 0 part /
└─sda3 8:3 0 110G 0 part /home
nvme0n1 259:0 0 476,9G 0 disk
├─nvme0n1p1 259:1 0 512M 0 part /boot
└─nvme0n1p2 259:2 0 476,4G 0 part /
Здесь nvme0n1 — это NVMe SSD, а sda — возможно, SATA SSD или HDD. Для проверки здоровья SSD используйте соответствующее имя устройства (например, /dev/nvme0n1).
Шаг 3: Просмотр общей информации о здоровье
Выполните быструю проверку общего состояния:
sudo smartctl -H /dev/ваше_устройство
Пример вывода для здорового диска:
smartctl 7.3 2022-02-28 r5338 [x86_64-linux-5.15.0-67-generic] (local build)
Copyright (C) 2002-22, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Если видите FAILED — создайте резервную копию данных немедленно и планируйте замену диска.
Шаг 4: Анализ полного SMART-дампa
Для детального анализа выполните:
sudo smartctl -a /dev/ваше_устройство
Это выведет все SMART-атрибуты. Для SSD重点关注 следующие:
Ключевые атрибуты для SSD (SATA):
- ID 5:
Reallocated_Sector_Ct— количество переназначенных секторов. Ненулевые значения — признак износа. - ID 9:
Power_On_Hours— время работы в часах. - ID 12:
Power_Cycle_Count— количество циклов включения. - ID 173:
Media_Wearout_Indicator(илиWear_Leveling_Count) — процент износа NAND. Значение 100 = новый, 0 = предел. Порог срабатывания обычно 10-20%. - ID 177:
Wear_Leveling_Count(альтернатива 173) — аналогичный показатель износа. - ID 179:
Used_Rsvd_Blk_Cnt_Tot(Samsung) — количество использованных резервных блоков. - ID 181:
Program_Fail_Cnt_Total— сбои программирования ячеек. - ID 182:
Erase_Fail_Count_Total— сбои стирания ячеек. - ID 183:
Runtime_Bad_Block— плохие блоки, обнаруженные во время работы. - ID 187:
Uncorrectable_Error_Cnt— некорректируемые ошибки. - ID 188:
Command_Timeout— таймауты команд. - ID 190:
Airflow_Temperature_Cel— температура (для некоторых SSD не актуально). - ID 194:
Temperature_Celsius— температура датчика. - ID 195:
Hardware_ECC_Recovered— исправленные ошибки ECC. - ID 196:
Reallocated_Event_Count— события переназначения. - ID 197:
Current_Pending_Sector— сектора, ожидающие переназначения (критично!). - ID 198:
Offline_Uncorrectable— некорректируемые сектора при офлайн-тесте. - ID 199:
UDMA_CRC_Error_Count— ошибки кабеля (для SATA).
Для NVMe SSD (используйте -a с -d nvme или просто smartctl -a):
- SMART/Health Information:
Critical Warning,Temperature,Available Spare,Available Spare Threshold. Available Spare(свободный резерв) — процент резервных блоков. НижеThreshold— диск близок к износу.Data Units Written(илиTotal Bytes WrittenTBW) — общее количество записанных данных.Media and Data Integrity Errors— ошибки целостности данных.Number of Critical Warning— количество критических предупреждений.
Как читать значения:
Для каждого атрибута смотрите три колонки:
VALUE— текущее нормализованное значение (обычно 100 = идеально, уменьшается при износе).THRESH— пороговое значение. ЕслиVALUE≤THRESH— атрибут в критическом состоянии.WORST— худшее значение за время работы.
Пример проблемного атрибута:
ID 173 Used_Rsvd_Blk_Cnt_Tot 0x0032 100 100 0 - 0
Здесь VALUE=100, THRESH=0 (нет порога) — всё хорошо.
Но если:
ID 5 Reallocated_Sector_Ct 0x0033 090 090 000 - 10
VALUE=90, THRESH=10 — пока в норне, но следите за динамикой.
⚠️ Важно: Некоторые атрибуты (особенно
Media_Wearout_Indicator) могут увеличиваться со временем (например, с 100 до 99), что нормально. Критично — когдаVALUEопускается нижеTHRESH.
Шаг 5: Запуск расширенного теста (опционально)
Для глубокой проверки запустите длительный тест (может занять 1-10 часов в зависимости от диска):
sudo smartctl -t long /dev/ваше_устройство
После завершения (посмотрите прогресс через sudo smartctl -c /dev/устройство) снова выполните sudo smartctl -a /dev/устройство и проверьте результаты теста в секции SMART Self-test log.
::in-article-ad
::
Проверка результата
Успешный результат:
- В выводе
smartctl -H—PASSED. - Нет атрибутов, где
VALUE≤THRESH. - Для NVMe:
Available Spare>Available Spare Threshold. Media Wearout Indicator(или аналоги) > 20 (чем выше, тем лучше).
Критический результат:
SMART overall-health self-assessment test result: FAILED.- Любой атрибут с
VALUE≤THRESH(особенноReallocated_Sector_Ct,Current_Pending_Sector,Offline_Uncorrectable). - Для NVMe:
Available Spare≤Available Spare Threshold. - Резкое падение
Media Wearout Indicator(например, с 90 до 50 за месяц).
Действия при критическом результате:
- Немедленно создайте полный бэкап данных на другой носитель.
- Замените SSD. Не продолжайте использовать диск с
FAILED— отказ может произойти в любой момент.
Возможные проблемы
Проблема 1: SMART command failed: scsi error unsolicited sense data
Причина: Диск занят (например, смонтирован и активно используется) или не поддерживает SMART в текущем режиме.
Решение: Убедитесь, что disc не используется, или попробуйте добавить флаг -d ata для SATA: sudo smartctl -a -d ata /dev/device.
Проблема 2: Unable to detect device type
Причина: Неправильное имя устройства или драйвер не поддерживает SMART.
Решение: Проверьте имя устройства через lsblk. Для NVMe SSD иногда требуется явно указать тип: sudo smartctl -a -d nvme /dev/nvme0.
Проблема 3: SMART support is: Unavailable
Причина: Диск не поддерживает SMART (редко для SSD) или SMART отключен в BIOS/UEFI.
Решение: Проверьте настройки BIOS/UEFI, включите опции SATA Mode (AHCI) и SMART. Для некоторых виртуальных машин SMART недоступен.
Проблема 4: Read SMART Data Failed: Input/output error
Причина: Аппаратная ошибка диска или кабеля (для SATA). Решение: Проверьте соединение кабеля SATA (если применимо), попробуйте другой порт. Если ошибка повторяется — диск неисправен.
Проблема 5: Unknown USB bridge или ATA device is not ready
Причина: SSD подключен через USB-адаптер, который не передает SMART-команды. Решение: Подключите SSD напрямую к материнской плате (SATA/NVMe). Через USB многие адаптеры не поддерживают SMART.
Проблема 6: Нет атрибута Media Wearout Indicator
Причина: Утилита smartctl не распознала его или производитель использует другой ID.
Решение: Ищите атрибуты с названиями Wear_Leveling_Count, Total_LBAs_Written, Data_Units_Written или Percentage_Used. Используйте sudo smartctl -a /dev/device | grep -i wear для поиска.
Проблема 7: Низкая температура (например, 20°C) — это норма?
Причина: Некоторые SSD не имеют точного датчика температуры или показывают усредненное значение. Решение: Температура SSD обычно не критична (работает до 70-80°C). Сосредоточьтесь на атрибутах износа и ошибок.
Проблема 8: Как оценить TBW (Total Bytes Written) из SMART?
Решение: Найдите атрибут Data Units Written (NVMe) или Total_LBAs_Written (SATA). Умножьте значение на размер сектора (обычно 512 байт или 1000 байт). Пример для NVMe:
Data Units Written: 123,456,789 [63.1 TB]
Здесь уже указано в TB. Для SATA:
Total_LBAs_Written: 1234567890
Тогда TBW = 1234567890 * 512 / 1000^4 ≈ 0.56 TB (если сектор 512 байт).
Проблема 9: smartctl не видит диск в списке
Решение: Убедитесь, что диск правильно подключен и определяется системой (lsblk). Для RAID-массивов или оборудования, скрывающего диски (например, некоторые корпоративные SSD через HW RAID), SMART может быть недоступен. Используйте утилиты производителя RAID-контроллера.
Проблема 10: Как мониторить SSD автоматически?
Решение: Настройте регулярный запуск smartctl -H через cron (например, раз в день) и отправку отчетов на email при FAILED. Пример строки crontab:
0 2 * * * /usr/sbin/smartctl -H /dev/nvme0 >> /var/log/smart.log 2>&1
Или используйте демоны вроде smartd из smartmontools.
Заключение
Регулярная проверка здоровья SSD через SMART — это простой и эффективный способ избежать внезапной потери данных. Процесс занимает минуты, но дает ценную информацию об оставшемся ресурсе накопителя. Начните с установки smartmontools и запустите smartctl -a для своих дисков. Запомните: при любых признаках FAILED или переназначенных секторов — немедленно создавайте бэкап и планируйте замену диска.
Важно: SMART — не гарантия, но лучший доступный инструмент. Даже диск с PASSED может внезапно отказать, поэтому всегда имейте актуальную резервную копию важных данных.