在Windows XP中恢復正確的註冊表 
 

Windows XP,註冊表修復,Windows XP無法啟動,因為下列文件可能丟失或者發生錯誤:\WINDOWS\SYSTEM32\CONFIG\SYSTEM


--------------------------------------------------------------------------------
 

朋友上個月買了台預裝Windows XP的品牌機,經過使用,對Windows XP的穩定性讚不絕口。可是問題馬上就來了,一天在啟動
電腦的時候看見了如下的錯誤信息:「Windows XP無法啟動,因為下列文件可能丟失或者發生錯誤:\WINDOWS\SYSTEM32
\CONFIG\SYSTEM」。不能正常進入Windows,只能進入安全模式。經過判斷可能是註冊表損壞造成無法正確開機,因此在啟
動時按F8,並選擇了恢復最後一次正確配置,無效。進行系統還原,無效。於是向我求救。


經過仔細分析以及查閱資料,最終成功的解決了這個問題,現在把這個過程完整的寫出來,希望在你遇到類似的錯誤時能夠對
你有所幫助。


以下的操作全部需要你有Administrators組的權限,系統盤的文件系統是NTFS,並且你沒有關閉對系統盤的系統還原。


首先需要進入故障控制台,為了安全起見,我先建立一個臨時資料夾,並且把註冊表文件備份到新建的資料夾中。方法是使用
Windows XP的光碟啟動電腦,然後選擇修復,就可以進入故障控制台(Recovery Console),然後直接在命令行狀態下輸入下列
命令:


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


上面的所有操作都是假設Windows XP安裝在C:\WINDOWS 資料夾下的,如果你的系統安裝在其它資料夾下,那麼直接替換成你
的安裝資料夾就可以了。


如果願意,你也可以直接把控制台安裝進電腦中,這樣如果要進入故障控制台就不用在使用光碟啟動電腦了,只要在啟動時按
F8,就有進入故障控制台的選項。安裝的方法是,把Windows XP的光碟放入光碟中,假設你的光碟盤符是F,那麼在執行中輸
入「F:\i386\winnt32 /cmdcons」Enter鍵後就會自動安裝故障控制台了。


之後需要從系統自己備份的系統檔案中恢復註冊表。我先在啟動時按F8進入了安全模式,然後打開了我的電腦,在「工具-資
料夾選項」的「察看」選擇項下,取消對「隱藏受保護的系統檔案」的選擇,並且選中「顯示隱藏文件和資料夾」。然後點擊
確定。


雙擊打開安裝了Windows XP的硬碟分區(我這裡打開的就是C碟),找到System Volume Information這個資料夾,並打開它。這
個資料夾平時是看不到的,你應該可以看見多個類似「_restore{87BD3667-3246-476B-923F-F86E30B3E7F8}」的資料夾。


根據那幾個資料夾的創建日期,選擇一個在系統完全正常時創建的資料夾,這資料夾中的文件就是系統還原的備份檔案。我選
擇了_restore{87BD3667-3246-476B-923F-F86E30B3E7F8}這個資料夾,並且從_restore{87BD3667-3246-476B-923F-F86E30B3E7F8}
\RP1\Snapshot 下,複製了一些文件到我最初建立的臨時資料夾(C:\WINDOWS\TMP)中,這些文件是:


_REGISTRY_USER_.DEFAULT
_REGISTRY_MACHINE_SECURITY
_REGISTRY_MACHINE_SOFTWARE
_REGISTRY_MACHINE_SYSTEM
_REGISTRY_MACHINE_SAM


這些文件就是系統還原功能備份的註冊表文件,我們的目的就是用這些文件替換C:\Windows\System32\Config資料夾下的同名檔
案。而由於在控制台模式下,我們對文件和資料夾的操作收到限制,因而不得不採取這樣的方法。
接下來重啟動電腦,繼續進入故障控制台,刪除當前的註冊表文件,並恢復到之前的正確狀態去。


在控制台下,依次輸入下列命令:


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\_registry_machine_software c:\windows\system32\config\software
Copy c:\windows\tmp\_registry_machine_system c:\windows\system32\config\system
Copy c:\windows\tmp\_registry_machine_sam c:\windows\system32\config\sam 
Copy c:\windows\tmp\_registry_machine_security c:\windows\system32\config\security 
Copy c:\windows\tmp\_registry_user_.default c:\windows\system32\config\default


到這裡,大部分的準備工作就完成了,這之後只要通過安全模式啟動電腦,並且執行系統還原,選擇合適的還原點,就一切完
成了。


在這裡還有一點要主意的,就是System Volume Information資料夾,你可能沒有合適的權限打開它,如果是這樣,那麼可以試試
用下面的方法解決:


對於Windows XP Professional,首先在「資料夾選項-察看」中禁用簡單文件共享,然後在System Volume Information資料夾上點
擊滑鼠右鍵,選擇「屬性」,在「安全」選擇項下,點擊「新增」,然後輸入你當前登錄的用戶的用戶名,點擊確定。然後你
就能打開那個資料夾了。


對於Windows XP Home,在執行中輸入「CMD」然後Enter鍵,打開命令提示號視窗,進入到系統盤的根目錄下,例如C:\ ,然
後直接輸入cacls " C:\System Volume Information" /E /G .com.cn:F ,之後按Enter鍵。在這裡的「.com.cn「是你當前使用的用戶名。
之後你就可以訪問被拒絕的資料夾了。而如果你要恢復到被拒絕的狀態,只需要輸入cacls " C:\System Volume Information" /E /R 
.com.cn就可以了。