注册表完全恢复手册( 二 )


在DOS下只能以命令行的方式运行Regedit.exe,但它可以解决无法进入Windows情况下的注册表恢复问题 。其命令行形式:
 Regedit [/L: system] [/R: user] filename1
 Regedit [/L: system] [/R: user] /C filename2
 Regedit [/L: system] [/R: user] /E filename3 regpath1
 Regedit [/L: system] [/R: user] /D regpath2
参数含义:
/L: system 指定system.dat文件的存放位置;
/R: user 指定user.dat文件的存放位置;
filename1 指定导入的注册表数据库文件名;
/C filename2 利用指定的注册表文件重新生成注册表;
/E filename3 导出注册表文件为指定文件名;
regpath1 将指定开始关键字的部分从注册表文件中导出;
/D regpath2 将指定开始关键字的部分从注册表文件中删除
具体在恢复注册表时,可以采取命令行1的形式:Regedit
bak.reg(假设你导出的备份注册表文件为此文件名) 。不过建议采用命令行2的形式,即:Regedit /C
bak.reg,因为此命令不但会将bak.reg中的所有信息导入注册表,而且会将其中的一些无用的信息(如一些已经被删除的程序在注册表中的残留部分关键字等)同时剔除,从而达到压缩重建注册表的目的 。
顺便提一下,命令行2也不一定要在恢复注册表才使用,平时运行也能压缩、清除注册表中的“垃圾”,从而起到提高Windows启动速度,减少注册表错误发生几率的作用 。笔者就曾经利用此命令将原来6兆的注册表压缩为4兆 。要注意的是,在使用此命令时,请务必在运行前加载磁盘缓冲smartdrv,否则它的运行时间之长或许足够你去看一场电影了!
二、系统备份法
正是由于注册表对于系统的重要性,微软在开发Win95时就考虑到系统对于注册表的自动备份问题 。尽管它所提供的功能直到Win98才令人稍感满意,但毕竟这也不失为修复注册表的方法之一 。
(一)Windows 95
当初Win95各版本中提供的系统自动备份注册表的方法比较简单,通常是在Windows系统启动的同时,将当前的注册表文件备份 。具体的做法就是将system.dat和user.dat这两个文件分别备份为相同属性的system.da0和user.da0 。因此,当系统因注册表遭破坏无法启动时,可以手工将system.da0和user.da0这两个文件拷贝并覆盖system.dat和user.dat(请注意在操作前,分别将这4个文件的文件属性全部取消) 。尽管这种想法不错,但由于疏忽和一些无法预料情况的发生,系统自动备份的注册表经常会在不知不觉中被破坏或备份失败 。例如:①当注册表的破坏是在上
次关机以前发生的,而当你再次启动系统时,备份的注册表其实就是已经遭破坏的注册表的“完全”拷贝了;②启动时注册表为正确的,此时系统自动备份的注册表也是好的,但在系统启动过程中发生意外(如突然停电、硬盘意外读写错误等)导致系统启动失败,当你再次启动时,原来完整的注册表备份也会被已经遭破坏的注册表覆盖 。因此,利用system.da0和user.da0这两个备份文件来恢复注册表的效果不是十分令人满意,成功率一般在50%左右 。要注意在一次启动失败后,尽量不要试图再次启动,应该立即用system.da0和user.da0这两个文件来覆盖恢复,否则90%以上你的系统是再也无法恢复的了 。
(二)Windows 98
Win98对注册表文件备份系统的改进之处主要体现在以下两个方面:①备份文件不仅包括system.dat和user.dat,还包括了system.ini和win.ini这两个初始化文件,大大提高了系统还原的完整性;②备份文件被统一地压缩在一个文件中,而且备份压缩文件的数量大大增加,避免了在Win95下一个备份容易发生错误无法恢复的现象 。

推荐阅读