我需要加密 SSD 驱动器,并且我选择使用dm-crypt
.这不是我经常做的事情。
到目前为止,我已经使用 ATA 安全擦除命令成功清除了 SSD 的存储单元。我还使用以下方法用随机数据填充了整个磁盘:
dd if=/dev/urandom of=/dev/sdx bs=4096 status=progress
。
我的问题是关于最后一步,即使用该 cryptsetup
实用程序加密设备(我的分区)。
由于我已经用随机数据填充了整个磁盘,因此在创建和加密分区后是否需要用随机数据重新填充分区?换句话说,我生成的随机数据是否dd
仍驻留在我创建的加密分区内?
答案1
dd if=/dev/urandom of=/dev/sdx bs=4096 status=progress
该命令将用随机数据覆盖整个驱动器。该随机数据将保留在那里,直到您写入其他数据、安全擦除或 TRIM。
换句话说,我用 dd 生成的随机数据是否仍驻留在我创建的加密分区内?
通常是这样的。
然而,TRIM 何时发生并不总是显而易见。例如,mkfs
或者mkswap/swapon
默默地暗示 TRIM,并且您必须使用其他参数来禁用它。我不知道分区程序是否采用了相同的想法并修剪新创建的分区。如果使用 LVM 而不是分区,请注意,lvremove
如果lvresize
您issue_discards = 1
的lvm.conf
.其他存储层(例如mdadm
支持 TRIM)作为简单的传递操作。
cryptsetup open
默认情况下不允许 TRIM,除非您指定--allow-discards
,但是某些发行版可能会选择更改这些默认值。
毕竟,随机擦除 SSD 进行加密的情况非常罕见。我能想到的唯一用例是删除旧数据,同时不相信硬件在修剪或安全擦除时免费执行此操作。
即使进行了加密,SSD 上的可用空间可见也是正常的。大多数人希望每周/每月使用 TRIM 以避免长期可能出现的性能下降,因此发行版可能会遵循这一趋势并allow-discards
默认在加密设备上使用。
一旦修剪,你用随机数据覆盖就毫无意义。
但只要您能掌控一切,并在所做的一切操作中禁用 TRIM,随机数据就会保留。