卷影副本设置导致的备份失败

Windows Vista/7中包含了备份工具,可用于备份文件和系统,这一工具在Windows 7中的功能得到了进一步加强。因此我一般的使用习惯是:安装好系统和必要软件后,对系统创建一个备份,这样以后随时就可以用备份恢复到安装好的状态。同时每天定时自动将重要文件备份一遍。系统和文件的备份都保存在一块USB接口的外置硬盘上。

昨天,因为系统有些问题,想要用备份恢复。恢复完毕后,想到原始的备份中缺少一个设置,于是在修改了需要的设置后,将备份用的硬盘格式化(Windows资源管理器中进行的常规格式化),打算为系统重新备份一个映像。不过这次备份的时候竟然失败了,而且错误原因很令人费解:

备份失败后的错误信息

具体的错误原因竟然是磁盘空间不足,错误编号为“0x8004231F”。很明显这个错误信息完全没用,因为无论是要备份的盘(C盘),还是用于保存备份文件的盘(G盘),都有绝对充足的可用空间。在网上搜索了半天,有人建议重启动VSS服务,或者用vssadmin命令重新调整系统盘的卷影副本可用空间大小,然而这些都应该不是导致问题的根源。Vssadmin是一个命令行工具,可用于查看和调整与卷影副本有关的参数。例如,如果要查看每个卷的卷影副本可用空间量信息,就需要运行“vssadmin list shadowstorage”。可我的系统运行该命令后看到,可用空间绝对是够用的:

预分配的卷影空间磁盘使用量

仔细查看后发现一个问题,对于用于保存备份文件的G盘,可允许卷影副本功能使用的硬盘空间量为“0”,考虑是否是这个原因导致的。于是针对用于保存备份文件的分区(G盘)运行Vssadmin命令,增大卷影副本可用的空间量。最终发现备份功能终于正常了。

调整后的结果

如果需要在命令行下调整某个分区的卷影副本可用硬盘空间量,需要运行“vssadmin Resize ShadowStorage /For=C: / On=C: / Maxsize=xxGB”命令,其中“For”对应的是要调整的分区,“On”对应的是用于保存卷影副本内容的分区,而“Maxsize”则是允许该功能使用的最多空间量。如果不习惯命令行操作,也可以右键单击“计算机”,选择“属性”,打开属性窗口,单击窗口左侧的“系统保护”,在保护设置列表中选中需要配置的分区,单击“配置”按钮进行修改。

另外还有一个问题,在服务器版本的Windows上,一个分区的卷影副本数据内容是可以保存在这个分区以外的地方的。例如,对于文件服务器,可以使用一个分区保存文件,另一个分区(可能位于另一块硬盘上)保存卷影副本内容,这样可以进一步提升性能。因此上述命令可以使用“For”和“On”这两个参数。但对于客户端版本的Windows,不知道是否支持这样的做法,我也没有试验过。因此遇到相似问题的朋友最好还是对这两个参数使用相同的位置。

其实网上的解决方法是正确的,但叙述不够严谨。至少在本例中,备份出错的原因是因为用于保存备份文件的位置卷影副本配置有误,可我在网上找了很久,几乎所有内容都没有提及这一点,而是以“C”盘为例介绍该命令的用法。因此这里需要提醒大家:如果因为配置错误导致卷影副本功能出错,也许错误的并不是被保护的分区,而是用于提供保护的分区。另外这个问题不仅会出现在Windows自带的备份工具上,任何正常运行需要借助卷影副本服务的程序,无论是不是备份软件,都有可能遇到这样的问题。

分享:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

发表评论前,先做个简单的数学题吧: * Time limit is exhausted. Please reload CAPTCHA.