虚拟机通常将其虚拟硬盘作为普通文件存储在主机操作系统的文件系统中。
将文件系统想象成仓库。仓库包含大量的盒子(文件)和一个列出所有盒子的清单(文件表)。当您删除文件时,它实际上并没有破坏数据,它只是从清单中删除条目。当下一个盒子进入仓库时,检查清单,并将文件放入空闲位置。如果那个位置已经有一个盒子,那个旧盒子就会被扔掉。因此,如果您可以扫描仓库而不是清单,您可以检查清单上没有的盒子,即使您“删除”了它们,您也可以提取盒子的内容。
所以,如果你删除了虚拟机的虚拟磁盘文件,数据仍然会保留在磁盘上。由于虚拟磁盘文件是根据自己的头文件和内部文件系统来构建的,因此从虚拟机的文件系统中查找和提取文件数据应该不难。格式化通常不能解决这个问题,因为它只是用一个空的文件表覆盖文件表 - 数据仍然存在。
有两种方法可以正确销毁文件:
- 用零覆盖包含数据的磁盘扇区。
- 在运行时加密文件数据,然后在要删除文件时销毁密钥。
当您想要销毁数据时,第一个选项需要更长的时间,并且会给磁盘带来更大的压力,因为您必须覆盖每个扇区。第二个选项提供快速安全删除,并在日常使用中增强保护,但对 CPU 性能有影响。事实上,SSD 使用第二个选项来减少重新格式化期间闪存设备上的写入磨损 - 它们存储主密钥,用它加密驱动器上的所有内容,然后在重新格式化时销毁并重新生成密钥格式命令。
因此,如果您希望安全地销毁数据,请使用 执行适当的低级擦除shred
,或者使用 TrueCrypt 加密磁盘并在您想要摆脱驱动器时丢弃密钥。