如何*安全擦除* NVMe SSD

如何*安全擦除* NVMe SSD

由于 SSD 有写入放大,我想将 SSD 重置为初始开箱性能。大多数教程都是针对 SATA SSD(hdparm --secure-erase),我想知道如何擦除 NVMe SSD 的分区(也许使用nvme命令?)。

还有一个问题:有dd if=/dev/zero of=/dev/nvme0n1帮助吗?还是有fio --filename=/dev/nvme1n1 --direct=1 --buffered=0 --rw=trim --bs=4k --size=100G --numjobs=16 --iodepth=32 --group_reporting --name=trim帮助?

谢谢!

答案1

彻底擦除 NVMe 驱动器。

这将擦除整个驱动器。

您可能需要先安装 nvme - NVMe 存储命令行界面实用程序 (nvme-cli)。然后查看命令并列出所有 nvme 设备。列表还将显示固件修订版本,您应该检查是否拥有最新固件。

sudo apt install nvme-cli
nvme help
nvme --help
nvme --help format
sudo nvme list
sudo nvme format -s1 <device>

    fred@z170-focal-k:/mnt/data$ sudo nvme list
[sudo] password for fred: 
Node             SN                   Model                                    Namespace Usage                      Format           FW Rev  
---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- --------
/dev/nvme0n1     S4P2NF0M514514L      Samsung SSD 970 EVO Plus 500GB           1         164.30  GB / 500.11  GB    512   B +  0 B   2B2QEXM7

如果使用多个命名空间,请参阅 y rootkea 下面的注释。

使用 -n 0xffffffff 格式化所有命名空间。

也可以看看

man nvme

答案2

要重置为 Out Of Box 性能,您不想使用 dd/fio 的“写入零”技术。说“此区域必须包含并保持零”(fio/dd 技术)和说“此区域必须为空”(安全擦除)在语义上有很大区别。例如固态存储(SSS)性能测试规范(PTS)指定其认为合理的预处理技术。

答案3

正如 OldFred 的帖子所述,您需要使用实际的安全擦除实用程序,例如软件包nvme-cli

之所以运行得如此之快,是因为驱动器的内容已经透明加密。也就是说,如果您直接读取闪存芯片,则在正常访问驱动器时不会找到驱动器上的任何内容。板载控制器完全透明地处理此过程,将加密密钥存储在控制器内的安全区域中。

从安全性和寿命的角度来看,这都是有用的。加密数据有助于减少重复模式写入的重复性,从而有助于减少闪存单元的磨损。

当您在 SSD 上运行安全擦除时,实际上并没有擦除任何数据 - 相反,控制器会生成一个新的加密密钥并将其写入安全区域,在此过程中覆盖旧密钥并永久地使闪存单元上的所有二进制数据无法恢复。

相关内容