Как проверить износ SSD в Linux

Кратко для тех, кто торопится:

# Для NVMe:
sudo smartctl -A /dev/nvme0n1 | grep "Percentage Used"

# Для SATA:
sudo smartctl -A /dev/sda | grep -E "(SSD_Life_Left|Media_Wearout_Indicator|Wear_Leveling_Count)"

Если вывод показывает Percentage Used: 0% — диск практически новый. 100 % означает, что диск достиг заявленного производителем ресурса записи (TBW — Total Bytes Written). Дальнейшая работа возможна, но риск отказа возрастает (рекомендую не рисковать и заменить диск). Всё, что между — пропорциональная оценка износа.

Краткая шпаргалка по проценту использования диска:


Подробное руководство

1. Установка необходимых инструментов

Для работы со SMART-данными (Self-Monitoring, Analysis and Reporting Technology) установите пакет smartmontools:

sudo apt install smartmontools # Debian/Ubuntu
sudo dnf install smartmontools # Fedora/RHEL
nix-shell -p smartmontools     # NixOS временная установка

Эта программа позволяет получить доступ к механизмам встроенной аппаратурой самодиагностики дисков. Позволяет “заглянуть под капот” и понять, что происходит на уровне самого диска.

2. Определите имя устройства

Узнайте имя SSD:

lsblk
# или
sudo fdisk -l

Для NVMe-дисков имя будет вида nvme0n1, для SATA — вида sda.

3. Чтение SMART-атрибутов

Для SATA SSD:

sudo smartctl -A /dev/sda

У самодиагностики SMART нет стандарта как такого. Разные производители вводят разные атрибуты.

В моём случае в домашнем сервере Proxmox стоит SATA SSD от Kingston (KINGSTON SA400S37240G). Диски этого бренда в большинстве своём предоставляют человеко-читаемый параметр SSD_Life_Left (ID 231).

В моём случае вывод smartctl этого параметра будет такой:

# smartctl -A /dev/sda | grep SSD_Life_Left
231 SSD_Life_Left           0x0000   097   097   000    Old_age   Offline      -       97

В данном случае это можно интерпретировать так: 97% ресурса осталось, а износ соответственно 3%).

Другие популярные атрибуты, по которым можно оценивать износ диска:

Значения атрибутов SMART (например, SSD_Life_Left) нормализованы производителем. Надо учитывать, что 97 не всегда = 97% остатка — всегда сверяйтесь с документацией вашего диска.

Для NVMe SSD:

sudo smartctl -a /dev/nvme0n1 | grep "Percentage Used"

Вывод в моём случае для Samsung SSD 980 PRO 1TB на ноутбуке:

Percentage Used:                    0%

Это прямой индикатор износа: 0 % — новый, 100 % — достигнут ресурс по спецификации.

Диск у меня в ноутбуке стоит менее года, так что вполне ожидаемо, что у него такой низкий износ.

Альтернативно, можно использовать утилиту nvme из пакета nvme-cli, специально разработанную для NVMe-устройств:

sudo nvme smart-log /dev/nvme0 | grep percentage_used

В данном случае мы обращаемся напрямую к NVMe-контроллеру. Результат эквивалентен Percentage Used из вывода программы smartctl.

4. Интерпретация результатов

Важно

Не все SSD одинаково честно сообщают данные. Некоторые бюджетные модели могут скрывать или искажать атрибуты. Всегда сверяйтесь с документацией производителя.

Проверяйте SSD регулярно — особенно если он используется в системах с высокой нагрузкой на запись.

Ещё по теме


Теги: