本帖最后由 smalllion 于 2010-8-16 16:26 编辑
前言:两篇《我为什么……》之后,引起了一些争论,也得到了不少口水。这次换换口味,回到我所喜欢的文章类型上来。依然卷影复制,是炒冷饭还是其他,读后您自会有所感悟。
之前曾经写过一篇有关Windows7备份还原机制的文章,当中也包含了卷影复制的内容。这次的主题依然是卷影复制,虽然多多少少有些炒冷饭之嫌疑,但一来自从在新笔记本上启用单分区规划后多次尝到了卷影复制的甜头,二来大众对卷影复制的误解一如既往的深,故而还是再写些东西吧。本文将试图以实例为主的途径进一步展示卷影复制的应用场景与方法,并对卷影复制的潜在扩展应用谈谈我的想法。 什么是卷影复制(VolumeShadow Copy)?卷影复制亦称卷影副本(好吧这纯粹是翻译的差别),我们可以简单的把它理解为一种快照机制,它允许以少量的空间追踪磁盘更改的信息进而为系统和文件提供保护。在Windows7中,卷影复制主要为“系统还原”和“以前版本的文件”两项功能提供支持(事实上包括创建映像在内的系统备份还原机制都有使用卷影复制)。Windows7默认在系统分区(即C)启用卷影复制,阈值3%。可以在系统属性——系统保护中配置启用卷影复制的卷及阈值。系统将每隔一段时间或指定事件(如安装、卸载驱动、程序、补丁)发生前创建一个卷影副本,也可以手动创建卷影副本,结果就是卷影复制功能将随时跟踪用户的使用环境的变化,提供随到随取的数据恢复服务。
首先谈谈系统还原。系统还原第一次进入公众视野应该是在Windows ME中,后续的Windows都包含了这一功能(当然稳定性与可用性都在不断改良)。但尽管已经过了这么多年,终端用户仍未普遍理解、接纳系统还原这一功能,对其嗤之以鼻算是一个常态。中国用户普遍接触的系统备份还原方案(没有之一)是GHOST,在初步评估中,用户往往喜欢将两者进行比较(虽然两者所代表的备份类型是备份还原机制的不同环节),一旦发现系统还原不能修复任何问题,失望之情便油然而生,并进一步坚定了鄙视微软的信心。 为何系统还原不能修复所有问题呢? 有的用户会条件反射般的答道:“因为系统还原就是个烂功能。”但这类受傲慢与偏见左右的主观看法显然不能触及问题的本质,它甚至不是对问题的解答而纯粹是某种发泄。我们不妨来做个简单的实验。 首先我们准备了若干不同类型的文件(其实只是一个txt文件和一个WINRAR文件夹罢了),然后为当前系统创建一个还原点,接着将准备好的文件复制到C盘的根目录和一级目录中,最后调用系统还原恢复到所创建的还原点上,并观察准备的文件的存在情况。 结果如何? 我们可以看到,所有复制到Windows文件夹内的文件都消失了(即被还原),而在其他目录,仅有EXE文件和DLL文件消失。 注册表较为特殊,我们对其单独进行评估。通过在各主项下创建项后再还原,我们可以看到新建的项都消失了。 于是我们可以得到这么一个结论:系统还原功能涵盖的目录是有限的,在功能被激活时,它仅会从卷影复制区还原符合以下条件的文件: lWindows目录下的所有文件 l注册表相关文件 l其他目录下的EXE文件和DLL文件 这一特性的建立是既要利用卷影复制修复系统、又不影响用户个人文件的需要,我以为并没有太多可指责的地方。但并非所有问题都因Windows目录下的文件、注册表或EXE、DLL文件而引起。同时在较普遍的30G系统分区方案中,3%的阈值仅能储存3个左右的还原点,若发现问题较迟,则能有效修复问题的还原点可能已经被覆盖。明确这几个因素后,我们已经得到了问题的答案。接下来,我们依然采用实验的方法,对系统还原功能进行评估。
首先为当前的系统建立一个还原点。
请勿使用多线程下载工具下载论坛附件!
之后进入WINRE,删除Windows根目录下的所有文件。
请勿使用多线程下载工具下载论坛附件!
重启之后,预料之中的,已经无法正常进入系统了。
请勿使用多线程下载工具下载论坛附件!
不用急,这正是我们所期待的异常环境。依然进入WINRE,调用之前创建的还原点进行系统还原。
请勿使用多线程下载工具下载论坛附件!
几分钟后,系统还原完成,重新启动后系统恢复正常。
请勿使用多线程下载工具下载论坛附件!
诚然,GHOST这类映像类备份可靠性是最高的,即便发生储存灾难,也能够恢复分区数据(前提是映像储存于外部设备上)。但这类备份方式也有着难以跟踪用户使用环境、占用空间大、备份还原耗时长、目标分区所有文件都被牵连等不足。与尾大不掉的映像类备份相比,依赖卷影复制的系统还原功能则更显轻巧,并且不具备映像类备份的弱点。尽管系统还原功能仅涵盖部分目录,但这一目录已包括系统主要文件夹与文件。妥善利用之,有助于用户在遇到意外问题时以最小的成本恢复系统的正常工作。
而“以前版本的文件”,则是卷影复制另一件更锋利的武器。
在启用了卷影复制的分区上,我们可以通过当中任一文件夹(包括根目录)属性下的“以前的版本”标签使用“以前版本的文件”这一功能。进入任一还原点,可以看到所有的文件都在其中。无论分区中的对应文件是被更改、删除、覆盖,各还原点内的文件都保持独立并可访问。通过简单的复制、粘贴,即可实现对任意文件的恢复(但显而易见,当前使用中的文件是无法直接恢复的)。 是否看出了某种可能性呢?仅仅3%的磁盘空间即可对分区内的所有文件提供齐备的保护。购入新笔记本后我就开始使用与评估单分区规划,这一规划额外的一个好处就是磁盘几乎所有的文件默认即处于卷影复制的保护之下,3%的阈值就可以储存一周(约7~10个)的还原点。来看个实例吧。 我是一个实况足球爱好者,同时也很喜欢使用完全实况推出的补丁包。但是补丁包的升级可能包含球员数据结构的变化,进而导致以往版本创建的大师联赛、绿茵传奇等需要大量时间投入的存档的球员数据错误(典型的如大量出现DUMMY)。一些错误可以忽略(比如其他球队的球员变成DUMMY),但另一些就让人无法接受了,诸如在升级到WECN3.0b后,我发现己队主力托马斯·穆勒不幸变身DUMMY。我没有对升级前的游戏做任何手工备份,倘若要重新找回小穆勒,按照常规的方法,我就必须重新下载、安装PES2010,并打上上一个版本的补丁包。但事实上呢?我只花了几分钟就把PES2010恢复到了上一个版本,同时存档依然可以正确的游戏。做法相信您已经猜到了,但还是说一说。
一、为了避免新旧文件互相干扰,首先将PES2010文件夹清空,之后进入卷影复制区,选择打补丁前的一个还原点,将当中的PES2010复制并粘贴到相应位置;
请勿使用多线程下载工具下载论坛附件!
二、由于实况配置文件与程序本体相分离且关系到游戏的正常运行,因而我们也需要将实况配置文件夹(Documents\KONAMI\Pro Evolution Soccer 2010)恢复到相同的还原点。比照方法一进行操作即可;
请勿使用多线程下载工具下载论坛附件!
三、OK!继续回到实况的世界中鏖战吧~
这只是“以前版本的文件”最基础的应用,但已经给我带来了巨大的便利。下面再看看一个稍复杂一些的案例。 由于种种原因,我们需要单独恢复用户文件夹下的ntuser.dat文件。但ntuser.dat做为用户账户配置文件,在用户账户登录后即处于被使用的状态,使用一般方法是无法恢复文件的。因而我们需要做一些变通。
一、第一步还是常规操作,先从卷影复制区获取ntuser.dat的以往副本,保存于某位置备用;
二、既然要恢复的文件是因为使用中的缘故而无法恢复,那么我们只要在恢复时让文件不再被使用就好了。这样方法就很多了,WinRE(恢复环境)、WinPE(预安装环境)抑或在另一个用户账户中进行操作(注意可能需要更改权限)都可以; 三、将副本覆盖过去,任务完成。
总的来看,使用“以前版本的文件”解决问题的思路就是:1、进入卷影复制区;2、把要恢复的文件复制出来;3、粘贴到文件所在的位置。思路虽然简单,但由于分区中所有的文件都受卷影复制保护,因而以简单的方法(复制、粘贴)解决复杂的问题(系统异常、文件丢失或被覆盖等)不再遥远,我们隐约可以看到某种无限的可能性。
但是,仍然有一些因素限制了卷影复制力量的完全展现。卷影复制应当还有提升的空间: l可用性尚可提高。在实验中,我发现倘若删除了C:\Windows\System32\Restore目录,那么WinRE将无法对卷影复制区域进行识别。微软可以考虑将其放置于与系统卷隔离的环境上,如100M隐藏分区中,以提高卷影复制的可用性。 l在非当前系统环境(如WinRE、WinPE)中,我们可以发现没有一个接口允许我们去使用“以前版本的文件”访问卷影复制区。改良方法上,WinRE可以考虑整合接口,毕竟在恢复环境中访问卷影复制区是完全可能的(参见系统还原);WinPE则可以考虑移植系统功能。 l用户会发现除非阻止新还原点的建立,否则没有办法将一个还原点固定下来。从快照机制的原理与实践上看,这是完全可行的。提供这一特性将能满足一些用户的特殊需求并扩展卷影复制的可用范围。 l系统还原保护范围可以更灵活些,如允许用户对其范围进行定制,进而创建更符合个人需求的系统还原环境。 l卷影复制行为触发条件应予设定。倘若卷影复制能在满足指定条件时执行相应的行为,那么它的可能性又增加了几分。 l用户现在会发现无法手动在移动设备上启用卷影复制,如果对相关机制做出一些变通从而允许卷影复制在移动设备上的广泛实现,那么这将是继BitLocker to Go后又一确保用户移动设备文件安全性的重要举措。
如果微软能够做出一些改变与增强,那么无疑卷影复制将发挥更大的威力,不妨设想一下这些美妙的场景:
l系统彻底崩溃后,我们不再需要使用映像类备份进行还原,而仅仅需要进入WinRE来调用卷影复制区的某个还原点,以可定制的系统还原或增强的以前版本的文件功能恢复文件与系统即可。映像类备份只有在储存灾难时才派得上用场了。 l通过对触发条件的定制,用户可以设定系统每次重新启动即将指定的文件恢复到指定的还原点。还原卡?影子系统?我只需要卷影复制。 l再也不用担心借给别人的U盘数据被有意无意的篡改,在卷影复制的保护下,用户可以轻松的找回被更改的移动设备文件。更多可能,只要你想。在泄露的下一代Windows开发概要中,卷影复制已经位列增强列表之中。希望过不了几年,我们就能够体验到完全发挥出威力的卷影复制,让它为我们的工作、生活提供更多便利。
但是,在卷影复制进行着改进的同时,用户的观念也应有所进化。现今仍有不少用户未经全面评估即以“节省磁盘空间”、“优化”、“精简鸡肋功能”等目的关闭卷影复制,更衍生出“卷影复制会无限制占用磁盘空间”等毫不负责、毫无证据的说法,这种说法又进一步加重了用户对卷影复制的不信任(同样未经评估)。当用户碰到问题时,本应可以事半功倍解决的方法却因用户的关闭卷影复制行为而不复存在,问题最终不得不以事倍功半的途径勉强解决,抑或压根无法得到解决。一个功能再好,也必须在被用户认识、理解、包容的前提下才能发挥作用;一个功能再好,不负责任的言论也可以轻而易举的置其于死地。功能强大、潜力无限却屡遭鄙视的卷影复制的遭遇说明,在功能本身之外,还有一些更重要的东西需要改进。
这是我一直努力的方向,也希望本文能为这种改进添上一块砖。 |