写零工具,可以把空白或未使用的磁盘空间用零来填充,主要作用有两个:一是多次填充零之后,无法用恢复软件恢复,据微软的介绍是连中情局也没有办法恢复;二是用零填充后,虚拟机工具可以回收相应的空间,比如VirtualBox下的vdi虚拟磁盘,如果没有超出最大限额的话,vdi文件只会增大不会减小,比如复制了一个大文件,vdi文件会增大,然后再删除掉该文件,但是vdi并不会减小,而是把这部分空间仍然保存下来,可以用下面的命令对虚拟磁盘“瘦身”:
VBoxManage modifyhd /the-path-of-VDI.vdi -compact
原理是把未使用的值为零的磁盘block删除掉,而写零工具就是把未使用的磁盘空间用零来填充,所以在执行compact前,最好先使用一下写零工具。
微软有一个sdelete的工具,是微软官方的作品,功能比较强大,windows下的兼容性也非常好,主要用法:
D:\>sdelete.exe
SDelete - Secure Delete v1.61
Copyright (C) 1999-2012 Mark Russinovich
Sysinternals - www.sysinternals.com
usage: sdelete.exe [-p passes] [-s] [-q] ...
sdelete.exe [-p passes] [-z|-c] [drive letter] ...
-a Remove Read-Only attribute
-c Clean free space
-p passes Specifies number of overwrite passes (default is 1)
-q Don't print errors (Quiet)
-s or -r Recurse subdirectories
-z Zero free space (good for virtual disk optimization)
简单参数说明:
-c 清除空闲空间
-p 重写的次数,默认为1,可以多次擦除,增加恢复数据的难度
-z 用零填充自由空间(有利于虚拟磁盘的优化)
所以在虚拟机上,最��用:
sdelete –c c:
sdelete –z c:
Linux/Unix下就比较麻烦了,找了很长时间,终于在FreeBSD的ports中找到了一个类似的工具:zerorer
安装:
cd /usr/ports/sysutils/zeroer && make install clean
依赖:
zeroer依赖于popt和gettext
使用:
zeroer /var/log/messages
说明:
(1)本命令的大致原理是:新建一个大文件,把指定文件周围未分配的空间都用零填满,默认一次填充10M字节。
(2)跟sdelete相比,zerorer还是比较粗糙,速度也不如sdelete快。它的源代码不足二百行,还有很大的提升空间。
(3)不能多次写入,sdelete可以指定写入的次数,来对同一个磁盘位置多次清零,减少可以恢复的机率。
该贴由hui.chen转至本版2014-11-5 17:04:55