Как выполнить безопасное удаление NVMe SSD

Вопрос или проблема

Поскольку 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. Рекомендуется также проверять наличие последней версии прошивки на устройстве для обеспечения максимальной надежности и производительности. Если у вас есть дополнительные вопросы или требуется дальнейшая помощь, не стесняйтесь обращаться к специализированным источникам или технической поддержке.

Оцените материал
Добавить комментарий

Капча загружается...