再安全的计算机也会出现灾难。幸好,一些开源应用软件有助于恢复重要数据,让中招的系统起死回生,比如SystemRescueCD、dd、Partedmagic、BackTrack、Security Tools Distribution、Helix和TestDisk等。
我们所有人都会在某个时候遇到灾难。一天你正在悠哉乐哉,突然发现有台机子启动不了――不凑巧的是,这台机子存放着对你来说很重要的各种数据。尽管某种程度的灾难在所难免,但重要的是如何应对灾难。
虽然计算机和文件系统一年比一年来得可靠,但灾难恢复技术总是会有用武之地。由于开源解决方案能够帮你从这种混乱当中恢复过来,所以你不会被专有产品的成本或者许可协议牢牢束缚。如果你愿意,还可以改动源代码,满足自己的要求。
本文将探讨我们可以运用哪些开源解决方案来恢复数据、让中招的系统起死回生,还能使自己免遭损害。本文介绍的许多解决方案可以跨平台运行(Linux/Windows/Mac),不过有些只能在*NIX平台上运行,文章会有相应介绍。
几种灾难场景
没有两种数据灾难是以几乎一模一样的方式出现的。为此,你需要根据出现的灾难来采取相应的恢复措施。
·简单恢复:你可以采用这种恢复方法来抢救刚刚被删除(通常是不小心删除)的文件,因为意外删除数据是导致文件丢失的最主要的一个原因。大多数时候,你的本地“恢复删除”功能或者回收箱/垃圾桶能让你避免犯下十分愚蠢的举动,但有时候这毫无用处:比方说,如果你强行进行了硬删除,或者你从没有启用恢复功能的卷当中删除了某个文件。通常来说,你可以使用用来查找及恢复某些类型文件的工具(见本文稍后介绍的PhotoRec),在脱机状态下扫描这个问题卷,以这种方式来找回删除文件。
·复杂恢复:这适用于恢复丢失的整个分区或者引导装入程序,以及该分区上的所有内容。这里你可以使用两种基本的方法:恢复可以从分区恢复的数据,分区信息本身用不着重新构建;或者试图重新构建分区的元数据,并按正常方式重新挂载分区。
第一种方法比较简单,不过如果你正在处理操作系统分区,那么从该分区恢复过来的文件很有可能无法恢复到可引导系统上。第二种方法提供了比较全面的恢复,但这将取决于有多少实际的卷数据原封不动。幸好,有办法可以从甚至已部分格式化的卷当中恢复文件,后文会有介绍。
·可移动存储或者光学介质:我也经常遇到过CD或者DVD最后因盘片受损或者年久而无法读取的事情,不过我很幸运,总能够从上面恢复所需内容。大多数恢复工具可以恢复移动驱动器或者光学介质上面的内容;不过拿CD和DVD来说,要牢记的重要一点是,使用什么驱动器来读取上面的内容。如果你可以访问若干只CD/DVD驱动器,那么不妨使用不同驱动器来创建镜像。你可能会发现,一只驱动器比另一只驱动器有更好的纠错或者抖动容限机制,因而能够恢复其他驱动器可能完全跳过的数据。另外,从Linux里面而不是Windows里面执行恢复也可能会得到不同的结果。
·加密介质恢复:遇到这种情况,你只好听天由命了。如果试图从加密卷恢复内容(比如加密密钥),除非当初使用了极其薄弱的加密算法(可谁又会采用这种算法呢?),那么找回数据的可能性几乎与从树上掉下来的苹果不遵守牛顿万有引力定律一样小。处理加密卷时比处理标准卷要小心一倍:备份卷头(加密文件系统通常对此有相应的措施),并保存在安全地方,卷头同样经过加密。
不管在什么情况下,只要你开始执行恢复,就要确保挂载上去以便恢复数据的任何介质都是按只读方式来挂载的。这可以尽量减小发行版或者操作系统挂载、在“易碎”的驱动器(含有需要恢复的数据)上执行读/写操作的可能性。另外,尽量不要对原始介质采取什么操作:从介质上创建镜像文件,保存到已知正常的另一只驱动器上,然后利用镜像文件来恢复。

图1:BackTrack LiveCD发行版含有很多恢复工具,包括功能强大的Autopsy工具集。
| 第1页: 几种灾难场景 | 第2页: 专门用于恢复数据的Linux发行版 |
| 第3页: dd及其变种 | 第4页: 文件雕刻 |
| 第5页: 高级的数据雕刻程序 |