我想把我的 SSD 卖给我的朋友,它是 256GB,我在这个 SSD 上有个人的东西,所以我想确保它会变得非常硬或至少很难恢复数据。擦除整个 SSD,就像它是新的一样。
与此类似的其他问题是过度提及那:
- 删除一个分区是没有用的。
- 命令
cat
、dd
、shred
没有用。
我读到,擦除 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
如果这对您来说还不够好,您可以使用dd
或shred
进行随机数据擦除:
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格式命令