一步一步学习注册表备份与恢复 水月子 小涛 2001年 36期 上次帮助大家找回了丢失的硬盘数据。但我们在平常的应用中,已经不知道有多少位朋友领教过Windows系统的厉害,一般电脑爱好者都有深刻的体会,整天都得提心吊胆防备着它出现蓝屏和崩溃的一天,特别是那个重要而又脆弱的注册表,当你的系统甚至连安全模式也进入不了的时候,我们便又要开始动手抢救了……   自Windows 95系统后,注册表的数据保就保存在以下两个系统文件中:User.dat和System.dat。注册表是Windows系统正常运行的保证之一。一旦注册表出现故障,就可能导致Windows系统不能正常运行。下面就介绍一下在Windows9X/Me系统和Win 2000系统下注册表的恢复方法。在Windows 9X/Me里面,大家都知道通过另存注册表,导入注册表的方法来恢复系统,但是万一出现特殊情况,你即便从安全模式也进不了Windows图形界面的时候怎么办呢?这个时候你就需要利用DOS下面的注册表恢复程序了。   #1 在Windows 9X/Me里面备份和恢复注册表   #21.DOS下用Regedit   注册表编辑器Regedit.exe其实是一个双栖型的程序,可在DOS和Windows 9X/Me下运行。只要我们在DOS状态下面输入Regedit,将会出现一个帮助屏幕,里面就会给出了不少命令行参数及其使用方法。   现举几个例子说明regedit.exe在DOS下的使用方法。   ①将系统注册表数据库registry导出到reg1.reg文件中:regedit/E reg1.reg   ②将reg1.reg恢复成所用的注册表:regedit/C reg1.reg   ③指定system.dat存放在D:\PWIN中和user.dat存放在E:\PWIN中,再将reg.dat数据文件形成一个新的注册表数据库registry:regedit/L:D:\PWIN /R:E:\PWIN /C reg.dat   #22.用ScanReg备份恢复注册表   Regedit的备份和恢复自动性不高,不过是绝对可靠的,如果你曾经备份过注册表的文件,那么用Regedit就肯定能够将它们恢复过来。如果你没有备份的话,就得用到ScanReg命令了。   每次启动Windows 9X/Me后,系统都会自动地将计算机能正常启动的系统文件(这些系统文件包括 System.ini,Win.ini,User.dat和System.dat )压缩成一个cab文件保存在隐含目录 Windows\Sysbckup\下,并保留最近5天的备份文件Rb001.cab~Rb005.cab。通过这几个系统备份文件,你就可以将不能正常启动的计算机恢复到最近5次能正常启动任意一次的系统设置。   使用时,你需要将系统引导至实模式下的纯DOS环境,在DOS提示符下直接键入Scanreg/Backup即可对当前的系统注册表快速备份,当需要恢复时再键入Scanreg/Restore。如果你没有进行过手动备份,它可将注册表恢复到最后一次启动计算机时的状态。如果你忘了备份,那么赶快键入Scanreg/Opt,它也能保证你重新恢复系统。需要提醒你的是,你必须进入存放Scanreg命令的目录才能有效操作,其默认目录是C:\Windows\command。   #23.让Windows Me进入纯DOS环境   虽然说Windows Me优化了对软件的支持,删除了“实模式”代码,但是我们可以借助一个小工具RealDOS-Mode Patch for Windows Me来帮助我们实现这个目的。这个补丁可以让Windows Me在启动时,按下“Shift+F8”组合键可以直接进入DOS实模式。   ①首先大家到http://download2.ccidnet.com/20010320/mfddosme.zip下载这个补丁程序,然后在硬盘下面建立一个Temp的临时目录。   ②再将Windows Me下的Command.com、IO.sys、Regenv32.exe三个文件拷贝进去。   ③选中这三个文件后单击鼠标右键选择“属性”命令,将“只读”、“系统”、“存档”等文件属性前的复选框清除,然后“确定”即可。   ④接着将下载回来的补丁程序解压到temp里面,运行其中的Winmedos.com文件即可完成修改。   ⑤然后将那三个文件重新拷贝到各自的目录里面就行了。现在重新启动,按下“Shift+F8”,就可以进DOS了。   其实最简单的方法就是你准备好一张应急启动软件盘通过软盘启动进入DOS环境。   Windows 2000由于是基于NT技术的,所以DOS实模式是肯定不会有的了。那么当Windows 2000发生紧急情况的时候我们怎么办呢?大家放心,Windows 2000的安全模式是真正安全的,除非你的硬件有问题,不然的话是肯定能够进行注册表恢复的,这个时候就要求大家平时做好Windows 2000下的注册表备份咯!   #1 在Windows 2000里面备份和恢复注册表   #21.完全备份和恢复   在Windows 2000里面有两个注册表编辑程序,regedit(图1^36020201a^)和regedt32(图2^36020201b^)。   如果大家使用regedit进行备份的话,和Windows 9X/Me里面的步骤是一样的。要恢复注册表的话,同样只要在regedit的窗口下面选择“注册表”菜单里面的“导入注册表文件”命令,然后选择你存放好的注册表备份文件即可(图3^36020201c^)。   提示:虽然Windows 2000是32位的软件,但是由于其搜索功能比较强,使用简单,所以16位的regedit也被保留在Windows2000里面了。不过regedit的功能并不是很全,在没有特殊权限的情况下,某些注册表项是不能修改的。所以推荐大家在搜索注册表和备份、恢复的时候使用它。在需要编辑注册表时,还是使用Windows 2000里面的32位注册表编辑器regdt32。   #22.部分备份注册表   在Windows 2000里面,我们可以有选择地备份注册表。   首先我们启动regdt32程序,大家通过图2可以发现,regdt32是将不同的主键用不同的窗口显示出来的。如果我们要保存整个主键或者子键的话,先选择好需要保存的主键或者子键,然后点击注册表编辑器的“注册表”菜单下面的“保存项”命令(图4^36020201d^),这样就可以将所选择的主键或者子键方便地保存下来了。   有的时候你可能想通过保存下来的文件研究一下注册表的结构,但是我们通过“保存项”保存下来的文件是无法直接打开的。不过你可以将注册表子目录树导出成为TXT文件。操作方法很简单,在选定了要保存的子目录树之后,选择“注册表”菜单下“将子目录树另存为”命令,将其命名为扩展名TXT的文件,单击“保存”按钮即可(图5^36020201e^)。以后我们就可以使用Windows的写字板或记事本来查看这个文本文件了。   #23.部分恢复注册表   既然我们可以有选择地备份注册表,当然也可以有选择地将备份出来的注册表文件恢复进去。恢复的方法也很简单,首先用鼠标将需要恢复的主键或者子键选择上,然后选择“注册表”菜单下的“还原”命令(图6^36020201f^),并在“还原项”窗口中选择要还原的注册表文件,单击“打开”按钮,确认覆盖现有主键后,即可还原该项到当前选定的项上。   提示:被选择还原的文件必须与注册表编辑器中所选择的主键内容吻合,即原先保存的注册表“项”只能还原到原先的位置。   #1 提 醒   最后要提醒大家的就是要注意Windows 2000里面的注册表文件的位置。早在Windows 9X里面,注册表文件已经是分开好多不同的文件保存了,而且存放在不同的目录下面的。Windows 2000 里面也一样,其中用户配置文件保存在根目录“Documents and Settings”下用户名的目录中,包括两个隐藏文件:NTUSER.DAT、NTUSER.INI及ntuser.dat.LOG日志文件。系统配置文件位于Windows 2000系统目录下的“SYSTEM32\CONFIG”中,包括DEFAULT、SOFTWARE、SYSTEM、AppEvent.Evt、SecEvent.Evt、SysEvent.Evt等多个隐藏文件及其相应的.LOG(日志)文件和.SAV文件。这些注册表文件在Windows 2000运行时无法使用其它工具打开,这一点与Windows 9X下的system.dat及user.dat不同。   #1 Regedit语法:   Regedit [/L:system] [/R:user] filename1   Regedit [/L:system] [/R:user] /C filename2   Regedit [/L:system] [/R:user] /E filename3 [regpath]   在这里我给大家说明一下:   /L:system 指定system.dat文件的存放位置。   /R:user 指定user.dat文件的存放位置。   filename1 指定引入注册表数据库的文件名。   /C filename2 指定形成注册表数据库的文件名。   /E filename3 指定导出注册表文件的文件名。   regpath 指定导出注册表文件的开始关键字(缺省为全部关键字)。