3.4.16.4 nvme-cli
Установка
Синтаксис
Основные команды
Команда format
Команда sanitize
Запуск процесса безопасного удаления
Информация о диске
Примеры безопасного удаления данных с помощью команды nvme format
Примеры безопасного удаления данных с помощью команды nvme sanitize
Окружение
- Версия ОС: 8
- Конфигурация ОС: Рабочая станция, Сервер графический, Сервер минимальный
- Редакция ОС: Стандартная, Образовательная
- Версия ПО: nvme-cli-2.16-1
NVMe (NVM Express) — интерфейс доступа к твердотельным накопителям, подключенным по шине PCI Express.
nvme-cli — утилита командной строки для управления NVMe-накопителями. Утилита позволяет взаимодействовать с контроллером NVMe напрямую, используя команды, определенные в спецификации NVMe.
Утилита nvme-cli поддерживает операции безопасного удаления данных с NVMe-накопителей.
Установка
Для установки утилиты выполните команду (потребуются права администратора):
sudo dnf install nvme-cli
Дальнейшая работа с утилитой производится с правами администратора, если не указано иное.
Синтаксис
Синтаксис утилиты имеет вид:
nvme <команда> [<устройство>] [<параметры>]
где:
-
<команда>— команда управления работой устройства; -
<устройство>— путь к NVMe-устройству (например, /dev/nvme0n1); -
<параметры>— параметры конкретной команды.
Основные команды
Для безопасного удаления данных могут быть использованы следующие команды:
-
format— форматирует накопитель, сбрасывая все данные и возвращая его в исходное состояние; -
sanitize— выполняет безопасное удаление данных с гарантией невозможности восстановления. Поддерживает несколько режимов:-
Block Erase — быстрая очистка (аналог ATA Secure Erase);
-
Crypto Erase — очистка ключей шифрования (если накопитель поддерживает аппаратное шифрование);
-
Overwrite — многократная перезапись (редко используется для NVMe).
-
Команда format
Команда nvme format запускает процесс форматирования указанного пространства имен (namespace) на NVMe-накопителе. Форматирование сбрасывает все данные в пространстве имен и настраивает его параметры (например, размер логического блока).
Синтаксис команды имеет вид:
nvme format <устройство> [<параметры>]
где:
-
<устройство>— устройство NVMe, которое необходимо отформатировать. Может быть указано как контроллер (/dev/nvme0) или конкретное пространство имен (/dev/nvme0n1); -
<параметры>— параметры команды.
К параметрам команды относятся:
-
-n <ID_пространства_имен>,--namespace-id=<ID_пространства_имен>— идентификатор пространства имен для форматирования. Если не указан, используется пространство имен, связанное с блочным устройством. Для форматирования всех пространств имен используется0xffffffff; -
-l <формат_логического_блока>,--lbaf=<формат_логического_блока>— формат логического блока (LBA Format). Указывает размер и формат секторов. По умолчанию используется текущий формат; -
-b <размер_блока>,--block-size=<размер_блока>— задать размер логического блока (в байтах) для форматируемого пространства имен (namespace). Размер блока определяет, как данные будут разбиваться на части при записи и чтении. Изменение размера блока может потребовать пересоздания файловой системы на устройстве; -
-s <значение>,--ses=<значение>— тип форматирования. Может принимать следующие значения:-
0 — обычное форматирование,
-
1 — безопасное удаление (Secure Erase),
-
2 — удаление с криптографической очисткой (Crypto Erase).
-
-
-i <значение>,--pi=<значение>— настройка информации о защите (Protection Information, PI).Protection Information (PI) — механизм защиты данных от повреждений и ошибок, который используется в некоторых системах хранения, включая NVMe-накопители. Механизм добавляет дополнительные метаданные к каждому блоку данных, чтобы обеспечить их целостность и защиту. Может принимать следующие значения:
-
0 — отключить,
-
1 — информация о защите включена, тип 1,
-
2 — информация о защите включена, тип 2,
-
3 — информация о защите включена, тип 3.
-
-
-p <значение>,--pil=<значение>— настройка расположения информации о защите. Если параметр-i <значение>включен, может принимать следующие значения:-
0 — информация о защите передается в виде последних байт метаданных (по умолчанию);
-
1 — информация о защите передается в виде первых байт метаданных.
-
-
-m <значение>,--ms=<значение>— настройка метаданных:-
0 — метаданные передаются как часть отдельного буфера (по умолчанию);
-
1 — метаданные передаются как часть расширенного хранилища данных.
-
-
--force— принудительное выполнение команды без дополнительных подтверждений; -
-h,--help— показать справку по команде.
Команда sanitize
Команда nvme sanitize предназначена для полного очищения NVMe-накопителей, поддерживающих функцию Sanitize, от конфиденциальной информации без возможности ее последующего восстановления.
Синтаксис команды имеет вид:
nvme sanitize <устройство> [<параметры>]
где:
-
<устройство>— устройство NVMe, которое необходимо очистить. Может быть указано как контроллер (/dev/nvme0) или конкретное пространство имен (/dev/nvme0n1); -
<параметры>— параметры команды.
К основным параметрам команды относятся:
-
-d,--no-dealloc— не освобождать логические блоки после успешного завершения операции очистки. По умолчанию логические блоки освобождаются; -
-i,--oipbp— инвертировать шаблон, используемый для перезаписи данных, между проходами (если в первом проходе использовался шаблон, например,0x00000000, то во втором проходе будет использоваться0xFFFFFFFF, в третьем снова0x00000000и т. д.); -
-n <число_циклов_перезаписи>,--owpass=<число_циклов_перезаписи>— определяет, сколько раз данные будут перезаписаны на накопителе в процессе выполнения операции Overwrite. Например, если указать-n 3, данные будут перезаписаны три раза. Значение0означает 16 проходов. По умолчанию (если не указано) количество проходов зависит от реализации контроллера NVMe; -
-u,--ause— выполнить операцию очистки в режиме unrestricted completion mode. В этом режиме контроллер завершит операцию очистки независимо от ее статуса (успешно или с ошибками) и вернет управление системе; -
-a <действие>,--sanact=<действие>— определяет тип операции очистки, которую необходимо выполнить на NVMe-накопителе. Может принимать следующие значения:-
0x01 (exit-failure) — вывод накопителя из аварийного режима, очистка данных при этом не выполняется;
-
0x02 (start-block-erase) — запуск процесса блочной очистки. Контроллер внутренне помечает все блоки как пустые, не выполняя физическую перезапись. Является быстрым и безопасным способом очистки;
-
0x03 (start-overwrite) — запуск процесса перезаписи данных. Данные физически перезаписываются несколько раз, что гарантирует невозможность их восстановления;
-
0x04 (start-crypto-erase) — запуск процесса криптографической очистки. Если накопитель поддерживает аппаратное шифрование (Self-Encrypting Drive, SED), все данные становятся недоступными после сброса ключей;
-
0x05 (exit-media-verification) — вывод накопителя из режима проверки носителя, очистка данных при этом не выполняется.
-
-
-p <шаблон_перезаписи>,--ovrpat=<шаблон_перезаписи>— задать 32-битный шаблон перезаписи при выполнении операции Overwrite; -
-e,--emvs— после успешного завершения операции очистки перевести контроллер NVMe в состояние Media Verification. Состояние Media Verification может использоваться для дополнительной диагностики и проверки целостности носителя после выполнения операции очистки.
Запуск процесса безопасного удаления
Команда nvme sanitize является более надежным способом очистки данных с NVMe-накопителя. Команда nvme format также подходит для очистки данных, однако рекомендуется для повседневного использования и тестирования.
Информация о диске
Перед запуском процесса очистки необходимо убедиться, что диск поддерживает функции безопасного удаления данных. Для этого выполните команду:
sudo nvme id-ctrl /dev/nvme0 -H | grep "Format \|Crypto Erase\|Sanitize"
где /dev/nvme0 — это накопитель или пространство имен, данные с которого необходимо удалить.
В выводе обратите внимание на следующие строки:
... [1:1] : 0x1 Format NVM Supported [29:29] : 0 No-Deallocate After Sanitize bit in Sanitize command Supported [2:2] : 0 Overwrite Sanitize Operation Not Supported [1:1] : 0x1 Block Erase Sanitize Operation Supported [0:0] : 0 Crypto Erase Sanitize Operation Not Supported [3:3] : 0 Format NVM Broadcast NSID (FFFFFFFFh) Supported [2:2] : 0 Crypto Erase Not Supported as part of Secure Erase [1:1] : 0 Crypto Erase Applies to Single Namespace(s) [0:0] : 0 Format Applies to Single Namespace(s)
Примеры безопасного удаления данных с помощью команды nvme format
Выполнить обычное форматирование указанного пространства имен (namespace) на NVMe-накопителе:
sudo nvme format /dev/nvme0n1
Выполнить безопасное форматирование (Secure Erase) пространства имен. Данные будут удалены без возможности восстановления:
sudo nvme format /dev/nvme0n1 --ses=1
Форматировать пространство имен с изменением размера логического блока на 512 байт:
sudo nvme format /dev/nvme0n1 -b 512
Примеры безопасного удаления данных с помощью команды nvme sanitize
Выполнить быструю очистку данных (Block Erase) на всем NVMe-накопителе:
sudo nvme sanitize /dev/nvme0 -a start-block-erase
Выполнить криптографическую очистку данных (Crypto Erase) на всем NVMe-накопителе (функция должна поддерживаться накопителем — Crypto Erase Sanitize Operation Supported):
sudo nvme sanitize /dev/nvme0 -a start-crypto-erase
Выполнить перезапись данных (Overwrite) с 5 проходами, инвертируя шаблон между проходами (функция должна поддерживаться накопителем — Overwrite Sanitize Operation Supported):
sudo nvme sanitize /dev/nvme0 -a start-overwrite -n 5 -i
Выполнить перезапись данных с 3 проходами, используя шаблон 0xDEADBEEF (функция должна поддерживаться накопителем — Overwrite Sanitize Operation Supported):
sudo nvme sanitize /dev/nvme0 -a start-overwrite -n 3 -p 0xDEADBEEF
Для отслеживания процесса очистки выполните:
sudo nvme sanitize-log /dev/nvme0
Пример вывода для накопителя в процессе выполнения криптографической очистки (Crypto Erase):
Sanitize Progress (SPROG) : 65535 Sanitize Status (SSTAT) : 0x1 Sanitize Command Dword 10 Information (SCDW10) : 0x2 Estimated Time For Overwrite : 4294967295 (No time period reported) Estimated Time For Block Erase : 4294967295 (No time period reported) Estimated Time For Crypto Erase : 4294967295 (No time period reported) Estimated Time For Overwrite (No-Deallocate) : 0 Estimated Time For Block Erase (No-Deallocate) : 0 Estimated Time For Crypto Erase (No-Deallocate): 0 Estimated Time For Post-Verification Deallocation: 0 Sanitize State Information (SSI) : 0
После успешного завершения команды вывод будет иметь примерно следующий вид:
Sanitize Progress (SPROG) : 50302 Sanitize Status (SSTAT) : 0x2 Sanitize Command Dword 10 Information (SCDW10) : 0x2 Estimated Time For Overwrite : 4294967295 (No time period reported) Estimated Time For Block Erase : 4294967295 (No time period reported) Estimated Time For Crypto Erase : 4294967295 (No time period reported) Estimated Time For Overwrite (No-Deallocate) : 0 Estimated Time For Block Erase (No-Deallocate) : 0 Estimated Time For Crypto Erase (No-Deallocate): 0 Estimated Time For Post-Verification Deallocation: 0 Sanitize State Information (SSI) : 0
Дата последнего изменения: 29.04.2026
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.