注册表损坏引起的windows启动问题

我的电脑最近遇到了一个有趣的问题,我不知道如何解决它。简单来说,就是每当系统启动的时候,总会收到如下错误信息:“因以下文件的损坏或丢失,Windows无法启动:\WINDOWS\SYSTEM32\CONFIG\SYSTEM”。你能帮我解决这个问题吗?


我已经见过这个问题好几次了,它是由于注册表损坏引起的。解决方法可能会有些复杂并且费功夫,但通常是可以解决的。修复该问题的方法在标准的Windows XP版本(非OEM的预安装版本)上工作最佳。虽然我也曾经在OEM安装的版本中修复过注册表,但这里演示的步骤是否能够在某些自定义安装的Windows XP中正常工作就不敢肯定了。


虽然这个错误信息指示有系统文件损坏或者丢失,但它并不意味着损坏的注册表仅限于系统组件。注册表包括五个主要部分——SAM、Security、Software、Default和System——你需要修改全部这五个部分,现在让我们一个一个搞定它们。


首先,你需要用Windows XP光盘引导至欢迎使用安装程序屏幕,然后按下R键启动“恢复控制台”。接下来会有消息提示你选择要登录到的Windows版本。你会看到如下的目录列表:

1:C:\WINDOWS(如果你的系统中只运行有一个Windows XP拷贝),输入1并回车。如果你运行有多个Windows XP,那么输入要修复的操作系统序号,并使用Administrator的密码登录。

修复过程包括创建一个临时文件夹,把当前的注册表配置单元复制到临时文件夹中,然后在当前的注册表中删除老的配置单元,最后修复注册表。以下是整个大概的过程:在“恢复控制台”命令行提示下,输入:
md tmp 

并回车以创建临时文件夹。然后输入下列每一行,在每行末尾按回车:
copy c:\windows\system32\config\system c:\windows\tmp\system.bak
copy c:\windows\system32\config\software c:\windows\tmp\software.bak
copy c:\windows\system32\config\sam c:\windows\tmp\sam.bak
copy c:\windows\system32\config\security c:\windows\tmp\security.bak 
copy c:\windows\system32\config\default c:\windows\tmp\default.bak

delete c:\windows\system32\config\system
delete c:\windows\system32\config\software
delete c:\windows\system32\config\sam
delete c:\windows\system32\config\security
delete c:\windows\system32\config\ default

copy c:\windows\repair\system c:\windows\system32\config\system
copy c:\windows\repair\software c:\windows\system32\config\software
copy c:\windows\repair\sa c:\windows\system32\config\sam
copy c:\windows\repair\security c:\windows\system32\config\security
copy c:\windows\repair\default c:\windows\system32\config\default

退出故障恢复控制台,计算机将会自动重启(这次不要再启动到故障恢复控制台了)。现在,你可以把系统还原到注册表损坏之前。为了达到这一目的,你需要找到一个还原点。在System Volume Information文件夹中,你会看到一组开头为RPx的文件夹,这些文件夹包含了系统还原点。你需要打开这些文件夹中的一个来找到快照子文件夹。以下路径是我的Windows XP系统中指向一个快照文件夹的示例:“C:\system volume information\_restore{98539E66-D85A-41E7-ACFD-AE0F6CD9DE9}\RP586\snapshot”。系统中也有其它RPx文件夹,但是我只使用了一个最高x值的,因为在它里面有系统最新的硬件安装和注册表配置单元。

你会在快照文件夹中找到下列文件:

_REGISTRY_MACHINE_SOFTWARE
_REGISTRY_MACHINE_SAM
_REGISTRY_MACHINE_SYSTEM
_REGISTRY_MACHINE_SECURITY
_REGISTRY_USER_DEFAULT

把这些文件复制到早先你创建的Windows\tmp文件夹中。并把文件重命名如下:

重命名_REGISTRY_MACHINE_SOFTWARE为SOFTWARE
重命名_REGISTRY_MACHINE_SAM为SAM
重命名_REGISTRY_MACHINE_SYSTEM为SYSTEM
重命名_REGISTRY_MACHINE_SECURITY为SECURITY
重命名_REGISTRY_USER_DEFAULT为DEFAULT

从故障恢复控制台中打开命令行,并输入以下行,记着在每行末尾按回车键:
del c:\windows\system32\config\software
del c:\windows\system32\config\sam
del c:\windows\system32\config\system
del c:\windows\system32\config\ security
del c:\windows\system32\config\ default 
copy c:\windows\tmp\software c:\windows\system32\config\software
copy c:\windows\tmp\sam c:\windows\system32\config\sam
copy c:\windows\tmp\system c:\windows\system32\config\system
copy c:\windows\tmp\security c:\windows\system32\config\security
copy c:\windows\tmp\default c:\windows\system32\config\default

在命令行中输入exit退出故障恢复控制台,系统将会自动重启。假如所有修复的注册表单元都没有问题,那么系统会正常启动并返回到接近于问题发生前的状态。

分享到