
概要
Linux OSのUbuntuをUSBメモリから起動して、SanitizeコマンドでNVMe SSDのデータを完全削除します。Sanitizeはターミナル(Linuxのコマンドプロンプト)から行います。
今回Gpartedを使わない理由
筆者はGpartedを好んで使っていましたが、今回は使いません。
NVMe SSDをLinuxターミナルから操作するためには、nvme-cliというパッケージをダウンロードする必要があります。
そのためにWi-Fiへ接続する必要があるのですが、GpartedではWi-Fi接続がうまくできなかったためです。今回は他の手段を探しました。
UbuntuはフルバージョンのLinuxみたいなOSなので、ネットサーフィンやメール程度なら、パソコンとして使えるレベルです。Gpartedから見て完全な上位互換です。
ちなみに、GpartedはLinuxとセットになっていますが、アプリ単体の名称でもあります。つまり、UbuntuならGpartedアプリをダウンロードして使うこともできます。
注意点
完全消去を保証するものではありません
筆者は今のところ問題は出ていませんが、本ページの解説でデータの完全消去を保証するものではありません。
NVMe SSD限定の方法です
2025年現在、主流になっているNVMe SSD限定の方法です。
以下のストレージには使えません。
- SATA SSD
- HDD
- eMMC
作業は自己責任でお願いします
Windowsには安全装置がかかっているので、WindowsからWindows自身を消去することは難しいです。
しかし、今回はUSBメモリからUbuntu(Linux)を起動するので、NVMe SSD内のWindowsも消去することができます。
反面、作業に失敗すると、SSDが使用できない状態になる可能性もゼロではありません。作業する際は自己責任でお願いします。
作業手順
今回の作業環境
かなり古いノートパソコンで作業を行っています。
項目 | 名称 |
作業するパソコン | ASUS Zenbook3 UX390UA |
データを消去する NVMe SSD | Crucial P2 1000TB 型番:CT1000P2SSD8 |
使用するUbuntu のバージョン | Ubuntu 22.04 LTS 日本語Remix |
UbuntuはUEFIブートで起動します。レガシーブート(BIOS互換起動)ができないHP(ヒューレット・パッカード)製パソコンでも起動できると思いますが、試してはいません。
UbuntuのライブUSBを作成する
今回の作業、筆者は「Ubuntu 22.04 LTSの日本語Remix」を使用しました。
「北陸先端科学技術大学院大学」と「KDDI 研究所」はhttpsでアクセスできるので、より安全だと思います。
Ubuntu Desktop 日本語 Remixのダウンロード:
https://www.ubuntulinux.jp/download/ja-remix
ライブUSBの作成には「Rufus4.7」を使用しました。
Rufus:
https://rufus.ie/ja/
メモがてらサラッと書きました。追って、詳しい解説を別ページで書くかもしれません。
確認しておくこと
NVMe SSDはマザーボードに取り付ける
データを消去するNVMe SSDはマザーボードに取り付ける必要があります。
要するに、USB接続で外付けしたNVMe SSDはSanitizeで消去できません。
データ消去後にリカバリーする場合は回復ディスクを作成しておく
そのSSDを使ってノートパソコンを工場出荷状態に戻す場合は、データを消去する前に回復ディスクを作っておきましょう。
UbuntuのライブUSBを起動する
作業環境が古いパソコンなので、以下のやり方で起動します。

最近のHP(ヒューレット・パッカード)製パソコンはレガシーブート(BIOS互換起動)が廃止されていますが、UbuntuはUEFI起動なので問題なく起動できると思います(確認はしてませんが)。
nvme-cilをインストールする
NVMe SSDを操作するためのパッケージnvme-cliをダウンロードするまでの手順です。
Wi-Fiを接続する
nvme-cilをインストールするために、まずはWi-Fiにつなぎます。
画面右上のアイコングループをクリックします。

Wi-Fiメニューから使用しているWi-Fiに接続しましょう。

SSIDを選び、パスワードを入れて接続します。UIは異なりますが、やり方はWindowsと大差ありません。
ターミナルを開く
コマンドで操作するためのターミナル(コマンドライン)を開きます。
アプリ一覧から開く場合は、左下のアプリアイコンをクリックします。

アプリ一覧から「端末」を選びます。英言語だと「Terminal」と表示されていると思います。

ターミナルは以下の方法でも開くことができます。
- デスクトップを右クリックして表示されるメニューから選ぶ。
- ctrl+alt+Tキーを押す。
アプリを更新する
いきなりnvme-cliをインストールをしても、エラーが出て進まないことが多いです。まずはターミナルで以下のコマンドを打って、アプリ全般を更新します。
sudo apt update
Enterキーを押すと、アプリの更新が始まります。更新の状態はターミナルに逐次表示されるので、走っているコマンドが止まるまで待ちましょう。
nvme-cliをインストールする
以下のコマンドを打って、Enterを押します。
sudo apt install nvme-cli
これでnvme-cliと言うパッケージがインストールできます。NVMe SSDのデータ削除を含め、操作するために必要なパッケージ(アプリ)です。
Sanitizeを実行してSSDのデータを完全消去する
ディスクの構成・名称を確認する
まずは、データを消去するSSDの名称を確認します。以下のコマンドを打って、Enterを押します。
sudo nvme list

