October 9, 2008

Repairing Corrupted Registry

2002 ေလာက္တုန္းက မိတ္ေဆြတစ္ေယာက္ျဖစ္တဲ့ ကိုမ်ိဳးသက္ေက်ာ္ (အခု ဆူးေလနားက PRO Center မွာ) နဲ႔ စကားေျပာရင္း XP မွာ Registry ေတြ ပ်က္သြားရင္ Restore ျပန္လုပ္လို႔ရရင္ ေကာင္းမွာပဲလို႔ ေျပာခဲ့ၾကဖူးတယ္။ အဲဒီအခ်ိန္တုန္းက သူေရာ ကၽြန္ေတာ္ေရာ Windows 98 ရဲ႕ Registry ကိုပဲ ျပန္ Restore လုပ္တတ္ၾကေသးတာပါ။ ကၽြန္ေတာ့္အထင္က XP မွာလည္း Default Registry ဖိုင္ တစ္ခု ပါကိုပါရမယ္ေပါ့။ Registry ေၾကာင့္ Windows မတက္ေတာ့ရင္ အဲဒီဖိုင္ကုိ ျပန္ Restore လုပ္ရင္ရမွာပဲဆိုၿပီး သူ႔ကို ေျပာခဲ့ဖူးတယ္။ သူကေတာ့ “ဟ အဲဒီဖိုင္က ဘယ္နားမွာမွန္းမွ မသိဘဲနဲ႔ ငါတို႔က ဘယ္လိုလုပ္ရမွာလဲ” လို႔ ျပန္ေျပာခဲ့ပါတယ္။ ဒါေပမဲ့ အဲဒီအခ်ိန္တုန္းက XP ရဲ႕ Registry ကို တျခား Third Party Tools ေတြသံုးၿပီး Restore/Backup လုပ္ႏိုင္ပါတယ္။ ကၽြန္ေတာ္တို႔လိုခ်င္တာက User က ကိုယ့္ဘာသာကိုယ္ လုပ္ထားတဲ့ Registry Backup ကို ျပန္ Restore မလုပ္ခ်င္ပါ။ XP မွာ ပါႏိုင္တဲ့ Default Registry Backup ကိုပဲ Restore လုပ္ၾကည့္ခ်င္တာကိုး။ ဘာေၾကာင့္လဲဆိုေတာ့ Normal User တစ္ေယာက္က သူ႔ Windows ရဲ႕ Registry ကို Backup လုပ္ထားတယ္ဆိုတာက ႀကံဳႏိုင္ခဲတဲ့ ကိစၥပါ။

အဲဒီအခ်ိန္တုန္းက MCSE ဆိုတာ ရိွမွန္းမသိေသး၊ 70-270 စာအုပ္မ်ိဳးေတြ ရိွမွန္းလည္း မသိေသးခင္ကေပါ့။ ေနာက္ပိုင္း ရန္ကုန္မွာေနၿပီး CompuTech မွာ A+ တက္တဲ့ကာလအတြင္းမွာ Microsoft ရဲ႕ Website ကို ဆရာက ညႊန္းလြန္းလို႔ ၀င္ၾကည့္မိပါတယ္။ အဲဒီလိုနဲ႔ အၿမဲတမ္းၾကည့္ျဖစ္ရင္း Microsoft မွာ TechNet ဆိုတဲ့ Site အခဲြရိွမွန္းသိခဲ့တယ္။ ဟ မိုက္လွခ်ည္လားေပါ့။ Windows Problem အားလံုးရဲ႕ Solution ေတြကို စုစည္းထားတာေလ။ Windows Problem တစ္ခုခုနဲ႔ႀကံဳရင္ အဲဒီ TechNet ကိုပဲ အားကိုးရတာပါ။ ဒါေပမဲ့ TechNet က Resources ေတာ္ေတာ္မ်ားမ်ားကို Login လုပ္မွ ၾကည့္ခြင့္ေပးတာ။ Register ကလည္း လူတိုင္း လုပ္လို႔မရဘူး။ Microsoft Certified ျဖစ္တဲ့သူေတြပဲ ရတာေလ။ အဲဒီလုိနဲ႔ တျဖည္းျဖည္း မ၀င္ျဖစ္ေတာ့ပါဘူး။

လြန္ခဲ့တဲ့ သံုးလေလာက္က ရန္ကုန္ေရာက္ေတာ့ Active ေခြဆိုင္မွာ ဟိုဟာဒီဟာေမႊရင္း Microsoft TechNet ဆိုၿပီး CD ႏွစ္ခ်ပ္တဲြေတြ႔တာနဲ႔ ေကာ္ၿပီကြဆိုၿပီး ၀ယ္လာခဲ့တယ္။ သူက Reference သေဘာမ်ိဳးဆုိေတာ့ Windows Error တစ္ခုခုတက္မွပဲ အဲဒီထဲမွာ Solution ရွာရပါတယ္။ အခုထိလည္း မက္မက္ေမာေမာ သံုးေနတုန္းပါပဲ။ အမ်ားအားျဖင့္ BSOD Error ေတြနဲ႔ ႀကံဳရင္ သူ႔ကိုပဲ ဖြင့္ၾကည့္ရပါတယ္။

