安全擦除 SSD(整个 SSD)

安全擦除 SSD(整个 SSD)

我想把我的 SSD 卖给我的朋友,它是 256GB,我在这个 SSD 上有个人的东西,所以我想确保它会变得非常硬或至少很难恢复数据。擦除整个 SSD,就像它是新的一样。

与此类似的其他问题是过度提及那:

  1. 删除一个分区是没有用的。
  2. 命令catddshred没有用。

我读到,擦除 SSD 仅在擦除整个磁盘而不仅仅是一个分区时才有用。因此,我要求确保此信息是否正确并知道如何操作。

因此,我认为最好在这里为我和那些不担心数据丢失的人创建一个新线程,因为他们只想摆脱 SSD 以换取金钱,而不是把它们扔进垃圾箱。

答案1

无用取决于上下文。粉碎实际上可能相当无用 - 当尝试粉碎单个文件时,而该文件的其他副本仍然存在 [每次单击“保存”时,它都是另一个副本] - 但也有洗手液对无用的定义:它会杀死 99.9%,所以实际上,它并不是毫无用处,但人们还是担心那 0.01%。

对于许多 SSD 来说,一个简单的操作blkdiscard就会导致数据消失并且再也看不到。

blkdiscard -v /dev/deleteyourssd
# verification:
echo 3 > /proc/sys/vm/drop_caches
cmp /dev/zero /dev/deleteyourssd
# expected result: EOF on /dev/deleteyourssd

如果这对您来说还不够好,您可以使用ddshred进行随机数据擦除:

dd bs=1M status=progress if=/dev/urandom of=/dev/deleteyourssd
# or
shred -v -n 1 /dev/deleteyourssd

为了验证,随机数据擦除需要通过加密零来完成:

cryptsetup open --type plain --cipher aes-xts-plain64 /dev/deleteyourssd cryptyourssd
# Three unicorns went into a bar and got stuck in the door frame
badblocks -b 4096 -t 0 -s -w -v /dev/mapper/cryptyourssd

您还可以在重新启动电源后运行另一个验证过程(对于加密方法,仅当您重新使用相同的密码短语时才有效):

cmp /dev/zero /dev/mapper/cryptyourssd
# expected result: EOF on /dev/mapper/cryptyourssd

取回数据——丢弃/覆盖后验证一切都消失了——需要一点奇迹,并且涉及大多数用户并不真正需要关心的极端情况。

但如果这对您来说仍然不够好,如果 SSD 制造商为您的 SSD 型号提供了安全擦除功能,您可以使用它,这在 ArchLinux wiki 中有详细描述:

只是不要通过设置复杂的 ATA 密码然后将自己锁定在外面,从而有效地堵塞设备而搞砸了。把事情简单化。


通常对于 SSD,在重新安装 Linux 后就已经不可能恢复任何数据,因为大多数版本mkfs也会首先丢弃整个空间:

mke2fs 1.46.4 (18-Aug-2021)
Discarding device blocks: done                            
Creating filesystem [...]

以这种方式,自己擦除 SSD 确实毫无用处,因为无论如何,一切都已经为您完成了这项工作,而无需询问。

即使这种情况没有发生,几乎每个发行版都会fstrim定期擦除所有可用空间。 SSD 上的数据恢复远不如 HDD 成功,您实际上必须不遗余力地覆盖可用空间。

SSD 非常擅长在眨眼之间丢弃所有数据,您实际上应该更担心丢失仍然需要的数据(对备份进行备份和备份),而不是担心无法擦除它。

答案2

blkdiscard -v -f /dev/nvme0n1 (or /dev/sdX)

将使您的数据有效消失,而没有任何现实的恢复可能性。

如果你很偏执,请这样做:

cat /dev/urandom > /dev/nvme0n1

其次是blkdiscard

答案3

仅有的安全擦除 NAND 闪存驱动器的方法是要求驱动器控制器为您执行此操作。使用写入的主机基础实用程序将无法工作。如果是 NVMe 驱动器,请查找nvme格式命令

相关内容