我想擦除SSD的所有分区和数据,因此可以对其进行重新分区(这不是出于安全目的)。
我已经看过了,sudo dd if=/dev/zero of=/dev/sdb bs=1M
但是如果这只是用零填充每个分区,那么我不确定这是我想要做什么。
我计划经常运行此命令,并且我不想耗尽我的SSD写入。有人可以给我建议解决这个问题吗?
我想擦除SSD的所有分区和数据,因此可以对其进行重新分区(这不是出于安全目的)。
我已经看过了,sudo dd if=/dev/zero of=/dev/sdb bs=1M
但是如果这只是用零填充每个分区,那么我不确定这是我想要做什么。
我计划经常运行此命令,并且我不想耗尽我的SSD写入。有人可以给我建议解决这个问题吗?
Answers:
在SSD上:您可以使用来修剪整个磁盘或分区blkdiscard
。它不是很安全,但是实际上是即时的(磁盘仅将所有单元标记为未使用)。
为了安全起见:使用全盘加密。如果磁盘已加密,请不要擦拭整个磁盘–您只需要擦除包含密钥的区域(例如,每个加密分区的前1–2 MiB)。
对于重新分区:同样,不要费心擦除所有数据。您只需要使用销毁文件系统wipefs
,然后清理磁盘的前1个MiB即可清除剩余的引导加载程序。使用格式化分区后mkfs
,操作系统将简单地假定其完全为空。
(实际上,在Linux上,mkfs.ext4会在格式化之前自动修剪整个分区。)
mkfs
无论如何重新格式化都将对其造成垃圾。但是确实发生了各种奇怪的情况– wipefs
因为需要它。)
man wipefs
说?(提示:请参见手册页示例部分中的第一个示例)
blkdiscard
也会很好,因为即使攻击者知道密钥,它也会在磁盘其余部分上造成困惑(假定旧映射也无法恢复)。“然后清理磁盘的前1个MiB,以清除剩余的引导加载程序”-多余的部分仅用作前512B的溢出。如果先擦除512B,则其余1M不会受到伤害。
正如Kamil Maciorowski 提到的那样,删除整个磁盘的最佳方法是减少ATA的写损耗,它是使用ATA的“安全擦除”命令。这将指示硬件执行一次完整擦除,而不是像使用工具那样反复覆盖单元shred
。这仅适用于整个磁盘,如果您需要有选择地擦除分区,请参阅grawity的答案(blkdiscard
)
该命令的确切实现取决于硬件。
大多数固态硬盘会使用大量电信号以全有或全无的方式擦除整个芯片。这确实会导致(正常)写入损耗,但只会达到最小程度(〜单个写入周期)。
自加密固态硬盘 通常只会擦除控制器芯片内部的加密密钥(实时)。自加密驱动器始终加密,即使是开箱即用的(使用出厂默认密钥)。因此,即使没有设置用户密钥,擦除密钥也只会在闪存芯片上留下无法解密的混乱。
dd if=/dev/zero
。该过程在此处记录得很好:https : //www.thomas-krenn.com/en/wiki/SSD_Secure_Erase (重新安装OS时,我亲自在自己的SSD上反复使用此过程)
编辑:如果您对安全隐患感兴趣:检查此Security.SE的问题
请记住,您已寻求有关如何快速擦除磁盘的解决方案,最好将磁盘/ dev / sdx替换为磁盘,最好是/ dev / sda
这将擦除分区表。
dd if=/dev/zero of=/dev/sdx bs=1024 count=50
这将擦除整个磁盘,需要一段时间。
cat /dev/zero > /dev/sdx
cat
。使用dd
以提高性能。
dd
使用512字节的缓冲区,这将破坏性能……Coreutils(cp
并且可能还cat
)具有更合理的缓冲区大小。dd
无论如何,这并没有使它固有地更快。
dd
。上次我试图用cat
写入磁盘的图像,这是显著比使用慢dd
用适当的缓冲大小。