在日常使用中,如果我们需要报废、转让或重新利用一块硬盘,彻底清除数据 是非常重要的一步。单纯的删除文件或重新分区并不会真正抹掉数据,仍可能被恢复工具找回。本文记录在 Linux 下对一块 机械硬盘(/dev/sda) 和一块 NVMe SSD(/dev/nvme0n1) 进行彻底清理的过程。


为什么要彻底清除?

  • 隐私保护:避免个人文件、照片、证件信息被恢复。
  • 安全合规:某些公司或行业对数据销毁有合规要求。
  • 磁盘重利用:把磁盘恢复成“干净”的裸盘,方便重新分区。

一、清理机械硬盘(/dev/sda)

对于机械硬盘,最常见的方式就是用 ddshred 将整个盘覆盖。

方法 1:用 dd 写满 0

sudo dd if=/dev/zero of=/dev/sda bs=1M status=progress
  • if=/dev/zero 表示输入源为无限的零字节流。
  • of=/dev/sda 指定目标盘。
  • bs=1M 设置块大小,提高写入效率。
  • status=progress 实时显示写入进度。

最终磁盘会被完全写满 0,所有数据被覆盖。

方法 2:用 shred 多次覆盖(更彻底)

sudo shred -n 3 -z -v /dev/sda
  • -n 3 表示随机数据覆盖 3 遍。
  • -z 表示最后一遍用 0 覆盖。
  • -v 打印执行信息。

这种方式比单次写 0 更难恢复,但耗时也更长。


二、清理 NVMe SSD(/dev/nvme0n1)

SSD 与机械硬盘不同,出于磨损均衡和 Flash 管理的原因,单纯的写零未必能保证彻底覆盖。NVMe 盘推荐使用固件自带的 安全擦除指令

使用 NVMe Secure Erase

安装 nvme-cli 工具:

sudo pacman -S nvme-cli    # Arch Linux

执行安全擦除:

sudo nvme format /dev/nvme0n1 -s1
  • -s1 表示 Secure Erase 模式。
  • 命令会提示 10 秒倒计时,防止误操作。
  • 执行后输出 Success formatting namespace:ffffffff 表示清除完成。

此方法速度极快(通常几秒钟),效果等同于恢复出厂,所有数据不可恢复


三、执行结果

清理完成后,可以用以下命令确认:

lsblk
sudo fdisk -l

输出中应显示磁盘为空盘状态,无任何分区表。此时你可以:

  • 保持裸盘状态,留待后用。
  • 重新创建分区表(GPT/MBR),格式化为 ext4、btrfs 等文件系统。

四、注意事项

  1. 谨慎操作:确认磁盘名称,避免误清系统盘。
  2. HDD 与 SSD 的差异
    • HDD 用 ddshred 就足够。
    • SSD 建议使用 nvme formathdparm secure-erase
  3. 物理销毁:如果要达到最高级别的数据不可恢复(例如涉密数据),必须物理破坏盘片或芯片。

五、总结

  • /dev/sda(HDD):ddshred 完全覆盖。
  • /dev/nvme0n1(NVMe SSD):nvme format -s1 一键安全擦除。
  • 完成后两块盘都回到“出厂空盘”状态,数据无法恢复。

通过这套方法,无论是旧硬盘转卖还是 SSD 退役,都能最大限度地保障数据安全。

Leave a Reply

Your email address will not be published. Required fields are marked *