NVMe SSDのSecure Eraseはnvme-cliコマンドで

 会社のDELL Precision Tower 3620を見ていてBIOSの設定の中にData Wipeという項目があるのを発見しました。名前の通り接続されたドライブのデータを消去するものです。こちらの記事には

Uses industry standard approved methods for data wipe such as Secure Erase for SATA and Sanitize for eMMC. See NIST Special Publication 800-88 Guidelines for Media Sanitization for more details.

とありますので、規定にのっとった復旧不可な状態にできるようです。いままでHDDはDBANで、SSDは昔のフリーのころのPartedMagicを使ってデータ消去をしていました。マシン標準の機能でできるようなるのはいいですね。
 最近のSSDはNVMeのものになってきていまして手放すのは先の話ですが、そういえばNVMe SSDのSecure Eraseって可能なんだろうかと、昔のPartedMagicで試しに実行したところ、このディスクには機能がないのでできないよとのメッセージが。調べてみるとNVMeにはATAのSecure Eraseは実行できず、format NVMコマンドを実行する必要があるとのこと。よくよく考えれば接続の規格から違うので当然ですか。
 でDELLBIOSでのData WipeですがATAのHDDかSSD、mSATAかeMMCのSSDが対応で、NVMeのSSDはやってみたところどうも対応していません。NVMe SSDのSecure Eraseは調べてみるとSSDメーカが配布しているユーティリティか、最新の有料PartedMagicならformat NVMが実行できるそうです。今回のTower 3620にはLITE-ONSSDが搭載されているのですがサイトでそれらしいものは見つけられませんでした。こちらの記事によるとPlextoolというのがあるようですが、これはLITE-ONPLEXTORブランド向けみたいですし。
 LinuxベースのPartedMagicで可能ならLinuxで実行するプログラムがあるんじゃないかと調べてみると、nvme-cliというGPL2ライセンスのプログラムが見つかりました。この中のnvme-formatコマンドがそれみたいです。

# nvme format /dev/nvme0n1

のような感じで実行すればformatされるとのこと。今度、USB起動のLinuxにこのコマンドを仕込んで試してみようと思います。

追記

 DELL Precision Tower 3620のBIOSバージョン2.1.7でBIOSのData WipeがNVMeのSSDにも対応していることを確認しました。実際に実行してみたところちゃんとSecure Eraseされているみたいです。

追記

 nvme-cliを使ったformat NVMですが以下の手順で実行可能なことを確認しました。
 上記DELL Precision Tower 3620のCX2-8B256というSSDですがLinuxでNVMeを認識するにはBIOSSATA OperationでAHCIを有効にします。デフォルトでRAID Onが有効なのですが、これではUSB起動のLinuxで認識できませんでした。
 今回はなるべく新しいのでということでFedora 25のWorkstationのLiveイメージを使用。いつものようにUSBから起動してnvme-cliはインストールされていないもののパッケージが標準で用意されているのでネットにつながっていれば

# dnf install nvme-cli

で、つながってなくてもnvme-cli-0.8-1.fc25.x86_64.rpmファイルだけをコピーしてきて

# rpm -ihv nvme-cli-0.8-1.fc25.x86_64.rpm

と実行すればnvme-cliパッケージがインストールされます。
 そしていよいよ

# nvme format /dev/nvme0n1

# nvme format /dev/nvme0

と実行したのですが、

NVME Admin command error :INVALID_FORMAT (410a)

とのメッセージでformatコマンドが実行されませんでした。nvme listコマンドではちゃんとNVMeのSSDを認識しているのですが。エラーメッセージでネットで検索してみてもよくわかりませんね。一応、現在で最新版のバージョン1.1のソースをダウンロードしてFedora上でコンパイルして実行してみましたが同じエラーでした。
 そういえばSATA接続のSSDでSecure Erase実行時はいったんマシンをスリープするなどしてfrozen状態を解消する必要があるので、NVMeのSSDではどうなんだろうと、

# systemctl -i suspend

と実行してマシンをスリープ。その後、復帰して

# nvme format /dev/nvme0

と実行すると今度はエラーなくformat NVMが実行されました。データを0xffffffffで上書きしたと出ますけど一瞬で完了です。パーティションからデータまで消えたのは確認しましたのでSecure Eraseされたと考えてよさそうです。
 次に実行するのはマシンを手放すときなのでだいぶ先になりますが、そのときは上記BIOSでのData Wipeが利用可能になっているかもしれません。

CentOSアップデート情報

 6.8ですが以下のパッケージがアップデートされています。

  • gstreamer-plugins-bad-free.x86_64 0.10.19-5.el6_8
  • gstreamer-plugins-good.x86_64 0.10.23-4.el6_8
  • thunderbird.x86_64 45.6.0-1.el6.centos
  • vim-X11.x86_64 2:7.4.629-5.el6_8.1
  • vim-common.x86_64 2:7.4.629-5.el6_8.1
  • vim-enhanced.x86_64 2:7.4.629-5.el6_8.1
  • vim-filesystem.x86_64 2:7.4.629-5.el6_8.1
  • vim-minimal.x86_64 2:7.4.629-5.el6_8.1