
Cikkünkhöz mellékeltünk egy szövegfájlt, amit a Windows helyreállító konzolban a "batch regrestore.txt" paranccsal futtatva visszaállítja a regisztrációs adatbázis előző állapotát, feltételezve, hogy a c:\windows könyvtárban található az operációs rendszer. Ha ettől eltérő helyen, akkor módosítani kell a fájlban szereplő elérési utakat.
Miért végső megoldásként? Azért mert a registry menthető a Windows beépített lehetőségeivel is:
- Windows 2000 és XP alatt egyaránt rendelkezésre áll a Kellékek > Rendszereszközök > Biztonsági másolat (Accessories > System Tools > Backup) segédprogram, ahol a "Rendszer állapota" ("System state") jelölőnégyzet bekapcsolásával menthető a komplett adatbázis.
- Windows XP alatt megtalálható a System Restore szolgáltatás, ami szintén lehetővé teszi a biztonsági másolat készítést.
- Szintén elérhető XP és 2000 alatt is az Automatikus rendszer helyreállítás (Automated System Recovery - ASR) funkció.
Tehát elsősorban a fenti módszerek alkalmazását javasoljuk, de nem biztos, hogy eredményre vezetnek. További probléma, hogy mindhárom egy korábbi - de nem feltétlenül az utolsó - rendszerállapotot tárolja, ami óhatatlanul adatvesztést eredményezhet. Annak ellenére, hogy a regisztrációs adatbázis talán a Windows egyik legfontosabb része és mélyen meghatározza az egész gép működését, azért ugyanúgy fájlokból áll, mint bármilyen más adatbázis - és nem is sokból. Mi lehet a probléma az alkotóelemekkel? A szokásos hibaforrásokon (vírustámadás, merevlemez sérülés, stb.) kívül rendszeresen előfordulhat a következő helyzet:
A Windows-ból való kilépés során a registry merevlemezre írása az utolsó momentum, utána kapja meg az alaplap az ATX tápegység lekapcsolásához szükséges jelet. Egyes winchesterek olyan saját belső cache-el rendelkeznek, amikben ilyenkor még tárolódik némi adat. Az operációs rendszer ezt már nem érzékeli és kikapcsolja a gépet, a cache-ben lévő adatok pedig elvesznek - tehát elveszik a registry egy része is. Következő rendszerindításnál csak egy gyorsan pörgő felirat látható a képernyő alsó sorában még a karakteres fázisban. Ezután vagy nem történik semmi, vagy kapunk egy hibaüzenetet, amely a %systemroot%\system32\config mappa valamely állományának olvashatatlanságát jelzi.
Lényeg, hogy többé nem indítható el a rendszer még csökkentett módban sem. Ez egy tipikus példa a regisztrációs adatbázis sérülésére. Ilyenkor lehet elővenni a biztonsági másolatot és a merevlemezt áthelyezni egy másik gépbe, majd felülírni a sérült fájlokat. Mi van, ha nem áll rendelkezésre másik gép? Alkalmazhatjuk a következő módszert:
Indítsuk el a gépet a helyreállító konzol (Recovery Console) üzemmódban (lásd a kapcsolódó cikkeket) és jelentkezzünk be rendszergazdaként.
A registry lényegi része a fent említett %systemroot%\system32\config mappában található. Tegyük fel, hogy a %systemroot% a c:\Windows mappát takarja, tehát itt található az operációs rendszer. Tallózzunk el ide és hozzunk létre egy átmeneti könyvtárat tmp néven:
Másoljuk át a registry-t az átmeneti mappába, ezzel készítettünk egy másolatot a sérült fájlokról:
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
Töröljük az eredeti fájlokat:
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
Használjuk ki azt a lehetőséget, hogy a Windows az utolsó helyes konfigurációt lementi a %systemroot%\repair mappába. Másoljuk innen át a registry-t az eredeti helyére.
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
Indítsuk újra a számítógépet, immár normál üzemmódba. Jó eséllyel megoldottuk a problémát, bár száz százalékos garancia nincs egyik módszer hatékonyságára sem.
A fenti parancsokat elhelyezhetjük egy szövegfájlban és a batch paranccsal futtathatjuk, például:
Ha nem jön be ez a módszer, nem kell kétségbe esni van még egy lehetőség, de csak Windows XP alatt alkalmazható, mert a System Restore szolgáltatásra épül. Önmagában a System Restore csak akkor indítható, ha fut az operációs rendszer. Most pont arról van szó, hogy nem lehet elindítani, de ennek ellenére használhatjuk a szolgáltatás által készített fájlokat. Ehhez szükség van némi előkészületre még a rendszer sérülése előtt (hozzáférési jogot kell adni magunknak), ha nem tettük meg, akkor tegyük át a merevlemezt egy másik gépbe, második eszközként:
Kapcsoljuk be a rejtett fájlok megjelenítését, hogy láthatóvá tegyük a rendszerköteten lévő "System Volume Information" mappát. Alapértelmezésben még megnyitni sem tudjuk, mert csak a "System" fióknak van hozzáférési joga. Egy valamit viszont tudunk: jogot adni magunknak. Kattintsunk rá a jobboldali egérgombbal és lépjünk a "Tulajdonságok" ("Properties") menüre, majd a megjelenő ablakban a "Biztonság" ("Security") oldalra. A "Hozzáadás" ("Add") gombbal vegyük fel a "Rendszergazdák" ("Administrators") csoportot a jogosultak közé és kapcsoljuk be a "Teljes hozzáférés" ("Full Control") jelölőnégyzetet.
Most már be tudunk lépni a mappába, írni és olvasni is tudjuk. Keressük meg a _restore{GUID} (pl.:" _restore{892A53E8-E873-459F-9B27-9F052AD2BE31}" nevű almappák közül dátum szerint a legújabbat. Lépjünk be és járjunk el ugyanígy az RPxx mappákkal is. Ha megvan a legfrissebb, lépjünk be a snapshot mappájába. Találunk néhány _REGISTRY kezdetű fájlt. Ezek alkotják a System Restore által mentett registry-t. Az előző módszerrel egyezően mentsük el a %systemroot%\system32\config mappában a registry fájlokat, majd az eredetit töröljük. Másoljuk át a snapshot mappából az alábbi fájlokat rögtön átnevezve a %systemroot%\system32\config mappába:
copy _registry_machine_software c:\windows\system32\config\software
copy _registry_machine_system c:\windows\system32\config\system
copy _registry_machine_sam c:\windows\system32\config\sam
copy _registry_machine_security c:\windows\system32\config\security
copy _registry_user_.default c:\windows\system32\config\default
Utolsó lépésként indítsuk újra a számítógépet.