Вопрос или проблема
Поскольку SSD подвержены записи усиления, я хочу сбросить SSD до первоначальной производительности. Большинство руководств предназначены для SATA SSD (hdparm --secure-erase
), я хочу знать, как стереть раздел NVMe SSD (возможно, использовать команду nvme
?).
Ещё один вопрос: помогает ли dd if=/dev/zero of=/dev/nvme0n1
? Или помогает ли fio --filename=/dev/nvme1n1 --direct=1 --buffered=0 --rw=trim --bs=4k --size=100G --numjobs=16 --iodepth=32 --group_reporting --name=trim
?
Спасибо!
Чтобы полностью стереть NVMe диск.
Это сотрёт весь диск.
Возможно, вам сначала нужно установить nvme – интерфейс командной строки для NVMe хранилища (nvme-cli). Затем просмотрите команды и перечислите все устройства nvme. Список также покажет ревизию прошивки, и вам следует проверить, что у вас последняя прошивка.
sudo apt install nvme-cli
nvme help
nvme --help
nvme --help format
sudo nvme list
sudo nvme format -s1 <device>
fred@z170-focal-k:/mnt/data$ sudo nvme list
[sudo] пароль для fred:
Node SN Model Namespace Usage Format FW Rev
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1 S4P2NF0M514514L Samsung SSD 970 EVO Plus 500GB 1 164.30 GB / 500.11 GB 512 B + 0 B 2B2QEXM7
Смотрите комментарий ниже к y rootkea, если используете более одного пространства имен.
Используйте -n 0xffffffff, чтобы отформатировать все пространства имен.
см. также
man nvme
Чтобы сбросить производительность до заводской, вы НЕ ДОЛЖНЫ использовать технику “записи нулей” с помощью dd/fio. Существует большая семантическая разница между фразами “данная область должна содержать и поддерживать нули” (техника fio/dd) и “данная область должна быть пустой” (безопасное стирание). Например, Спецификация тестирования производительности твердотельного хранилища (SSS) определяет техники, которые она считает разумными для предварительного кондиционирования.
Как указано в посте OldFred, вам нужно использовать фактическую утилиту безопасного стирания, такую как пакет nvme-cli
.
Причина, по которой это происходит так быстро, заключается в том, что содержимое диска уже прозрачным образом зашифровано. То есть, если вы попытаетесь прочитать флеш-чипы напрямую, вы не найдете никаких данных, которые вы видите на своём диске при обычном доступе к нему. Встроенный контроллер полностью управляет этим процессом прозрачно, храня ключ шифрования в защищённой области внутри контроллера.
Это полезно как с точки зрения безопасности, так и долговечности. Шифрование данных помогает уменьшить влияние повторяющихся записей, что, в свою очередь, помогает снизить износ флеш-ячейки.
Когда вы выполняете безопасное стирание на SSD, никаких данных на самом деле не стирается – вместо этого контроллер генерирует новый ключ шифрования и записывает его в защищённую область, переписывая старый ключ в процессе и навсегда делая все бинарные данные на флеш-ячейках необратимыми.
Установите nvme-cli
пакет1, а затем:
sudo nvme format -s<mode> <device>
-s1
режим выполняет стирание блока, он фактически стирает все NAND блоки. Это быстро, потому что он стирает все блоки сразу.-s2
режим – это шифрование, он изменяет ключ шифрования носителя.
Новые SSD поддерживают команду sanitize
, которая не только стирает блоки LBA, но и всю метадату, страницы журналов, кэш и статус, фактически выполняя “востановление с завода”. Например:
sudo nvme sanitize -a2 /dev/nvme0n1
-a2
соответствует стиранию блока здесь (для справки, -a4
это безопасное стирание).
1 Обратите внимание, что nvme-cli
требует, чтобы NVMe был подключён через шину PCIe. Адаптеры NVMe-to-USB добавляют слой трансляции, заставляя NVMe отображаться как, например, устройство SCSI, и nvme-cli
может не работать.
Ответ или решение
Как безопасно стереть NVMe SSD
С учетом специфики работы SSD, таких как запись с амплификацией, важно правильно выполнить процедуру безопасного стирания (secure erase) для возврата SSD к изначальной производительности. В данном руководстве мы рассмотрим шаги, необходимые для безопасного стирания NVMe SSD с использованием утилиты nvme-cli
, а также ответим на вопросы о командах dd
и fio
.
1. Установка утилиты nvme-cli
Перед началом убедитесь, что у вас установлена утилита nvme-cli
. Она позволяет взаимодействовать с NVMe-устройствами и выполнять безопасное стирание.
sudo apt install nvme-cli
После установки вы можете проверить наличие устройств NVMe, выполнив следующую команду:
sudo nvme list
Эта команда отобразит список всех доступных NVMe-устройств в системе вместе с информацией о их использовании, форматировании и версии прошивки.
2. Выбор режима безопасного стирания
Утилита nvme-cli
предоставляет несколько режимов для безопасного стирания:
- Block Erase (
-s1
): Этот режим выполняет полное стирание всех NAND-блоков. Это быстрый способ, поскольку все блоки очищаются одновременно. - Crypto Erase (
-s2
): Вместо физического стирания, этот режим изменяет ключ шифрования данных на устройстве. Это также эффективно и быстро.
Для выполнения безопасного стирания используйте следующую команду, заменив <device>
на соответствующее устройство (например, /dev/nvme0n1
):
sudo nvme format -s1 <device>
или для шифрования:
sudo nvme format -s2 <device>
3. Использование команды sanitize
Современные SSD могут поддерживать команду sanitize
, которая выполняет полное удаление данных включая метаданные, журналы и статус. Для выполнения команды используйте следующее:
sudo nvme sanitize -a2 /dev/nvme0n1
Здесь -a2
соответствует режиму Block Erase. Важно понимать, что использование команды sanitize
выполняет «фабричную настройку» и удаляет все данные без возможности восстановления.
4. Ответ на комментарии о dd и fio
Использование команды dd
для заполнения устройства нулями:
dd if=/dev/zero of=/dev/nvme0n1
или использования fio
с параметрами trim, не обеспечит безопасное стирание в контексте возвращения к «как с завода». Эти команды могут казаться полезными, но они не выполняют безопасное стирание в том понимании, как это делает nvme-cli
.
Команда dd
фактически записывает нули на диск, но не стирает шифровальный ключ, который контролирует доступ к данным. Команда fio
, использующая режим trim, помогает системе организовать пространство на SSD, но также не удаляет данные надлежащим образом.
Заключение
Настоятельно рекомендуется использовать утилиту nvme-cli
для выполнения безопасного стирания NVMe SSD. Это обеспечит не только удаление данных, но и восстановление первоначальной производительности вашего SSD. Рекомендуется также проверять наличие последней версии прошивки на устройстве для обеспечения максимальной надежности и производительности. Если у вас есть дополнительные вопросы или требуется дальнейшая помощь, не стесняйтесь обращаться к специализированным источникам или технической поддержке.