HDD(Hard Disk Drive,硬碟機) 是一種使用磁性碟片儲存資料的裝置。
可以把它想成一個會旋轉的磁碟:
磁頭
↓
┌─────────┐
│ ● │
│ ╱ ╲ │
│ ╱ ╲ │
└─────────┘
磁碟片
資料會以磁性狀態儲存在碟片上,讀寫時則由磁頭移動到對應的位置。
HDD 的特色:
使用磁碟片儲存資料
有機械結構
容量通常較大
價格相對便宜
讀寫速度通常比 SSD 慢
SSD(Solid State Drive,固態硬碟) 則是使用 NAND Flash 儲存資料。
和 HDD 最大的不同,就是SSD 沒有 HDD 那種旋轉磁碟片與移動磁頭。
SSD 的特色:
使用 NAND Flash 儲存資料
讀寫速度通常較快
抗震動能力較好
內部有控制器負責管理 Flash
假設 HDD 裡有:
┌─────┬─────┬─────┬─────┐
│ A │ B │ C │ D │
└─────┴─────┴─────┴─────┘
今天把 B 刪掉。
檔案系統會把原本 B 使用的空間標記成可以重新使用。
┌─────┬─────┬─────┬─────┐
│ A │ ??? │ C │ D │
└─────┴─────┴─────┴─────┘
↑
可重新使用
但在新的資料寫入之前:
原本的資料內容可能還存在。
所以如果刪除之後沒有被新的資料覆寫,就有機會透過資料恢復或 File Carving 找回部分資料。
SSD 的情況就比較複雜。
SSD 使用 NAND Flash,而且內部有控制器負責管理資料。
其中一個重要機制就是 TRIM。
當使用者刪除檔案時,作業系統可以透過 TRIM 告訴 SSD:「這些資料已經不需要了。」
SSD 收到 TRIM 後,後續可能進行 Garbage Collection(垃圾回收)。
刪除檔案
↓
TRIM
↓
SSD 知道資料不再需要
↓
Garbage Collection
↓
清理 / 整理 Flash 空間
↓
原本資料可能變得難以恢復
因此 SSD 和 HDD 最大的差別之一就是:
HDD:
刪除
↓
空間可以重新使用
↓
原本資料可能暫時還在
SSD:
刪除
↓
TRIM
↓
SSD 背景管理
↓
原本資料可能被清理
除了 TRIM 之外,SSD 還有一個很重要的東西:
FTL(Flash Translation Layer)
它負責把作業系統看到的邏輯位置,對應到 SSD 實際的 Flash 儲存位置。
作業系統
│
│ Logical Block Address
▼
┌─────────────┐
│ FTL │
└─────────────┘
│
├── Flash Block A
├── Flash Block B
└── Flash Block C
作業系統看到的邏輯位置,不一定等於 NAND Flash 實際儲存的位置。
再加上 SSD 還會進行 Wear Leveling 和 Garbage Collection,讓資料恢復比 HDD 複雜很多。
不一定。
TRIM 比較像是通知 SSD:
「這些資料已經不需要了。」
實際什麼時候清理,還會受到 SSD 控制器、Garbage Collection、裝置使用狀況等因素影響。
假設今天拿到一台疑似刪除重要資料的電腦。
如果是 HDD:
刪除檔案
↓
原本資料可能還存在
↓
製作 Image
↓
分析 Deleted / Unallocated Data
但如果是 SSD:
刪除檔案
↓
TRIM
↓
SSD 背景處理
↓
資料可能被清理
↓
恢復難度提高
所以如果知道裝置是 SSD,而且可能存在重要的刪除資料,就更需要注意不要進行不必要的操作,並盡早進行適當的鑑識取得。
因為 SSD 可能在背景持續進行資料管理。
HDD 刪除後,原本資料可能暫時還留在磁碟上;SSD 則可能受到 TRIM 與其他 Flash 管理機制影響,讓刪除資料更難恢復。