技术笔记

NAS 硬盘退役与安全擦除:不同介质要用不同方法

yaobingbin yaobingbin · · 约 7 分钟 · 0 条评论

为什么”格式化”不算删除

先说清楚一个基本事实:无论快速格式化还是完整格式化,都不等于数据销毁。

快速格式化只是重写了文件系统的元数据(分区表、根目录结构),数据区的内容原封不动。用任何一款数据恢复软件扫一遍,大部分文件都能完整读出来——这就是为什么二手硬盘经常能恢复出前主人的照片和文档。

完整格式化(不勾选”快速”)会写入一遍,对机械盘来说确实覆盖了大部分区域,但它不会覆盖所有扇区(重映射扇区、保留区域等),也不是一个可验证的销毁流程。

所以,只要盘要离开你的控制,就必须走正式的擦除流程。

五种方法对比

方法 适用介质 耗时 可靠程度 备注
快速格式化 — 秒 ❌ 完全无效 只改元数据
全盘覆写 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 确认序列号,与目标盘的标签核对后再执行。

微信搜一搜 纳思Note
评论经后台审核通过后显示 · 请勿发布广告、外链或无关内容

发表评论

邮箱地址不会被公开。填写昵称与邮箱后方可评论。