我必须交出一台笔记本电脑,包括它的硬盘。由于它没有加密,我想至少快速擦除它。我知道这在 SSD 上不是最佳选择,但我认为比单纯可读更好。
现在我正在对一个正在使用的 USB 设备进行擦除,但速度非常慢。我不知道这是为什么。当然,除了擦除该设备之外,计算机上几乎没有发生任何事情,所以我想熵可能很低(entropy_avail 说它在 1220)。直接调用
dd if=/dev/random of=/dev/sda1 bs=1k
四次?或者我有没有办法可以调用某些东西来增加随机性?或者瓶颈在完全不同的地方?
答案1
请勿尝试使用专为旋转磁性硬盘设计的工具来“擦除”SSD。你实际上不会销毁所有数据,这样只会缩短 SSD 的使用寿命。
相反,使用专为 SSD 设计的擦除工具,该工具可以使用驱动器的内部闪存擦除(丢弃)来丢弃所有块,包括您无法访问的块。SSD 供应商通常会提供此类工具,并保证与该供应商的驱动器兼容。
您也可以尝试自己动手和安全擦除实用程序。执行安全擦除的程序可与旋转硬盘和 SSD 配合使用。此外,一些系统 BIOS(主要在商务笔记本电脑中)内置了安全擦除功能。请注意,安全擦除在硬盘上需要数小时,但在 SSD 上只需几秒钟;在硬盘上,每个扇区都必须被覆盖,但在 SSD 上,它会一次丢弃所有块和/或更改驱动器的内部加密密钥。
(请注意,安全擦除在某些最早的一代 SSD 上无法正常工作;在这些情况下,您应该将驱动器扔进粉碎机中。)
答案2
使用/dev/urandom
应该可以让一切变得更快。我不会那样擦除 SSD。SSD 通常具有高级磨损均衡功能。基本上,驱动器不会覆盖现有数据,而是覆盖未使用的部分。正确地打乱所有数据需要一点时间。到那时,您已经磨损了 SSD,尽管磨损程度很小。
答案3
/dev/random
通过系统收集的熵生成随机数据(键盘快捷键之间的时间延迟、通过以纳秒精度测量数据包到达的网络计时等)。如果熵不足,此设备将阻止输出,同时收集更多熵。
/dev/urandom
也使用收集到的熵,但它也使用伪随机生成器。因此,与 不同,它的熵没有那么多,/dev/random
但它非常快。不过,它的输出具有足够高的熵,因此,如果您没有一些非常高的安全限制(通常是密钥生成),您可以在任何地方使用它。
如果你用高熵垃圾在块级别覆盖 SSD,你实际上会在非常低的(大多数情况下是无法访问的)级别覆盖其闪存。这是因为 SSD 控制 IC 无法调查你的数据是否真的是垃圾,因此其数据重复数据删除机制很容易被绕过。
但是闪存具有最大块写入次数,并且您在接近其使用寿命到期时使用此类操作发送它。但是 SSD 在开始损坏之前可以被覆盖大约 10000-100000 次,并且数据擦除不需要如此频繁地发生,所以这还算可以。