Tuesday, October 11

Secure delete (Windows)

在操作系统里,文件删除后,并且从垃圾桶里清空之后,文件所在的页面被标为“可用”(unused),待下次有文件写入需要这个空间的时候,这个页面才会被改写:所以说,这时候这“已删除文件”并没有真正被删除。

好处:如果你反悔,有可能能把这些文件内容找回来。


如果你真的要删除这些文件,把这些文件内容彻底改写,在Windows环境可以使用微软出品的 sdelete (Secure Delete). 它把所有unused的页面都写上0,那些“已删除文件”被彻底抹掉:
 sdelete -cz C:  
在Linux 环境下可以用dd生成极大的文件(内容都是0)充满整个硬盘,把所有“可用”(unused)页面都用起来,然后把这个文件删除掉(scrub能做完这个事情)。

好处:1,硬盘这些空间都写上电荷0,可以减轻重量,减少环境污染。
2,如果你这个环境是一个虚拟环境(virutal machine),比如VirtualBox 或者Vmware, 而且你的虚拟硬盘是动态分布的,那么在做完这个操作,把未用空间都填0之后,在host环境可以把这些未用空间收回来,缩小这个虚拟硬盘的实际大小(它的最大空间不变,随着你以后写入文件,它的实际尺寸以后还会长大)。

用VirtualBox的话,命令是:
VBoxManage modifyvdi xxxx.vdi --compact


附注:FBI有一些硬盘探测工具能够读取硬盘磁道的残留信息,找出该扇区在被改写之前的字节,以及在那之前的字节,以及...。即使在用sdelete的时候可以用 -p 来指定写入的次数(比如说,一百次?),也不能保证你的数据百分百没有被读出的可能。

Labels: ,