ဒီလိုနဲ႔ သံုးလာခဲ့တာ ဟိုတစ္ေလာက TechNet ကို ေမႊရင္း အရမ္းသိခ်င္ခဲ့ဖူးတဲ့ Windows XP ရဲ႕ Registry ကို Backup လုပ္ထားတာမရိွပဲ Restore လုပ္နည္းကို ေတြ႔ခဲ့ပါတယ္။ Windows က အစပိုင္းေလးတက္လာၿပီး ဘာမွမေပၚေတာ့တဲ့ ကြန္ပ်ဴတာတစ္လံုးကို စမ္းၾကည့္တာ ေအာင္ျမင္စြာနဲ႔ Windows ျပန္တက္လာပါတယ္။ ေအာက္မွာ ျပထားတဲ့ Error မ်ိဳးေတြ တက္လာရင္းလည္း လုပ္ႏိုင္ပါတယ္။

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.


Recovery Console ကေနပဲ Registry ကို Restore လုပ္ရပါတယ္။ XP ေခြထည့္၊ အဲဒီကေန Boot တက္၊ Recovery Console ကို ဖြင့္၊ Console တက္လာရင္ ဒီ Command ေတြ ရိုက္ထည့္ပါ။

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

Restart လုပ္လိုက္ရင္ ပ်က္ေနတဲ့ Windows ျပန္တက္လာပါလိမ့္မယ္။ မၿပီးေသးပါဘူး။ အခုအဆင့္ထိက XP မွာပါတဲ့ Default Registry ဖိုင္ေတြကို ျပန္ၿပီး Restore လုပ္ရံုပဲ ရိွပါေသးတယ္။ Original Registry ဆိုေတာ့ ကၽြန္ေတာ္တို႔ တင္ထားတဲ့ Program ေတြ Driver ေတြကို မသိေသးပါဘူး။ ဒါေၾကာင့္ Registry ထဲကို ေနာက္ဆံုးလုပ္ထားတဲ့ System Restore ထဲက Registry ေတြ ျပန္ထည့္လိုက္မွ ရမွာပါ။
ပီစီကို Safe Mode နဲ႔ တက္ပါ။ ၿပီးရင္ C:\ ေအာက္မွာရိွတဲ့ System Volume Information ကို ဖြင့္ပါ။ ဒီအတိုင္းဆို ဖြင့္မရပါဘူး။ သူက Super Hidden လုပ္ထားတာပါ။ ဒါေၾကာင့္ cmd မွာ ဒါမ်ိဳးရိုက္ပါ။

cacls "driveletter:\System Volume Information" /E /G username:F

ဒါဆုိရင္ SVI Folder ပြင့္သြားပါၿပီ။ သူ႔ကိုဖြင့္လိုက္ရင္ _restore{D86480E3-73EF-47BC-A0EB-A81BE6EE3ED8} လိုမ်ိဳး Folder ေတြ ေတာ္ေတာ္မ်ားမ်ား ေတြ႔ရပါလိမ့္မယ္။ အဲဒီ Folder ေတြထဲမွာ subfolder တစ္ခု RP (Restore Point) နဲ႔စတဲ့ subfolder ပါတဲ့ Folder ကို ဖြင့္ပါ။ အဲဒီထဲက Snapshot ကို ဖြင့္ပါ။ ဥပမာ

C:\System Volume Information\_restore{D86480E3-73EF-47BC-A0EB-A81BE6EE3ED8}\RP1
\Snapshot

Snapshot Folder ထဲကေန ေအာက္မွာျပထားတဲ့ File ေေတြကို C:\Windows\Tmp ထဲကို ေကာ္ပီပြားပါ။
_REGISTRY_USER_.DEFAULT
_REGISTRY_MACHINE_SECURITY
_REGISTRY_MACHINE_SOFTWARE
_REGISTRY_MACHINE_SYSTEM
_REGISTRY_MACHINE_SAM

ျပီးရင္ အဲဒီဖိုင္ေတြကို ေအာက္မွာျပထားတဲ့အတိုင္း နာမည္ေျပာင္းလိုက္ပါ။

Rename _REGISTRY_USER_.DEFAULT to DEFAULT
Rename _REGISTRY_MACHINE_SECURITY to SECURITY
Rename _REGISTRY_MACHINE_SOFTWARE to SOFTWARE
Rename _REGISTRY_MACHINE_SYSTEM to SYSTEM
Rename _REGISTRY_MACHINE_SAM to SAM

ေနာက္ဆံုးအဆင့္အေနနဲ႔ Restart လုပ္ၿပီး Recovery Console ထဲ ၀င္ပါ။ ၿပီးရင္ ေအာက္မွာျပထားတဲ့ Command ေတြ ရိုက္ထည့္လိုက္ပါ။ သေဘာတရားက ရိွၿပီးသား Registry ေတြကို ဖ်က္ၿပီး အေစာက Restore Point ကေန ယူထားတဲ့ Registry ေတြကို ျပန္ထည့္တာပါ။

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

ၿပီးပါၿပီ။

No comments:

Post a Comment