NAS 硬盘退役与安全擦除:不同介质要用不同方法
为什么”格式化”不算删除
先说清楚一个基本事实:无论快速格式化还是完整格式化,都不等于数据销毁。
快速格式化只是重写了文件系统的元数据(分区表、根目录结构),数据区的内容原封不动。用任何一款数据恢复软件扫一遍,大部分文件都能完整读出来——这就是为什么二手硬盘经常能恢复出前主人的照片和文档。
完整格式化(不勾选”快速”)会写入一遍,对机械盘来说确实覆盖了大部分区域,但它不会覆盖所有扇区(重映射扇区、保留区域等),也不是一个可验证的销毁流程。
所以,只要盘要离开你的控制,就必须走正式的擦除流程。
五种方法对比
| 方法 | 适用介质 | 耗时 | 可靠程度 | 备注 |
|---|---|---|---|---|
| 快速格式化 | — | 秒 | ❌ 完全无效 | 只改元数据 |
| 全盘覆写 | HDD | 数小时 | ✅ 可靠 | SSD 不适用 |
| ATA Secure Erase | HDD / SSD | 数十分钟 | ✅ 可靠 | 推荐方案 |
| 加密擦除(SED) | 自加密盘 | 秒级 | ✅ 可靠 | 最快的正规方式 |
| 物理销毁 | 全部 | 分钟 | ✅ 最彻底 | 盘也废了 |
方法一:全盘覆写(机械盘)
shred:
# 用随机数据覆写一遍(-n 1),显示进度
sudo shred -v -n 1 /dev/sdb
dd:
# 全盘写零
sudo dd if=/dev/zero of=/dev/sdb bs=1M status=progress
两者的区别是 shred 默认写随机数据,dd 写零。对现代硬盘来说,一遍覆写已经足够——那种”必须覆写 7 次甚至 35 次”的说法源自几十年前的磁介质残留理论,早已不适用于现代高密度硬盘。美国 NIST 的介质清理指南也明确指出,对现代 HDD 单次覆写即满足要求。
耗时预期:一块 8TB 的机械盘,覆写一遍大约需要 10–20 小时(受顺序写速度限制,大致是容量 ÷ 180MB/s)。
方法二:ATA Secure Erase(HDD 和 SSD 都推荐)
这是硬盘固件自带的安全擦除命令,由固件执行,比操作系统层面的覆写更彻底——它会覆盖包括保留区域在内的所有可寻址区域。
# 1. 确认盘未被冻结(frozen 状态需要先处理)
sudo hdparm -I /dev/sdb | grep -i frozen
# 2. 设置安全密码(这一步之后盘会被锁定,务必记住密码)
sudo hdparm --user-master u --security-set-pass p /dev/sdb
# 3. 执行安全擦除
sudo hdparm --user-master u --security-erase p /dev/sdb
三个必须注意的点:
一、先确认 not frozen。 很多主板/控制器会把硬盘设为 frozen 状态,此时 Secure Erase 命令会被拒绝。常见解法是把系统挂起(sleep)再唤醒,或者用 USB 转接盒连接。
二、密码别忘。 设置密码后如果中断,盘会被锁定无法访问。虽然可以用同一个密码解除,但务必记录。
三、增强版用 --security-erase-enhanced。这个变体会额外覆写固件已知的保留区域,耗时更长,但更彻底。对普通退役场景,标准版已经足够。
耗时:通常几十分钟到两小时,远快于软件覆写——因为固件可以并行操作所有磁头/通道。
方法三:SSD 必须用 Secure Erase,不能用覆写
这是全文最重要的一条,也是最多人搞错的地方:
覆写对 SSD 既无效又伤寿命。
原因在于 SSD 的工作原理。SSD 有磨损均衡(wear leveling)机制,逻辑地址和物理闪存单元的映射是动态的。你在操作系统里”覆写”了逻辑地址 LBA 0,实际写入的可能是全新的物理块,原来那个物理块被标记为无效但仍保留着数据——这些数据通过普通接口读不到,但拆下闪存颗粒就能读出来。
同时,反复全盘覆写会消耗大量 P/E 周期,显著缩短 SSD 寿命。
所以:
- SSD 退役 → 用 ATA Secure Erase 或 NVMe Format(
nvme format -s1) - 不要用 shred / dd 反复覆写 SSD
- SSD 的 TRIM 也不是销毁手段,它只是标记无效
# NVMe 固态的用户数据擦除(会清除所有数据)
sudo nvme format -s1 /dev/nvme0n1
方法四:自加密盘的加密擦除(最快)
如果你的硬盘支持 SED(Self-Encrypting Drive,自加密硬盘),实际数据始终以加密形式存储在盘上,密钥存在盘内一个独立区域。
加密擦除就是销毁这个密钥。 密钥一销毁,盘上所有数据立刻变成无法解密的乱码,而整个过程只需要几秒钟。
支持 SED 的盘在规格里会标明,企业级和部分 NAS 专用盘常见。判断方法:
sudo hdparm -I /dev/sdb | grep -i "Encryption"
如果有输出,就说明支持。对应的操作是 --security-erase-enhanced 走固件,或用厂商提供的工具(如 sedutil-cli)。
方法五:物理销毁
对涉及高度敏感数据的场景,物理销毁是唯一能让人完全放心的方式。
- 机械盘:消磁(专业消磁机)或盘片物理破碎。钻孔对 HDD 效果一般,因为盘片破碎后仍可能有可读区域;更可靠的是盘片粉碎或强磁消磁。
- SSD:消磁对 SSD 完全无效(闪存不受磁场影响)。SSD 只能靠物理粉碎,且必须粉碎到颗粒级别——主控、缓存、所有 NAND 颗粒都要破坏。
物理销毁的代价是盘彻底报废,无法再利用,也无法作为保修凭证。一般只用于极高敏感度的场景。
退役的完整流程
建议按这个顺序走,避免出错:
1. 确认数据已迁移或有备份 — 这一步错了后面全白搭 2. 从阵列中移除 — 在系统里走正规的移除流程,而不是直接拔盘 3. 记录序列号 — 拍照存档,作为售后或处置凭证 4. 选择擦除方式 — HDD 用 Secure Erase 或覆写;SSD 用 Secure Erase 或 nvme format 5. 验证 — 擦除后重新挂载,确认无法读出任何文件 6. 处置 — 二手出售、留作冷备,或物理销毁
第 5 步不要省。 擦除完成后挂上去看一眼,尝试挂载、尝试用恢复软件扫一下,确认真的是空的。这一步只需要五分钟,但能避免”擦错了盘”或者”命令没生效”的悲剧。
一个额外的提醒:擦错盘的风险
所有擦除命令都直接作用于块设备(/dev/sdb 这样的路径),没有任何二次确认。
一个血泪教训:在 NAS 上执行擦除命令前,务必反复确认设备路径。 多盘位的机器里 sdb、sdc 容易搞混,而一旦擦错就是不可逆的。用 lsblk 或 smartctl -i 确认序列号,与目标盘的标签核对后再执行。
