如果注册表已经损坏并导致 Windows XP 无法启动,应该如何恢复?
概要
本文介绍如何恢复由于注册表损坏而无法启动的 Windows XP 系统。该步骤不能保证一定会将系统完全恢复为以前的状态;但是使用该步骤,您应当可以恢复数据。
警告:如果您的计算机上的操作系统是由 OEM 安装的,请不要使用本文中介绍的步骤。OEM 安装中的系统配置单元会创建以前不存在的密码和用户帐户。如果您使用本文中介绍的步骤,可能无法重新登录到故障恢复控制台,因而无法还原最初的注册表配置单元。
您可以修复 Windows XP 中损坏的注册表。注册表文件损坏可能导致多种不同的错误信息。要了解与注册表问题相关的错误信息,请参阅 Microsoft 知识库中的相关文章。
本文假定一般恢复方法失败,只能使用故障恢复控制台访问系统,别无它法。如果有自动系统故障恢复 (ASR) 备份,则该备份是进行恢复的首选方案。Microsoft 建议您在尝试本文介绍的步骤之前先使用 ASR 备份。
注意:请务必将 5 个注册表配置单元全部替换掉。如果您只替换一两个配置单元,则可能导致潜在问题,这是因为软件和硬件的设置可能位于注册表中的多个位置。
如果反复出现与注册表损坏相关的问题,Microsoft 建议您获得以下文章中介绍的修复程序并加以安装:
318159 (http://support.microsoft.com/kb/318159/) 修复和恢复 Windows XP 中损坏的注册表
Windows XP Service Pack 1 中也包含此更新。
更多信息
当您尝试启动或重新启动基于 Windows XP 的计算机时,可能会收到下列错误信息之一:
Windows XP could not start because the following file is missing or corrupt:\WINDOWS\SYSTEM32\CONFIG\SYSTEM
Windows XP could not start because the following file is missing or corrupt:\WINDOWS\SYSTEM32\CONFIG\SOFTWARE
Stop:c0000218 {Registry File Failure} The registry cannot load the hive (file):\SystemRoot\System32\Config\SOFTWARE or its log or alternate
System error:Lsass.exe
When trying to update a password the return status indicates that the value provided as the current password is not correct.
本文介绍的步骤使用故障恢复控制台和系统恢复。本文还以特定顺序列出所有必需的步骤,以确保该过程完整执行。完成此过程之后,系统将恢复到与出现问题之前的系统非常接近的状态。如果您曾运行 NTBackup 并完成了系统状态备份,则无需执行第二部分和第三部分中的步骤。可以直接跳到第四部分。
第一部分
在第一部分中,您依次执行下列操作:启动故障恢复控制台,创建临时文件夹,将现有注册表文件备份到新位置,删除当前位置的注册表文件,然后将注册表文件从修复文件夹复制到 System32\Config 文件夹中。完成此过程之后将创建一个注册表,您可以使用此注册表启动 Windows XP。此注册表是在 Windows XP 最初安装过程中创建并保存的,因此,安装过程结束后进行的一切更改和设置都将丢失。
要完成第一部分,请按照下列步骤操作: 1. 将 Windows XP 启动盘插入软盘驱动器,或将 Windows XP 安装光盘插入 CD-ROM 驱动器,然后重新启动计算机。
按照提示,单击以选中从 CD-ROM 驱动器启动计算机所需的所有选项。
2. 出现“欢迎使用安装程序”屏幕时,按 R 键启动故障恢复控制台。
3. 如果您使用的是双启动或多启动计算机,请从故障恢复控制台中选择要访问的安装。
4. 按照提示,键入管理员密码。如果管理员密码为空,则按 Enter 键。
5. 在故障恢复控制台的命令提示符处,键入下面几行命令,并在每行之后按 Enter 键:
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\sam 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
6. 键入 exit 退出故障恢复控制台。计算机将重新启动。
注意:此过程假定 Windows XP 安装在 C:\Windows 文件夹中。如果 Windows XP 安装在另一个位置,请务必将 C:\Windows 更改为相应的 windows_folder。
如果您具有对另一台计算机的访问权限,为了节省时间,您可以在第 2 步中复制该文本,然后创建一个文本文件(例如“Regcopy1.txt”)。要创建此文件,请在启动故障恢复控制台时运行以下命令:
batch regcopy1.txt
使用故障恢复控制台中的 batch 命令,您可以按顺序处理文本文件中的所有命令。在使用 batch 命令时,无需手动键入多个命令。
第二部分
要完成本节中介绍的步骤,您必须以管理员或管理用户(在管理员组中拥有帐户的用户)的身份登录。如果您使用的是 Windows XP Home Edition,则可以用管理用户的身份登录。如果以管理员身份登录,则必须先以安全模式启动 Windows XP Home Edition。要以安全模式启动 Windows XP Home Edition 计算机,请按照下列步骤操作。
注意:在继续之前请打印这些说明。以安全模式重新启动计算机之后,您将无法查看这些说明。如果您使用的是 NTFS 文件系统,还应打印知识库文章 KB309531 中的说明。第 7 步中引用了该文章。 1. 单击开始,单击关机(或单击关闭计算机),单击重新启动,然后单击确定(或单击重新启动)。
2. 按 F8 键。
在配置为启动到多个操作系统的计算机上,您可以在看到启动菜单时按 F8 键。
3. 使用箭头键选择相应的安全模式选项,然后按 Enter 键。
4. 如果使用的是双启动或多启动系统,请使用箭头键选择要访问的安装,然后按 Enter 键。
在第二部分中,您将使用系统恢复从注册表文件的备份位置复制这些文件。此文件夹在故障恢复控制台中不可用,而且在正常使用过程中通常不可见。在开始此过程之前,您必须更改多个设置以使该文件夹可见: 1. 启动 Windows 资源管理器。
2. 在工具菜单上,单击文件夹选项。
3. 单击查看选项卡。
4. 在“隐藏文件和文件夹”下,单击选中“显示所有文件和文件夹”,然后单击清除“隐藏受保护的操作系统文件(推荐)”复选框。
5. 在出现对话框并要求您确认是否显示这些文件时,单击“是”。
6. 双击 Windows XP 安装所在的驱动器以显示文件夹列表。一定要单击正确的驱动器。
7. 打开 System Volume Information 文件夹。因为此文件夹被设置为超级隐藏文件夹,所以此文件夹不可用并显示为灰色。
注意:此文件夹包含一个或多个 _restore {GUID} 文件夹,例如“_restore{87BD3667-3246-476B-923F-F86E30B3E7F8}”。
注意:您可能会收到以下错误信息:
C:\System Volume Information is not accessible.Access is denied.
如果收到此信息,请查看以下 Microsoft 知识库文章以获得对此文件夹的访问并继续执行后续步骤:
309531 (http://support.microsoft.com/kb/309531/) 如何获得对 System Volume Information 文件夹的访问
8. 打开一个过去创建的文件夹。您可能需要单击查看菜单上的详细信息,以查看这些文件夹的创建时间。此文件夹中可能有一个或多个名称以“RPx”开头的文件夹。这些是还原点。
9. 打开其中一个文件夹并找到 Snapshot 子文件夹。以下路径是 Snapshot 文件夹路径的示例:
C:\System Volume Information\_restore{D86480E3-73EF-47BC-A0EB-A81BE6EE3ED8}\RP1\Snapshot
10. 从 Snapshot 文件夹中,将下列文件复制到 C:\Windows\Tmp 文件夹: • _REGISTRY_USER_.DEFAULT
• _REGISTRY_MACHINE_SECURITY
• _REGISTRY_MACHINE_SOFTWARE
• _REGISTRY_MACHINE_SYSTEM
• _REGISTRY_MACHINE_SAM
11. 如下所示,重命名 C:\Windows\Tmp 文件夹中的文件: • 将 _REGISTRY_USER_.DEFAULT 重命名为 DEFAULT
• 将 _REGISTRY_MACHINE_SECURITY 重命名为 SECURITY
• 将 _REGISTRY_MACHINE_SOFTWARE 重命名为 SOFTWARE
• 将 _REGISTRY_MACHINE_SYSTEM 重命名为 SYSTEM
• 将 _REGISTRY_MACHINE_SAM 重命名为 SAM
这些文件是系统恢复产生的备份注册表文件。因为您使用的是安装程序创建的注册表文件,所以该注册表不知道这些还原点的存在和可用。系统将在 System Volume Information 下新建一个具有新 GUID 的文件夹,这就创建了一个还原点,该还原点包括在第一部分中复制的注册表文件的副本。所以,一定不能使用最新的文件夹,特别是在该文件夹的时间戳与当前时间相同的情况下。
当前系统配置无法识别以前的还原点。您必须拥有来自以前还原点的以前的注册表副本,才能使以前的还原点再次可用。
移动复制到 C:\Windows 文件夹中的 Tmp 文件夹中的注册表文件,一定要保证这些文件在故障恢复控制台中可用。您必须用这些文件替换 C:\Windows\System32\Config 文件夹中的当前注册表文件。默认情况下,故障恢复控制台的文件夹访问权限是有限的,不能从 System Volume 文件夹复制文件。
注意:本节中介绍的步骤假定您正在运行使用 FAT32 文件系统的计算机。
有关如何访问使用 NTFS 文件系统的 System Volume Information 文件夹的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
309531 (http://support.microsoft.com/kb/309531/) 如何获得对 System Volume Information 文件夹的访问
第三部分
在第三部分中,您将删除现有的注册表文件,然后将系统恢复注册表文件复制到 C:\Windows\System32\Config 文件夹: 1. 启动故障恢复控制台(或使用 Windows 98 启动盘)。
2. 在命令提示符处,键入下列命令行,并在键入每行之后按 Enter 键:
del c:\windows\system32\config\sam
del c:\windows\system32\config\security
del c:\windows\system32\config\software
del c:\windows\system32\config\default
del c:\windows\system32\config\system
copy c:\windows\tmp\software c:\windows\system32\config\software
copy c:\windows\tmp\system c:\windows\system32\config\system
copy c:\windows\tmp\sam c:\windows\system32\config\sam
copy c:\windows\tmp\security c:\windows\system32\config\security
copy c:\windows\tmp\default c:\windows\system32\config\default
注意:为了便于阅读,以上某些命令行可能经过换行处理。
3. 键入 exit 退出故障恢复控制台。您的计算机将重新启动。
注意:此过程假定 Windows XP 安装在 C:\Windows 文件夹中。如果 Windows XP 安装在另一个位置,请务必将 C:\Windows 更改为相应的 windows_folder。
如果您具有对另一台计算机的访问权限,为了节省时间,您可以在第 2 步中复制该文本,然后创建一个文本文件(例如“Regcopy1.txt”)。
第四部分
1. 单击开始,然后单击程序。
2. 单击附件,然后单击系统工具。
3. 单击系统恢复,然后单击“恢复我的计算机到一个较早的时间”。
参考
有关使用故障恢复控制台的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
307654 (http://support.microsoft.com/kb/307654/) 如何安装和使用 Windows XP 的故障恢复控制台
216417 (http://support.microsoft.com/kb/216417/) 如何安装 Windows 故障恢复控制台
240831 (http://support.microsoft.com/kb/240831/) 如何将文件从故障恢复控制台复制到可移动媒体
314058 (http://support.microsoft.com/kb/314058/) Windows XP 故障恢复控制台的说明
有关系统恢复的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
306084 (http://support.microsoft.com/kb/306084/) 如何在 Windows XP 中将操作系统还原为以前的状态
261716 (http://support.microsoft.com/kb/261716/) 系统恢复在还原过程中删除了文件