bloggerads

2014年11月7日 星期五

ATA: Security Erase flow

ATA 清理硬碟的command有兩種:
  1. Trim command: 06h
  2. Security Erase command: F4h
最安全的方式是對碟機下security erase command, 才可以保證把舊硬碟送人後資料不會被扒出來。

這邊介紹security erase command flow, 往往市面上的軟體都需要熱插拔碟機,但這邊提供的方法不需要,因此可以適用在PCIe AHCI SSD上

步驟如下:

1. 用ATA Set feature command通知碟機將Comreset 轉成Hardware reset (因為開機Bios會對你的碟機下Security freeze lock讓碟機變成state machine:frozen state。如果不這樣做就得先熱插拔碟機才能讓碟機回到state machine:not frozen, 才可以下security erase)

下法就是透過Set feature command (EFh), feature=0x90 and count=0x06,來disable software setting preservation
這樣之後我們下的Comreset才會被轉成 hardware reset, 讓碟機回到not frozen state


2. 接著透過 port reset 或 HBA reset 發出 COMRESET

3. 下security erase command之前要先設定密碼 (也就是提升權限才能下這個command,最後security erase也會一併erase掉這個密碼)

就是以下這三步驟:
  1. SECURITY SET PASSWORD: F1h
  2. SECURITY_ERASE_PREPARE: F3h
  3. SECURITY_ERASE_UNIT: F4h
通常SSD幾秒內就完成碟機的erase(基本上還是要看碟機廠商怎麼做),傳統轉盤的碟機就會比較久甚至有些是天荒地老的久XD.