リストがテーブル状に表示されます。左の列にNVMeストレージ名称が並びます(画面左の赤枠)。複数のストレージが無ければ、ほとんどの場合において以下の名前になります。
/dev/nvme0n1
ターミナルからSSDを操作する際に指定する名前です。以下、SSDを操作するために、上記の名称を使います。
複数のNVMeストレージがある場合は、容量やモデル名で判別しましょう。
そもそも、データを消去しないストレージは、初めから取り外しておいた方が安全です。
それともう1つ、フォーマットサイズも確認しておきましょう(画面右側の赤枠)。
format
512 B
作業の最後に、この値を使用します。
SSDがSanitizeに対応しているか確認する
データを削除するSSDがSanitizeに対応しているかを確認します。以下のコマンドを打って、Enterを押します。
sudo nvme id-ctrl -H /dev/nvme0n1
SSDのステータスがたくさん表示されます。約200行以上あります。

Sanicapという項目を探してください。表示された情報一覧の、おおよそ中央部分にあります。

赤枠部分に「Block Erase Sanitize Operation Supported」と表示されており、ここだけ「0x1」と表示されています。これで「Sanitizeのブロック消去」に対応している(使用できる)ことがわかります。
[1:1] : 0x1 Block Erase Sanitize Operation Supported
ブロック消去に対応していない場合は、今回解説している内容は使えません。
事例はCrucial P2における環境ですが、有名メーカーで標準クラスのNVMe SSDのほとんどは、Sanitizeのブロック消去に対応しているとは思います。
エントリークラスのNVMe SSDや、格安NVMe SSDだと、未対応品もあるかもしれません。
Sanitizeを実行する
以下のコマンドを打って、Enterを押すと、Sanitizeのブロック消去が実行されます。SSDのデータが完全消去されます。
sudo nvme sanitize /dev/nvme0n1 -a 2
-a (aオプション)で2を入力することで、ブロック消去を指定しています。
データ消去が進行しますが、進捗は表示されません。

以下のコマンドを打って、Enterを押してください。Sanitizeの進捗状況が表示されます。
sudo nvme sanitize-log -H /dev/nvme0n1
Sanitize Progressの(SPROG)の値に注目します(赤枠部分)。この値が65535なら、データ消去が完了しています。

実際のところ、1TBのNVMe SSDでもデータ消去までに30秒もかかりませんでした。コマンドを打った頃には、完了していることの方が多いかと思います。
ちょっと補足。SPROGは65535が100%に当たります。SPROGが65535と異なる値の場合、その数値を65535で割った値が進捗率になります。%にするには100を掛けます。
進捗率%=数値/65535×100
データが削除されたかを確認する
以下のコマンドを打って、Enterを押します。SSDの1番初めの区間に保存されている内容を表示することができます。
sudo nvme read /dev/nvme0n1 -s 0 -c 0 -z 512 | hexdump
-z(zオプション)の値は、SSD名称を確認したときのformatの値を使ってください。今回の事例では512です。
SSDのフォーマットによっては4096を使う場合もあると思います。

以下の3行目のように、0の羅列(オールゼロ)が表示されていれば、データの完全削除は完了です。

作業完了
データ消去の作業は完了です。Ubuntuをシャットダウンします。
画面右上のアイコングループをクリックすれば、電源メニューが選べます。

参考:暗号化消去(Cryptographic Erase)について
暗号化消去(Cryptographic Erase)とは
NVMe SSDのデータ消去にはもう1つ、暗号化消去(Cryptographic Erase)という方法があります。
暗号化消去(Cryptographic Erase)は、ストレージを暗号化したあと、その暗号化鍵を消去します。データ自体は残りますが、データを複合化するための鍵(暗号化鍵)が無くなるので、元のデータを復元することができなくなります。
Sanitize | Cryptographic Erase | |
データ自体 | 消す | 消さない |
暗号化鍵 | 消さない | 消す |
消去強度が高いのはどっち?
Perplexity AIに質問したところ、データ自体を消す「Sanitize」の方が消去強度がやや高い、との回答を得ました。
ただ、環境や回答者により、正解は変わる可能性があります。
そもそも、どちらもSecure Erase(セキュア消去)であることに、変わりはありません。使える方を用いればよいと思います。
暗号化消去(Cryptographic Erase)の対応確認
NVMe SSDが暗号化消去(Cryptographic Erase)に対応しているかを確認する必要があります。Ubuntuのターミナルにて以下のコマンドを打ち、Enterを押します(Sanitize対応を調べた時と同じコマンドです)。
sudo nvme id-ctrl -H /dev/nvme0n1
Sanicapの欄のもう少し下に、fnaという項目があります。以下、Crucial P2のfnaステータスです。
fna : 0x1
[3:3] : 0 FormatNVM 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] : 0x1 Format Applies to All Namespace(s)
この[2:2]の部分が「[2:2] : 0x1 Crypto Erase Supported as part of Secure Erase」になっていれば、暗号化消去(Cryptographic Erase)に対応しています。
Crucial P2は0で「Not Supported」になっているため、暗号化消去(Cryptographic Erase)に対応していません。
暗号化消去(Cryptographic Erase)のコマンド
暗号化消去(Cryptographic Erase)に対応している場合は、以下のコマンドで実行できます。
sudo nvme format /dev/nvme0n1 -s 2
-s 2で暗号化消去を指定しています。
/dev/nvme0n1は、実行環境に合わせてストレージ名を指定してください。
筆者のCrucial P2は暗号化消去に未対応だったので、エラーが出て実行不可でした…。
暗号化消去に対応したNVMe ストレージなら実行できると思います。
コメント