Ram*_*mza 13 hard-drive data-recovery wipe
我有一个可启动的 FreeBSD 驱动器,在将电脑捐赠给我当地的旧货店之前,我用它来擦除硬盘驱动器的内容。我使用以下命令来实现此目的:
dd if=/dev/urandom of=/dev/[drivename] bs=64k
Run Code Online (Sandbox Code Playgroud)
假设硬盘驱动器有损坏的扇区或物理损坏的区域。这些扇区会被上述命令覆盖吗?或者是否仍然可以从损坏或损坏的扇区中提取数据?
Joe*_*een 18
这是一类取决于观点的问题:
在某些时候,损坏的扇区无法读取或写入。但硬盘驱动器的设计理念是,在某些时候可能会发生坏扇区。
如果没有适当的机制来处理此类扇区,这将会产生后果:假设 LBA 地址处的扇区变坏,我们的连续 LBA 地址空间会突然出现一个漏洞。为了应对这种情况,硬盘驱动器需要维护一个备用扇区池。例如,一旦硬盘发现 LBA 100 处的扇区有问题,它就可以将 LBA 100 重新映射到备用扇区,并使原始扇区停止运行。
因此,不,您将无法写入 LBA 100,即原始扇区,但由于驱动器会将 LBA 地址映射到备用扇区,您毕竟可以写入 LBA 100。因此,只要驱动器有可用的备用扇区,您就可以写入该扇区,而实际上您正在写入不同的物理扇区。
有一些条件会触发驱动器处理坏扇区:
该驱动器已经重新分配扇区,并且还有待处理的扇区。如果您写入以下内容,待处理的扇区将会消失:
关于恢复数据,或者如你所说,从坏扇区提取数据:
从坏扇区获取数据的最佳“工具”是硬盘驱动器本身。如果驱动器无法读取某个扇区,它将应用各种错误恢复技巧,甚至无需您提出要求。每个扇区可能需要长达 20 秒的时间。这就是为什么人们经常抱怨“不稳定”的驱动器速度慢;驱动器只是非常努力地从有问题的扇区恢复数据。
专门从这些扇区恢复数据的软件只能做一些事情:
编辑:如果这是关于覆盖数据并击中坏扇区,则适用相同的机制:
如果驱动器在擦除过程中发现坏扇区,它将被重新分配。有些人可能会认为这是不安全的,或者可能是一个攻击媒介,因为原始扇区已停止使用,因此不会被覆盖。
然而恢复的可能性不大:
如果驱动器支持增强擦除,那么这将是安全擦除所有扇区(包括已重新分配的扇区)的最佳选择。
在很大程度上,问题取决于“坏”是否意味着操作系统已将其标记为“坏”,或者驱动器的固件是否认为它无法使用。
在第一种情况下,较低级别的工具可能能够覆盖它。
在第二种情况下,坏区已被标记为不可用,并可能从保留池中替换,这些是固件操作,除非使用特殊的硬件工具,否则“坏”区很可能无法被覆盖。
如果整个存储区域没有在硬件级别上被擦除和重新格式化,那么坚定且资金充足的对手很可能可以从中恢复信息。从历史上看,即使在硬件擦除之后,顶级取证设备也可以恢复原始数据的痕迹,因为时钟/数据转换的残留痕迹可见为非常微弱的模拟信号。
固件或操作系统级别的操作不会阻止这种情况。
最终,擦拭驱动器的唯一方法是使用锤子和熔炉。
由于我不确定一种设置中的行为,因此以下情况适用:
固态硬盘
您尝试擦除的扇区与用于存储这些扇区内容的闪存块之间没有固定的映射。
由于闪存块的写入周期寿命有限,一旦闪存块达到使用寿命,SSD 固件就必须重新映射闪存块。这种重新映射操作并非偶然,它是常规磨损处理的一部分。这种老化或磨损过程反映在某些 SMART 属性的变化中,具体取决于制造商。重新映射后,您将无法再通过操作系统访问这些扇区。不过,专用工具似乎能够做到这一点。
LUKS 加密系统中的反取证分离器就是为了应对这种影响而构建的。
硬盘
扇区号和物理扇区之间的映射通常是静态的,但在 HDD 使用寿命结束时出现的错误除外。待定行业的数量似乎像雪崩一样增加。由写入操作触发的待处理扇区重新映射到待处理(不可读)扇区使得该扇区对于操作系统不可用。查看重新分配的扇区计数(SMART 属性)的原始数据,以确定您无法访问的范围。
我无法判断的是,对待处理扇区的写入操作是否会触发对该扇区的最后一次写入尝试(这可能会导致写入成功),或者该扇区是否会立即重新映射。
结论
重新映射可以防止您对 HDD 和 SSD 进行擦除操作,但随着时间的推移,重新映射的分布会有所不同。SMART“重新分配扇区”属性对于 HDD 很常见。您可以使用它来评估有多少扇区无法覆盖并采取相应措施。考虑到 SSD 的操作方式,我宁愿物理上销毁它们,也不愿依靠用随机数据或零覆盖其内容。