目次

FreeBSDのcamcontrolでSSDをセキュアイレース(Secure Erase)する

試した環境

手順

今回はUSB接続としたため、secure erase対象のデバイスはda0となっている。ここは適宜読み替えのこと。

デバイスの状態の確認

まずはデバイスがセキュアイレースに対応しているかどうか調べる。

# camcontrol security da0
pass9: <C400-MTFDDAK128MAM 08TH> ACS-2 ATA SATA 3.x device
pass9: 400.000MB/s transfers

Security Option           Value
supported                 yes
enabled                   no
drive locked              no
security config frozen    no
count expired             no
security level            high
enhanced erase supported  yes
erase time                2 min
enhanced erase time       2 min
master password rev       fffe

特に重要なのは、supported, security config frozen, enhanced erase supportedの項目で、意味は以下のとおり。

Secure Eraseの実行

以下のコマンドでセキュアイレースが実行できる。

# camcontrol security da0 -U user -s password -e password

パラメータの意味は以下のとおり。

実際に実行してみた結果が以下のとおり。

# camcontrol security da0 -U user -s password -e password
pass9: <C400-MTFDDAK128MAM 08TH> ACS-2 ATA SATA 3.x device
pass9: 400.000MB/s transfers

You are about to ERASE ALL DATA from the following device:
pass9,da0: <C400-MTFDDAK128MAM 08TH> ACS-2 ATA SATA 3.x device

Are you SURE you want to ERASE ALL DATA? (yes/no) yes
Issuing SECURITY_SET_PASSWORD password='erase', user='user', mode='high'
Issuing SECURITY_ERASE_PREPARE
Issuing SECURITY_ERASE_UNIT password='erase', user='user'
camcontrol: ATA SECURITY_ERASE_UNIT via pass_16 failed

最後にfailedしてるのは、コマンドがタイムアウトしたためらしい。

camcontrolはデバイスが返すerase time/enhanced erase timeの時間を見てタイムアウト時間を決めているそうだが、割と高確率でタイムアウトが発生する。

Enhanced Secure Eraseの実行

以下のコマンドで拡張セキュアイレースが実行できる。

# camcontrol security da0 -U user -s password -h password

パラメータの意味は割愛。セキュアイレースと違うのは-eが-hになっただけ。

# camcontrol security da0 -U user -s erase -h erase
pass9: <C400-MTFDDAK128MAM 08TH> ACS-2 ATA SATA 3.x device
pass9: 400.000MB/s transfers

You are about to ERASE ALL DATA from the following device:
pass9,da0: <C400-MTFDDAK128MAM 08TH> ACS-2 ATA SATA 3.x device

Are you SURE you want to ERASE ALL DATA? (yes/no) yes
Issuing SECURITY_SET_PASSWORD password='erase', user='user', mode='high'
Issuing SECURITY_ERASE_PREPARE
Issuing SECURITY_ERASE_UNIT password='erase', user='user'

Erase Complete

なぜかこちらはタイムアウトすることなく、すぐに終了。対象のデバイスによっても挙動が違うかも?

で、本当に消去できてるの?

本当にSecure Erase出来てるかは、正直なところ良くわからない。

デバイスごとに結構挙動が違うようで、今回のRealSSD C400+CSDRU3B6Gの場合、Secure Eraseコマンド発行後はアクセスランプが点滅し何かしら動いてそうではあるが、一晩経っても点滅しっぱなしだった。一方でEnhanced Secure Eraseの方は特に点滅することもなくすぐ終わるし。

ついでにハマったのが、gpartコマンドの挙動。消去できたかの確認でgpart show da0してたんだけど、なぜか一旦デバイスを外さないと情報が更新されなかった。

とりあえずデバイスの先頭1GiBが0になってるのは確認できたので、一応消去はされてるっぽい。

# hd -n 1073741824 /dev/da0
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
40000000

参考サイト