您所在的位置: 首页 > 软件教程 > 注册表的损坏和解决修复方法

注册表的损坏和解决修复方法

更新时间:2022-10-14 16:22:03 阅读: 作者:admin

类型:角色扮演 大小: 更新时间:1970-01-01
语言:简体中文 应用平台:Android
立刻下载

如果注册表受到严重的损害,存取硬件和软件可能会受到很大的限制,甚至系统不能启动。可能因为一个很小的问题,一个应用程序将不能正常的运行,或者运行的不稳定。
当注册表在运行时是受保护的,所以它不可能被复制,删除,或者改变内容,除非经过一个“验证过的”程序(比如安装程序,注册表编辑工具,和域用户管理器改变安全策略和浏览器等)。由于这些保护,注册表是十分安全的,但是并不是完全能防止的。问题仍会发生,你需要作好认识它们的准备来应付这些问题。
当你注册表出现问题时,我们大多数会听到或者感觉到下面一些症状来认识问题,注册表问题的特征有:
昨天计算机(或者软件程序)还工作,但是今天它就不工作了;
在我安装软件/硬件前它还工作,但是现在我无法使用它了;
我的系统不象以前那样工作了;
当我试图关闭计算机时,硬盘响个不停却没有什么反应;
我的计算机启动不了了;
天!又是蓝屏,死机了;
注册表变的不正常一般来说有三种原因:
1、应用程序和驱动被添加到系统中
1)在注册表中找出大半的错误与添加和删除程序有关。多数用户自己添加或者更新驱动,应用程序等等。而且添加和删除都是多次的。
2)程序本身也有问题。没有任何应用程序没有bug或者错误。最好的情况,就是错误微乎其微,复杂深奥的问题你可能从来没见过。在设计程序时因为受时间和经费的限制,这些错误被放置不管。作为一个程序员来讲,在程序里有错误可能是次要的,但是它使系统崩溃那就变成一个大问题了。
3)驱动程序不兼容。个人计算机世界的开放结构体系造成了一定的风险,因为任何类型的部件组合在一起都是可能的。但测试所有的组合并保证所有设备的兼容性却不太可能。所以当用在Win95下的驱动被用在Winnt时,某些问题就会产生。
4)在应用程序安装过程中在注册表中添加了不正确的项。在安装时,多数应用程序使用叫一个叫 SETUP.INF的文件详细说明例如需要什么磁盘,哪个目录将被建立,从哪里复制文件,使应用程序工作正常所需要建立的注册表项等等详细信息。如果在 SETUP.INF中有一个错误,这个改变也仍然会出现,就会出现严重的问题。
5)一个应用程序导致另一个应用程序和它缺省的文件关联出现错误。当一个应用程序被安装后,缺省文件类型被记录在注册表中。然后用户可以通过双击来启动应用程序和装载文件。很多时候,其他应用程序也会使用同样的扩展名。举例说,当一个TIF图形在基于注册表里的设置被激活时,最后一次装载的程序将会变成一个执行体。有时候,彻底不相同和根本不兼容的程序会在它们自己的文档文件中使用相同的文件扩展名,启动文档的快捷方式将不会工作。在用户操作过程中,如果在文件打开方式选择了不正确的程序,就会造成一定的问题。
6)在反安装时出现的错误。当你在控制面板里的添加/删除程序种删除程序时,通过应用程序自身的反安装特征,或者通过第三方软件,这可能会对注册表造成损坏。除此之外,删除程序,辅助文件,数据文件和反安装程序可能会试图移去注册表的参数项。因为系统不可能知道一个应用程序在注册表中所要存取的相关参数项,这将会不经意的移除掉其他应用程序的参数项。
7)字体的错误。当注册表中字体ID出错,你将在应用程序中看到一种不同的字体。这就让人感觉很讨厌并可能需要你移去部分或全部字体并取代它们。这经常发生在用户频繁安装和删除字体的时候。
2、硬件设置改变或者硬件失败
1)如果计算机系统自身有问题,注册表会有损害。通常的,这些错误可以在正确的系统维护和管理下避免。
2)病毒问题。病毒很隐秘的改变正常的文件和注册表中的部分内容来影响我们的系统。
3)计算机用电如果不正常也会影响计算机系统,用UPS可以避免。
4)磁盘问题。很多时候你会因为容量不够使硬件失败而换掉你的硬盘。如果整块硬盘失败,当然,你将不得不从备份中恢复你的注册表。其他的则是磁盘独立扇区或者簇的故障。虽然这些情况在今天的系统不可能发生,但是磁盘表面介质的故障会使得磁盘部分不可读,包括那些注册表文件位置。
3、用户改动了注册表
1)手工改变注册表。当人们手工编辑注册表,由于数据的复杂性和难懂性使得他们难免容易犯错误,而且这个错误可能很严重导致系统工作发生中断。
2)拷贝其他注册表是很多用户犯的一个严重错误。因为从其他机器上拷贝来的注册表文件并不意味着也会在这一个机器上工作正常。对单独的系统来说注册表都是特殊的。甚至计算机硬件设备相同,拷贝来的注册表在另一个系统上不见得就会工作。如果使用另一个系统的注册表,多数硬件设备将不会工作,用户和安全问题可能造成数据和应用程序信息无法使用。 
保护Windows注册表
保护注册表是很重要的,有很多不同的工具可以实现这一目的。当没有安全设置时,用户可能的错误会更多。幸运的是,他们可以有几中方法来保护Windows注册表,在注册表失败时他们可以用额外的拷贝来恢复注册表。下面就是其中的一些方法:
1、使用windows备份软件
注:Win95和Win98备份程序有部分区别,在这里只讲Win98的备份程序。
Win98中包括一个备份程序。当安装Win98时如果你选择“自定义安装”,或者你可以在控制面板中的添加/删除程序里安装它。当你安装了这个备份程序,从 开始菜单| 程序| 附件 |系统工具 |备份可以运行它。启动时,这个程序提示你是否新建一个新备份,打开现有的备份作业,或者是还原备份文件 。
如果选择新建备份,则会有一个备份向导提示你如何去做备份。
如果选择取消向导,那么可以自己手工设置要备份的内容。在备份内容里可以备份网络和本地驱动器的文件。可以在你想备份磁盘或者文件的选择框打上对号来做备份工作。然后在备份在何处里填上你做备份的目的位置既可。如果要连同windows注册表一起备份,那么在 作业|选项|高级 里,在“备份windows注册表”选择框打对号就可以了。恢复则是备份的逆过程,这里就不详述了。
2、在安全模式下复制注册表文件
当Win95运行时,注册表文件被锁定,只能用注册表编辑器或者系统自己来进行存取,这些文件不能够被复制到其他地方。如果你在安全模式下启动Win95,注册表就不会使用同样的方法载入,这样SYSTEM.DAT 和 USER.DAT就可以被复制。实际上安全模式下系统文件是受保护的。
在启动时,当计算机显示Starting Windows 95...时按F8键进入安全模式。改变SYSTEM.DAT 和 USER.DAT的隐藏和只读属性这样就可以看到和复制它们。当拷贝完注册表文件,不要忘记了改回它们只读和隐藏属性。
3、使用微软配置备份来备份你的注册表文件
CFGBACK.EXE是Win95(Win98中没有这个软件)所附带的备份软件。它在Win95CD-ROM上的OtherMiscCFGBACK这个目录。在系统上拷贝所有的文件到任何一个目录,然后在桌面上建立一个CFGBACK.EXE的快捷方式。
要做一个注册表的备份,启动CFGBACK然后在选择的备份名位置输入一个名字然后点备份继续。
注意:在使用CFGBACK前确定你已经关掉了所有运行的程序。如果有程序在运行,CFGBACK可能将使得系统崩溃,数据丢失,而且保存的是一个不完整的备份。
4、导出注册表
在我看来,如果你没有磁带机或者其他东西。在REGEDIT.EXE中导出选项有一个导出为文本文件。通常使用一个压缩工具,导出工具选项也可以被用做保存和保护注册表的方法。
要导出在注册表中的任意键,选中这个键然后选择 注册|导出注册表文件。这将会复制这个键,并提示你在那里存放这个键及它的名字,然后用一个扩展名为.REG的文件保存这些数据。
当我们用文本格式导出注册表。我们可以使用象pkzip或者其他压缩工具压缩它(可以在正常Dos模式运行的)来节省空间。
为了备份我们可以在windows目录下建立一个用来做备份的文件夹。最少在一个月我们应该进行定期的备份。因为许多计算机用户订阅或购买带有赠送CD的计算机杂志。这些CD上有大量的时间限制的共享软件。许多用户从其中安装一个或者多个程序。当软件过期时它们反安装这些程序,但是这些程序在注册表中留下了一些痕迹。频繁的添加/删除程序会影响注册表,但是有了备份相对来说我们就比较安全了。
我们必须重新启动计算机到DOS模式下来导入,假定你导出你的注册表为mar99.reg.现在在命令提示下打
REGEDIT /C MAR99.REG
注册表编辑器将mar99.reg中的数据导入你的注册表并保存。不过只在命令提示下这个全部导入的工作才比较可靠。
技巧:如果你的注册表不断的变的庞大,那么先导出它然后象上面那样再逐个导入它。在这个导入导出过程中注册表中不必要的项将被清除出去。如果你使用Win98那么你可以使用Scanreg.exe程序。在windows目录命令提示下打 Scanreg /fix来执行命令。
请记住,预防要比修复好的多。注册表太容易被改变了,在发生突然事件时有几个注册表的备份是解决问题最好的方法。
从注册表故障中恢复
这里有四种不同级别的方法可以从Windows注册表故障中恢复
Restart
Redetect
Restore
Reinstall
让我们来看每一个方法来断定来使用它最适合的时间,并且解决何种类型的问题。
Restart(重新启动)
Win95注册表大部分内容保存在RAM中。如果哪个信息受损,它就必须重新读取正确的信息。当你重新启动系统,注册表将数据从硬盘读到RAM中就可以使用了。
拿字体ID问题来说。每种字体在系统中用一个ID号来使用。当一个字体被用在一个文档时,这个字体被这个数字保存并且用一个名字来标识。当字体ID损坏那么字体显示和打印将被其他字体取代。重新启动系统从硬盘上刷新数据,将产生修复过的字体ID,这样字体显示和打印就变的正常了。
这也就是为什么Windows系统故障经常在重新启动后就又恢复正常的一个原因。
Redetect the Devices(重新检测硬件)
如果一个设备工作不正常,那么在注册表中控制设备的设置可能受损了。为了重新设置注册表,你应该删除并且重装设备的驱动,或者你应该让Win95重新检测它们。很多时候,当一个设备工作不正常,它们会在设备管理器上此设备前使用一个惊叹号标志显示出来。很明显,如果设备从来不工作,可能就是其他问题了。但是如果设备以前工作,现在出问题,注册表就需要被恢复。
要检测一个设备,在控制面板上选择添加新硬件。第一个问题是文你“需要Windows搜索新硬件吗?”如果你选择是,Win95将做一个彻底的搜索去找“新”设备。任何设置不正确的或者没找到驱动的设备将被检测到并显示出来。
Restore(恢复)
从CFGBACK中恢复注册表
从CFGBACK中恢复注册表有很多好处。如果你建立了几个备份,你可以选择正确的一个来恢复。你可以如同做手术般放置排列注册表参数项。
导入注册表文件
象前面章节讲述的那样,一个代替使用备份的方法就是导入一个.REG文件。.REG文件包括了目的数据位置,所以对这个文件简单的双击就可以将数据放入注册表。它是所有恢复程序中最简单的,但是也可能造成错误。错误不会是用REGEDIT.EXE 把数据写入错误的位置,它很可能出现在用户直接双击注册表文件的时候。
Reinstall(重新安装)
重新安装
最后的方法就是重新安装驱动、应用程序或者Win95。一般来说,它只花费你一个小时左右时间去做这些事。如果你在现有的文件上重新安装,很多配置信息还被安装在同样的地方。同样在安装驱动程序时,你应该重新加入配置数据。
实际上找出原因并修复它所花费的时间比重新安装还要多,这就是为什么重新安装在技术支持上是一个相当普通的“解决方法”。关键的问题在于,“你是否想找出是什么错误,或者你是否只想让它工作正常?”答案取决于问这个问题的用户情况,发生问题的频繁次数和重新安装的软件的实用性。
当Windows第一次被安装时它将在启动目录的根目录上创建一个名为SYSTEM.1ST的文件。这是Windows第一次启动时创建的个简单的system.dat文件。你所应该做的就是将这个文件放到windows目录(在dos模式下)并将它的名字改为SYSTEM.DAT。然后重新启动。然后你就可以得到安装时第一次启动的windows。
因为很多.INI,.DLL和其他文件的改变,这种方法的成功机率大概只超过50%。比如当装IE4.0后系统和注册表将有一个彻底的改变。我们的system.1st文件虽然包含了一个Dll文件的参考,但它可能更新或者改变版本号。
这里就是几个在注册表出故障的时候恢复它的工具和方法。你的数据可能会安全恢复,但是不管你用什么方法,除了重新格式化硬盘,最好的方法就是做好系统注册表的备份工作。