1と19のリビジョン間の差分 (その間の編集: 18回)
2018-07-23 17:15:29時点のリビジョン1
サイズ: 5943
コメント:
2018-11-19 00:35:24時点のリビジョン19
サイズ: 18073
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
= セキュアErase = = セキュアイレース(Secure Erase) =
行 4: 行 4:
== 想定環境 == == 目的 ==
 * 手持ちのSSD/HDDでセキュアイレース(Secure Erase)してみた。
 * クリアされることの確認(ダンプしてオールゼロになること)および実施に当たっての注意点(実行上の注意)を探る。
 * サニタイズ(Sanitize)は今回の検証範囲外とする(検証した全ての機種で実行不可能であることを確認)。

== 検証環境 ==
行 6: 行 11:
 * [[http://groovy.ne.jp/products/hddset/ud_3000sa.html|UD-3000SA]] USB3・SATA変換装置
 * ここでは、USB・SATA変換器に接続したSSDがUSBドライブ(/dev/da0)として見えるものとする。
 * もちろん直接SATA接続した上でSATAドライブ(/dev/ada0)として見えてもよい。
 * つないだ時のデバイス名に注意して da0 を読み替えてください。

== 目的 ==
 * 手持ちのSSDでセキュアErase(Secure Erase)を試してみる。
 * クリアされることの確認および実施に当たっての注意点を探る。
 * 以下の機器を使用して動作確認した。
   * GROOVY [[http://groovy.ne.jp/products/hddset/ud_3000sa.html|UD-3000SA]] USB3・SATA変換器
   * UGREEN [[https://www.ugreen.com/product/859-ja.html|SATA USB 3.0 変換アダプタ 2.5/3.5インチHDD/SSD 電源アダプタ付き 50cm]]
 * 本検証環境ではUSB・SATA変換器に接続したSSDがUSBドライブ(/dev/da0)として見えるものとする。
 * もちろん直接SATA接続した上でSATAドライブ(/dev/adan)として見えてもよい。
 * デバイス接続時のデバイス名(da1 や ada0 などのケース)に注意して da0 を読み替えること。

=== 動作確認 ===
 * [[http://www.sandisk-jp.com/ssd/extreme-pro/|SanDisk Extreme PRO SSD 240GB]](SDSSDXPS-240G)
 * [[https://ark.intel.com/ja/products/series/86201/Intel-SSD-DC-S3510-Series|Intel SSD DC S3510 240GB]](SSDSC2BB240G601)
 * [[https://www.seagate.com/www-content/product-content/ssd-fam/600-pro-ssd/ja/docs/600-pro-ssd-data-sheet-ds1790-3-1310jp.pdf|Seagate 600 Pro SSD 400GB]](ST400FP0021)
 * HP SSD 60GB(MK0060EAVDR)※ただしセキュアイレース未対応なのを確認
 * [[https://www.wd.com/ja-jp/products/internal-storage/wd-red.html|Western Digital Red 1.0GB]](WDC WD10EFRX)

=== デバイス接続時のカーネルメッセージ(GROOVY) ===
{{{
ugen0.2: <UD-3000SA UD-3000SA> at usbus0
umass0 on uhub0
umass0: <UD-3000SA UD-3000SA, class 0/0, rev 3.00/4.27, addr 2> on usbus0
umass0: SCSI over Bulk-Only; quirks = 0x8100
umass0:2:0: Attached to scbus2
da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
da0: <UD3000SA 0427> Fixed Direct Access SPC-4 SCSI device
da0: Serial Number 20150331008EF
da0: 400.000MB/s transfers
da0: 228936MB (468862128 512 byte sectors)
da0: quirks=0x2<NO_6_BYTE>
}}}

 * umass に「UD-3000SA」の文字列があること。
 * da0 に「UD3000SA」の文字列があること。

※SATA接続の場合、adan に直接SSDの文字列が表示される。下記のように、同一デバイスにおける接続形態によりメッセージが異なる。

{{{
ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
ada0: Serial Number 160845400358
ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 512bytes)
ada0: Command Queueing enabled
ada0: 228936MB (468862128 512 byte sectors)
}}}

=== デバイス接続時のカーネルメッセージ(UGREEN) ===
{{{
ugen0.3: <Ugreen Ugreen Storage Device> at usbus0
umass0 on uhub0
umass0: <Ugreen Ugreen Storage Device, class 0/0, rev 3.00/1.00, addr 13> on usbus0
umass0: SCSI over Bulk-Only; quirks = 0x0100
umass0:2:0: Attached to scbus2
da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
da0: <WDC WD10 EFRX-68PJCN0 0> Fixed Direct Access SPC-4 SCSI device
da0: Serial Number 000004003FD2
da0: 400.000MB/s transfers
da0: 953869MB (1953525168 512 byte sectors)
da0: quirks=0xa<NO_6_BYTE,4K>
}}}

 * umass に「Ugreen Storage Device」の文字列があること。
 * da0 は元のメディアの文字列が表示される。

= とにかくセキュアイレースしよう =
しゃらくせぃ!さっさとコピペで実行できるコマンド教えやがれ、という自分の心の安寧のための章につき詳細は後述。

{{{
camcontrol security da0 | grep -e frozen -e enhanced

camcontrol security da0 -U user -s secure99 -e secure99 -y
camcontrol security da0 -U user -s secure99 -h secure99 -y

camcontrol security da0

camcontrol security da0 -U user -k secure99
camcontrol security da0 -U user -d secure99

}}}

 * frozen かどうか(yes/no)確認する。「yes」ならこれ以上の対応はできない。
 * 拡張セキュアイレースに対応しているかどうか(yes/no)確認する。対応してるなら「-h」オプション。対応してないなら「-e」オプションのコマンドを実行。
 * セキュアイレースが完了したかモニタリング(応答が正常に返ることを確認する)。
 * 完了したらドライブロックを解除(drive locked yes の時、しなくても良い機種もある)
 * 更にセキュリティモードからの脱出(enabled yes の時、しなくても良い機種もある)

= セキュアイレイスの実行のロジック =
行 16: 行 97:
{{{camcontrol security da0 -U user -e パスワード}}} コマンドの実行でバッチリだ!(嘘) {{{camcontrol security da0 -U user -e パスワード}}}」を実行する!(嘘)
行 25: 行 106:
実はこれを実行する前に、以下のコマンドを実行してセキュアEraseできるか確認する。  * 上記コマンドを無条件で実行した場合「security is disabled」であるためセキュアイレイスの実行に失敗する(というメッセージが出る)。
 * 「security is enabled」にするために確認および事前手順を実施する必要がある。
 * まずは以下のコマンドを実行して(ステータス表示)セキュアイレイスできるか確認する。
行 31: 行 114:
たとえば SanDisk Extreme Pro SSD(SDSSDXPS-240G)の場合、以下の結果が得られる。 たとえば !SanDisk ExtremePRO SSD(SDSSDXPS-240G)の場合、以下の結果が得られる。
行 50: 行 133:
上記結果から「enabled no」であることが確認できる。
実はこのままでは、セキュアEraseでは実施できず、以下のコマンドで「enabled yes」に変更する必要がある。
上記結果から「enabled no」「security config frozen no」であることが確認できる。

「enabled yes」「security config frozen no」の時、セキュアイレイスできるので、本ケースの場合、以下のコマンドで「enabled yes」に変更する。

なお「security config frozen yes」の時はリセットする方法が無いのでデバイスをいったん切るしかない(電源オフ→電源オンなど)。
一応デバイスの電源が入る時は「security config frozen no」になってるはずだが、
BIOSやツール等により「security config frozen yes」にしてしまうモノがあるので注意。
その場合、BIOSの設定を変更するか、接続を変える(SATA接続→USB接続など)等で対応する。
行 60: 行 149:
この結果、以下のように変わる。 この結果、ステータス表示結果が以下のように変わる。
行 79: 行 168:
上記状態で再度実行すると、以下のように成功する。 上記状態で再度セキュアイレースを実行すると、以下のように成功する。
行 91: 行 180:
== つまりコマンド実行 ==
-s オプションと -e オプションは同時に指定できるので、セキュアEraseするのに躊躇ないなら、以下のように実行できる。
== つまりコマンド実行するなら ==
-s オプションと -e オプションは同時に指定できるので、まとめて指定してしまえる。
この時のパスワードはもちろん同一である(-s オプションの指定が正である)。
行 110: 行 200:
見てのように「yes」「no」を聞いてくるので、確認不要なら「-y」オプションを合わせて付けてやる。 見てのように、全てのデータを消して(ERASE ALL DATA)いいのか「yes」「no」を聞いてくるので、確認不要(バッチモード)なら「-y」オプションを加えとよい
行 123: 行 213:
「-e」「-s」「-y」のオプション指定の順番に制限は無い。好きな順序で指定してかまわない。

なお「Erase Complete」が表示されず「camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed」
が表示される場合、定期的に「camcontrol security da0」を実行して終了をモニタリングすること。

下記のような表示が続く場合は、内部でセキュアイレース中であると言える。
{{{
# camcontrol security da0
camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed
}}}
どれくらい進んだとか、いつ終るか、といったステータスを取る方法が無いので諦めること。

本例では「erase time 2 min」とあるので、2分後には終ってる可能性がある。

== 拡張セキュアイレースするなら ==
本例のデバイスは「enhanced erase supported yes」であるため、拡張セキュアイレース(Enhanced Secure Erase)を実行することができる。
拡張でないセキュアイレースとの違いは「'''ソフトウェアでアクセスできない不良セクタや代替セクタを含めたセキュアアイレースの実行'''」にある。
実行方法は先に実施した「-e」オプションでの指定を「-h」の指定に変えるだけでよい。

もちろん合わせて「-s」「-y」オプションの使用は可能だ。ここではエッセンシャルな部分だけ説明する。

{{{
# camcontrol security da0 -U user -h パスワード
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers
Issuing SECURITY_ERASE_PREPARE
Issuing SECURITY_ERASE_UNIT password='パスワード', user='user'
camcontrol: ATA SECURITY_ERASE_UNIT via pass_16 failed
}}}

セキュアアイレースの実行と違い、「Erase Complete」ではなくエラー(failed)になっている。
ATAコマンド発行後の応答に時間がかかったためであるが、
以後しばらくアクセスできなくなる(全てエラーになる)。

この事は致命的では無いが安心はできないので、定期的に「camcontrol security da0」を実行して終了をモニタリングすること。
下記のような表示が続く場合は、内部でセキュアイレース中であると言える。
{{{
# camcontrol security da0
camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed
}}}
どれくらい進んだとか、いつ終るか、といったステータスを取る方法が無いので諦めること。

一応本例では「enhanced erase time 18 min」とあるので、18分後には終ってる可能性がある。

なお !SanDisk ExtremePRO SSD の場合、拡張セキュアイレースが完了するとデバイスが切断(デタッチ)される。
一般的な振る舞いかどうかは不明だが、そういう風に振る舞うデバイスもある、ということで。

== 途中で止まってるケース・止めたケース ==
セキュアイレイス中にドライブの電源を落した、必要以上に時間(10倍とか)がかかってる、
という場合、セキュアイレイスが中断している可能性がある。

その場合、下記のようにして「drive locked」を解除(yes → no)する。
{{{
# camcontrol security da0 -k パスワード

}}}

また続いて、「enabled」を解除(yes → no)する。
{{{
# camcontrol security da0 -d パスワード

}}}

これを実行して、セキュアイレイスを強制中断できるかは不明だが、
ドライブの電源を落したあとでは、{{{camcontrol security da0}}}
コマンドを受け付けるため、上記解除方法が実行できるようになる。
行 127: 行 283:
A.結論を言えばてきとー。
A.SanDisk曰く「sandisk123」設定てる。他のベンダーは?「不明」。

 * 仕様がよくわかって
ないけど、設定されてないので「設定してから」「消す」みたいなオペレーションになるんでないかな
 * 最初から設定されてる装置があるかは不明
 * 勝手に設定するソフトウェアがあるのでこの手のツールを使用するときは注意。
 * {{{camcontrol security}}} はこの手のツールではあるが、パスワードを常に要求するので意識すること。
A.結論を言えばてきとー。どれくらいてきとーかと言うと、

A.!SanDisk曰く「!SanDisk SSD Dashboard」では「sandisk123」設定している。

A.一般論としては、
 * パスワードを設定して「セキュリティ機能を有効化」→「セキュアイレース」後は、内部で、セキュアイレースが完了すると「セキュリティ機能の無効化」が自動で行わ
ることがあります(そうでない機種もある)
 * 最初から「セキュリティ機能を有効化」されてるデバイスがあるかは不明。ただし、設定したまま放置されることはありうる
 * あと、勝手に設定するソフトウェアがあるのでこの手のツールを使用するときは注意。
 * {{{camcontrol security}}}」は「この手のツールではあるが、パスワードを常に要求するので意識すること。
行 137: 行 295:
処理に失敗した場合は回復処理が必要なので、その時パスワードが必要。 処理に失敗した場合や手動で解除する必要がある場合では、後でパスワードが必要となるので、覚えておく必要がある。

== Q.セキュアイレース時でもエラーメッセージが表示されました。大丈夫ですか? ==
A.大丈夫だ。問題無い・・・はず。検証した中に Intel SSD DC S3510 でその振る舞いをがあった。
しばらく放っておいたら回復したので、ATAコマンド応答に時間がかかったものと思われる。
もちろん拡張セキュアイレースでもメッセージは表示されたので、ATAコマンドに対する
応答が早い機種と遅い機種があるものと推測される。

■問題無いエラーメッセージ
{{{
camcontrol: ATA SECURITY_ERASE_UNIT via pass_16 failed
}}}

== Q.-U user や -U master とオプションがあるようですが何なのですか? ==
A.この2つがあるみたいなのは確認。それぞれで何が違うか興味無いので未調査。
一般にセキュアイレースは user で実行するようだが、いくつかのデバイスで master で実行できるのもあった。

= 付録 =
検証したデバイスに対して {{{camcontrol identify}}} および {{{camcontrol security}}} を実行した結果についての記録。
 * [[FreeBSD/camcontrol/Intel SSD DC S3510|Intel SSD DC S3510]]
 * [[FreeBSD/camcontrol/SanDisk Extreme PRO SSD|SanDisk Extreme PRO SSD]]
 * [[FreeBSD/camcontrol/Seagate 600 Pro SSD|Seagate 600 Pro SSD]]
 * [[FreeBSD/camcontrol/HP MK0060EAVDR|HP MK0060EAVDR]]
 * [[FreeBSD/camcontrol/WD Red HDD|WD Red HDD]]
行 140: 行 321:
 * [[http://www.t13.org/documents/uploadeddocuments/docs2008/d1699r6a-ata8-acs.pdf|AT Attachment 8 - ATA/ATAPI Command Set]](ドラフト Rev.6a)
行 142: 行 324:
   * [[http://chocs.hatenablog.com/entry/2006/10/10/060104|HDDパスワード]]
 * [[http://www.kirala21.com/veg/manual/gppro/cur/erase/secureerase.html|消去方法について- セキュア消去について]]
 * [[https://qiita.com/mzaki/items/446e081ef5e4e58cc196|FreeBSDでNVMeディスクを低レベルフォーマットする]]
 * [[http://ch.nicovideo.jp/lunaorbit/blomaga/ar1498687|セキュアイレース(Secure Erase)に TxBENCH は絶対に使うな【ATA Password】]]
 * [[https://qiita.com/nvsofts/items/f46c8a1b3541894ad382|SSDをSecure Erase機能で安全に消去する]]
 * [[https://ata.wiki.kernel.org/index.php/ATA_Secure_Erase|ATA Secure Erase]]
 * [[http://decomo.info/wiki/freebsd/freebsd_secure_erase_with_camcontrol|FreeBSDのcamcontrolでSecure Eraseする]]

セキュアイレース(Secure Erase)

目的

  • 手持ちのSSD/HDDでセキュアイレース(Secure Erase)してみた。
  • クリアされることの確認(ダンプしてオールゼロになること)および実施に当たっての注意点(実行上の注意)を探る。
  • サニタイズ(Sanitize)は今回の検証範囲外とする(検証した全ての機種で実行不可能であることを確認)。

検証環境

動作確認

デバイス接続時のカーネルメッセージ(GROOVY)

ugen0.2: <UD-3000SA UD-3000SA> at usbus0
umass0 on uhub0
umass0: <UD-3000SA UD-3000SA, class 0/0, rev 3.00/4.27, addr 2> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x8100
umass0:2:0: Attached to scbus2
da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
da0: <UD3000SA  0427> Fixed Direct Access SPC-4 SCSI device
da0: Serial Number 20150331008EF
da0: 400.000MB/s transfers
da0: 228936MB (468862128 512 byte sectors)
da0: quirks=0x2<NO_6_BYTE>
  • umass に「UD-3000SA」の文字列があること。
  • da0 に「UD3000SA」の文字列があること。

※SATA接続の場合、adan に直接SSDの文字列が表示される。下記のように、同一デバイスにおける接続形態によりメッセージが異なる。

ada0 at ahcich0 bus 0 scbus0 target 0 lun 0
ada0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
ada0: Serial Number 160845400358
ada0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 512bytes)
ada0: Command Queueing enabled
ada0: 228936MB (468862128 512 byte sectors)

デバイス接続時のカーネルメッセージ(UGREEN)

ugen0.3: <Ugreen Ugreen Storage Device> at usbus0
umass0 on uhub0
umass0: <Ugreen Ugreen Storage Device, class 0/0, rev 3.00/1.00, addr 13> on usbus0
umass0:  SCSI over Bulk-Only; quirks = 0x0100
umass0:2:0: Attached to scbus2
da0 at umass-sim0 bus 0 scbus2 target 0 lun 0
da0: <WDC WD10 EFRX-68PJCN0 0> Fixed Direct Access SPC-4 SCSI device
da0: Serial Number 000004003FD2
da0: 400.000MB/s transfers
da0: 953869MB (1953525168 512 byte sectors)
da0: quirks=0xa<NO_6_BYTE,4K>
  • umass に「Ugreen Storage Device」の文字列があること。
  • da0 は元のメディアの文字列が表示される。

とにかくセキュアイレースしよう

しゃらくせぃ!さっさとコピペで実行できるコマンド教えやがれ、という自分の心の安寧のための章につき詳細は後述。

camcontrol security da0 | grep -e frozen -e enhanced

camcontrol security da0 -U user -s secure99 -e secure99 -y
camcontrol security da0 -U user -s secure99 -h secure99 -y

camcontrol security da0

camcontrol security da0 -U user -k secure99
camcontrol security da0 -U user -d secure99
  • frozen かどうか(yes/no)確認する。「yes」ならこれ以上の対応はできない。
  • 拡張セキュアイレースに対応しているかどうか(yes/no)確認する。対応してるなら「-h」オプション。対応してないなら「-e」オプションのコマンドを実行。
  • セキュアイレースが完了したかモニタリング(応答が正常に返ることを確認する)。
  • 完了したらドライブロックを解除(drive locked yes の時、しなくても良い機種もある)
  • 更にセキュリティモードからの脱出(enabled yes の時、しなくても良い機種もある)

セキュアイレイスの実行のロジック

コマンド実行

camcontrol security da0 -U user -e パスワード」を実行するだけ!(嘘)

# camcontrol security da0 -U user -e パスワード
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers
camcontrol: Can't secure erase (security is disabled)
  • 上記コマンドを無条件で実行した場合「security is disabled」であるためセキュアイレイスの実行に失敗する(というメッセージが出る)。
  • 「security is enabled」にするために確認および事前手順を実施する必要がある。
  • まずは以下のコマンドを実行して(ステータス表示)セキュアイレイスできるか確認する。

camcontrol security da0

たとえば SanDisk ExtremePRO SSD(SDSSDXPS-240G)の場合、以下の結果が得られる。

pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 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       18 min
master password rev       fffd

上記結果から「enabled no」「security config frozen no」であることが確認できる。

「enabled yes」「security config frozen no」の時、セキュアイレイスできるので、本ケースの場合、以下のコマンドで「enabled yes」に変更する。

なお「security config frozen yes」の時はリセットする方法が無いのでデバイスをいったん切るしかない(電源オフ→電源オンなど)。 一応デバイスの電源が入る時は「security config frozen no」になってるはずだが、 BIOSやツール等により「security config frozen yes」にしてしまうモノがあるので注意。 その場合、BIOSの設定を変更するか、接続を変える(SATA接続→USB接続など)等で対応する。

# camcontrol security da0 -U user -s パスワード
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers
Issuing SECURITY_SET_PASSWORD password='パスワード', user='user', mode='high'

この結果、ステータス表示結果が以下のように変わる。

pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers

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

上記状態で再度セキュアイレースを実行すると、以下のように成功する。

# camcontrol security da0 -U user -e パスワード
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers
Issuing SECURITY_ERASE_PREPARE
Issuing SECURITY_ERASE_UNIT password='パスワード', user='user'

Erase Complete

つまりコマンド実行するなら

-s オプションと -e オプションは同時に指定できるので、まとめて指定してしまえる。 この時のパスワードはもちろん同一である(-s オプションの指定が正である)。

# camcontrol security da0 -U user -s パスワード -e パスワード
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers

You are about to ERASE ALL DATA from the following device:
pass0,da0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device

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

Erase Complete

見てのように、全てのデータを消して(ERASE ALL DATA)いいのか「yes」「no」を聞いてくるので、確認不要(バッチモード)なら「-y」オプションを加えるとよい。

# camcontrol security da0 -U user -s パスワード -e パスワード -y
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers
Issuing SECURITY_SET_PASSWORD password='パスワード', user='user', mode='high'
Issuing SECURITY_ERASE_PREPARE
Issuing SECURITY_ERASE_UNIT password='パスワード', user='user'

Erase Complete

「-e」「-s」「-y」のオプション指定の順番に制限は無い。好きな順序で指定してかまわない。

なお「Erase Complete」が表示されず「camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed」 が表示される場合、定期的に「camcontrol security da0」を実行して終了をモニタリングすること。

下記のような表示が続く場合は、内部でセキュアイレース中であると言える。

# camcontrol security da0
camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed

どれくらい進んだとか、いつ終るか、といったステータスを取る方法が無いので諦めること。

本例では「erase time 2 min」とあるので、2分後には終ってる可能性がある。

拡張セキュアイレースするなら

本例のデバイスは「enhanced erase supported yes」であるため、拡張セキュアイレース(Enhanced Secure Erase)を実行することができる。 拡張でないセキュアイレースとの違いは「ソフトウェアでアクセスできない不良セクタや代替セクタを含めたセキュアアイレースの実行」にある。 実行方法は先に実施した「-e」オプションでの指定を「-h」の指定に変えるだけでよい。

もちろん合わせて「-s」「-y」オプションの使用は可能だ。ここではエッセンシャルな部分だけ説明する。

# camcontrol security da0 -U user -h パスワード
pass0: <SanDisk SDSSDXPS240G X21200RL> ACS-2 ATA SATA 3.x device
pass0: 400.000MB/s transfers
Issuing SECURITY_ERASE_PREPARE
Issuing SECURITY_ERASE_UNIT password='パスワード', user='user'
camcontrol: ATA SECURITY_ERASE_UNIT via pass_16 failed

セキュアアイレースの実行と違い、「Erase Complete」ではなくエラー(failed)になっている。 ATAコマンド発行後の応答に時間がかかったためであるが、 以後しばらくアクセスできなくなる(全てエラーになる)。

この事は致命的では無いが安心はできないので、定期的に「camcontrol security da0」を実行して終了をモニタリングすること。 下記のような表示が続く場合は、内部でセキュアイレース中であると言える。

# camcontrol security da0
camcontrol: ATA ATAPI_IDENTIFY via pass_16 failed

どれくらい進んだとか、いつ終るか、といったステータスを取る方法が無いので諦めること。

一応本例では「enhanced erase time 18 min」とあるので、18分後には終ってる可能性がある。

なお SanDisk ExtremePRO SSD の場合、拡張セキュアイレースが完了するとデバイスが切断(デタッチ)される。 一般的な振る舞いかどうかは不明だが、そういう風に振る舞うデバイスもある、ということで。

途中で止まってるケース・止めたケース

セキュアイレイス中にドライブの電源を落した、必要以上に時間(10倍とか)がかかってる、 という場合、セキュアイレイスが中断している可能性がある。

その場合、下記のようにして「drive locked」を解除(yes → no)する。

# camcontrol security da0 -k パスワード

また続いて、「enabled」を解除(yes → no)する。

# camcontrol security da0 -d パスワード

これを実行して、セキュアイレイスを強制中断できるかは不明だが、 ドライブの電源を落したあとでは、camcontrol security da0 コマンドを受け付けるため、上記解除方法が実行できるようになる。

よくある質問とその答え

Q.パスワードは何を設定すればいいですか?

A.結論を言えばてきとー。どれくらいてきとーかと言うと、

A.SanDisk曰く「SanDisk SSD Dashboard」では「sandisk123」を設定している。

A.一般論としては、

  • パスワードを設定して「セキュリティ機能を有効化」→「セキュアイレース」後は、内部で、セキュアイレースが完了すると「セキュリティ機能の無効化」が自動で行われることがあります(そうでない機種もある)。
  • 最初から「セキュリティ機能を有効化」されてるデバイスがあるかは不明。ただし、設定したまま放置されることはありうる。
  • あと、勝手に設定するソフトウェアがあるのでこの手のツールを使用するときは注意。
  • camcontrol security」は「この手のツール」ではあるが、パスワードを常に要求するので意識すること。

Q.パスワード毎回設定するなら覚えなくていいのでは?

A.大丈夫だ。問題無い・・・わけでもなく、正常に処理された場合は覚えておかなくてもなんとかなるけど、 処理に失敗した場合や手動で解除する必要がある場合では、後でパスワードが必要となるので、覚えておく必要がある。

Q.セキュアイレース時でもエラーメッセージが表示されました。大丈夫ですか?

A.大丈夫だ。問題無い・・・はず。検証した中に Intel SSD DC S3510 でその振る舞いをがあった。 しばらく放っておいたら回復したので、ATAコマンド応答に時間がかかったものと思われる。 もちろん拡張セキュアイレースでもメッセージは表示されたので、ATAコマンドに対する 応答が早い機種と遅い機種があるものと推測される。

■問題無いエラーメッセージ

camcontrol: ATA SECURITY_ERASE_UNIT via pass_16 failed

Q.-U user や -U master とオプションがあるようですが何なのですか?

A.この2つがあるみたいなのは確認。それぞれで何が違うか興味無いので未調査。 一般にセキュアイレースは user で実行するようだが、いくつかのデバイスで master で実行できるのもあった。

付録

検証したデバイスに対して camcontrol identify および camcontrol security を実行した結果についての記録。

参考文献

FreeBSD/camcontrol security (最終更新日時 2022-01-25 16:36:33 更新者 NorikatsuShigemura)