安全擦除 SSD 的推荐方法是ATA 安全擦除。大多数 BIOS 通过冻结驱动器来禁用此功能。存在一些围绕 BIOS 冻结的技巧,根据设置可能会或可能不会起作用。这使得 ATA 安全擦除难以使用。
修剪是否会被滥用作为安全擦除 SSD 的替代方法?
可以删除任何现有的分区表并创建一个新的 GPT,其中一个 ext4 分区填充整个 SSD。修剪 ext4 分区会导致 SSD 擦除 SSD 上的所有逻辑块,但保留 GPT 和 ext4 超级块的块。未分配给逻辑块的保留块根据定义被擦除。这样,所有物理块要么被擦除,要么包含无用的 GPT/ext4 元信息。
你觉得这个计划有什么缺陷吗?
请不要回答应该使用 ATA 安全擦除来安全擦除 SSD,这不是问题。
如果您担心数据安全,则应注意 SECURE_ERASE 和 TRIM 都不会真正擦除闪存单元。SSD 固件会保留一份已分配单元格和未分配单元格的列表。TRIM 只是将一个单元标记为未分配,就像删除文件导致文件系统将集群标记为未分配一样。不尝试实际擦除数据。来自未分配单元的读取请求只会导致设备返回 0x00(或某些其他位模式),而无需实际检查单元的内容。
没有安全擦除 SSD 的有效方法。可以直接与固件接口的取证工具可以查看单元格的内容。此外,设备上的存储空间比从用户空间可访问的空间多。这些额外的单元用于垃圾收集。垃圾收集可以即时重新分配单元格,并且即使在 100% 已满的驱动器上仍然可以工作。一个SECURE_ERASE可能(可能不)TRIM的细胞,但blkdiscard
还是fstrim
肯定不会,因为他们使用的扇区号,以确定被修剪的区域。
安全擦除 SSD 的唯一方法是销毁它。这是大多数医疗保健、银行和政府公司在设备过剩时的政策。
让我们这样说:
事实是,在大多数(如果不是全部)SSD 中,ATA Secure Erase
等效于完整的设备 TRIM。除了那些带有“硬件加密”的,ATA Enhanced Secure Erase
基本上都是加密密钥的再生。所以毕竟ATA Secure Erase
在 SSD 中并不是那么安全,除非你的支持“硬件加密”。
另一方面,fstrim
不是修剪设备的唯一方法。您可以使用blkdiscard
擦除整个块设备(磁盘/分区),包括 GPT 和超级块等。
但是,请注意,某些磁盘中的 TRIM 实现在发出的 TRIM 命令中具有“要求”,因此只有在满足该要求时,驱动器上的所有块才会在 TRIM 后“读取零”。
例如,Intel 530 SSD 要求 TRIM 块范围“对齐”到 8 个块。因此,当我想用blkdiscard
或hdparm
将其擦干净时,我需要确保没有“最小单位”被两个 TRIM 范围“覆盖”。
使用blkdiscard
,我需要指定-p 33550336
(65528 个块 * 512 字节,其中 65528 = 65535(单个范围内的最大块数)- 65535 % 8),假设起始偏移量为 0(或 [8 * 512]),否则会有剩余的块不会被擦除。这可以hexdump
在 TRIM 之后进行检查。
查看我的 Intel 530 ( sda
) 和 Silicon Power S70 ( sdb
)的区别:
以及范围未对齐和对齐时的差异:
(因为 65535 * 2 = 131070 不是 8 的倍数,所以最后还有剩余,但是可以看到 131064 个块 [0x3FFF000 / 512] 被连续擦除。)
别作弊:
PS 我还看到 SanDisk 的驱动器不能用任何形式的 TRIM 命令擦除它的“头”和“尾”。它的“最小单位”是 256 个块。
归档时间: |
|
查看次数: |
6669 次 |
最近记录: |