对PowerShadow的小实验

1. 前言

    近日听说有个 PowerShadow 的软件挺流行的,于是我就去下了一个来试用看看。官方网站有注册码,注册之后就是正式版了。 

    其实 PowerShadow 这样的类似硬盘保护卡这样的软件在几年前我就用过,具体叫什么名字就忘了。当时还是在 Win98 下用的。传说 PowerShadow 的原理是先复制一份临时的 FAT 表,让系统读写文件的时候使用这个临时的 FAT 表来寻找文件。这样,即便是把某个文件删掉了(Windows 删除文件只是在 FAT 表中给某文件打个删除标记),但具体的数据还存在,而且真正的 FAT 表还在。这样就仍然可以通过原来的 FAT 表来读写原来的文件了。而且,FAT 也不大,复制等操作也快。

    但是,这样好像又有些问题了。对删除、增加操作的恢复固然容易,但是如果是改写操作呢?临时的 FAT 表指向的数据如果被改动了,再怎么改动 FAT 也没有用吧。这样的话,为了使改写的操作也能恢复,可能 PowerShadow 在当系统要改写原有的文件内容的时候,先把请求存入的文件保存在空闲的地方,这样就不会改动到原始的数据。为了验证 PowerShadow 是否是这样做的,我做了以下实验。

 

2.实验环境

    PowerShadow 2.6繁体中文版,WinXP,受PowerShadow保护的C盘容量2GB

 

3. 实验过程

    C盘安装了 WinXP,占用了大约 1GB 的空间。目前硬盘中还剩下 1GB 左右的空闲空间。

    为了验证是否当系统修改了某个文件然后请求保存回去的时候,PowerShadow 会另外把整个文件保存到其他空闲的磁盘位置,然后把临时的 FAT 表中的相关内容修改指向他。在未用 PowerShadow 保护的模式中,我将两个 450MB 的文件保存到 C 盘(此时剩余 100MB)。然后再拿 4 个 20MB 和一个 10MB 的文件放到 C 盘(此时剩余 10MB)。

    此时,C 盘剩余 10MB 的空闲空间。转入 PowerShadow 保护。

    这时,把一个 450MB 的文件删除,就空闲出 450MB 以上的空间。在平时的正常情况下,空闲出的空间可以保存其他的数据。但是,在 PowerShadow 的保护中,他必须保护刚刚删除的那个 450MB 的文件的数据不被修改。

    现在,复制一个小于 450MB 的文件到 C 盘。系统给出“磁盘已满”的提示,但是又显示 C 盘确实剩余足够的空闲空间。

    重新启动回到剩余 10MB 的状态。使用 UltraEditor 打开一个 20MB 的文件来编辑,然后保存。如果在非保护状态下,保存的数据将覆盖原始的数据。这样,编辑过的这个文件覆盖原来的那个 20MB 的空间,不会引起任何错误。但是在 PowerShadow 的保护中,他要保护原来的数据不被覆盖,只能将编辑过的这 20MB 的数据保存在其他空闲的空间里。但是此时剩余的空闲空间已经不足 20MB,因此系统也给出“磁盘已满”、“不能写入”之类的提示。

 

4. 实验结论

    根据以上的实验,我猜想,当在有 PowerShadow 保护的分区中修改某个文件时,PowerShadow 把修改好的将保存的文件保存到空闲空间中,然后把临时的 FAT 中相关内容指向新的位置。同时还需要标记原来的数据的位置,将他保护起来不允许写入。

    这样的话,在如果 C 盘被保护的情况下。如果程序经常更新(读出来,更改些数据再写回去)一些大体积的文件的话,这样就相当于要反复的把这些大文件复制多以个备份。比如(在 PowerShadow 保护中),如果在 C 盘有一个 500MB 的 pagefile.sys 文件,系统总是要反复读写 pagefile.sys 的。那么 PowerShadow 就会额外复制一个 500MB 的 pagefile.sys 文件,同时又要保证原来那个 pagefile.sys 的数据不受改动。这样势必就浪费了 500MB 的空间。

    因此,在 PowerShadow 保护的分区中就不应该放置那些经常被修改的文件,比如 pagefile.sys 等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值