eRIZ's weblog

PHP, webdesign, Linux, Windows i inne, bo nie samym chlebem człowiek żyje

Rejestr Windows – backup z prawdziwego zdarzenia

Niektórzy z nas (mam nadzieję, że wszyscy, a nie tylko „niektórzy”) korzystają z jakichś narzędzi do backupowania. Linux jest osobną sprawą, tam jak coś pada, to po update pakietów, etc. Pomimo to, da się jednak jakoś edytować konfigurację z np. LiveCD i ulubionym edytorem w powłoce. Wszystko da się zrobić.

Pod Windows 2k/XP sprawa jest trochę bardziej skomplikowana. Czemu?

studium przypadku

Ano to, że rejestr jest przechowywany w plikach binarnych. Owszem, można wyeksportować całość do plików reg i łudzić się, że można spać spokojnie. Jednak, to tylko pozory; geek może się o tym przekonać przy pierwszym padzie. I wtedy pozostaje wyłącznie konsola odzyskiwania, można sobie co najwyżej opluć twarz, że nie ma backupu. Fakt, czasem pliki reg są przydatne, aby naprawić coś, co sami unieruchomiliśmy – i nie wyszło, ale co w sytuacji, gdy ani konsola odzyskiwania nie pomaga, o padach systemu przy samym bootowaniu – BSOD-zie zamiast ekranu logowania nie wspomnę?

Dlaczego wspomniana przeze mnie konsola odzyskiwania jest zwykle bezużyteczna? No ok, można się zalogować, włączać/wyłączać usługi, czy sterowniki, ale co w sytuacji, gdy i to nie pomaga? Producent radzi, aby próbować odzyskiwać bazę ustawień z \windows\repair, ale zafunduje to nam spory powrót do przeszłości i pechowy użytkownik czuje się wtedy jakby świeżo przeinstalował system. Ale tak nie musi być. ;)

Swoją drogą, gdyby użytkownik odrobinę częściej używał wyszukiwarki i wyciągał wnioski, skończyłoby się stwierdzenie, że jak coś nawala, to trzeba od razu robić format, a z polskiego na nasze – przeinstalowywać system. Najczęściej można go po prostu odtworzyć, tylko trzeba się najpierw do wszystkiego przygotować. ;)

teoria

W skrócie – rejestr Windows NT (NT, 2000, XP, itp), to tak naprawdę kilka plików będących odpowiednikami głównych gałęzi rejestru (zaczynają się od HKEY_) – czyli zbiorów bez rozszerzenia znajdujących się w katalogu \windows\system32\config. Zwykle mają łącznie poniżej 50 MiB (software, system, security i kilka innych). Swego rodzaju wyjątkiem jest klucz HKEY_CURRENT_USER – jest dołączany dynamicznie w zależności od zalogowanego użytkownika. Sam plik znajduje się w katalogu domowym użytkownika (\Documents and Settings\user\ntuser.dat). Jeśli katalog domowy jest przetrzymywany na osobnej partycji, awaria nie stanowi problemu – większość ustawień osobistych pozostaje nienaruszona. Gorzej, jeśli na partycji systemowej, ale to zupełnie inna sytuacja. ;)

Kolejną wadą plików reg jest problem z odtwarzaniem niektórych kluczy – niektóre mogą być używane, brak uprawnień, etc, etc. Jeśli chodzi o skopiowanie plików binarnych, to jest problem – są one cały czas używane i tak zwyczajnie nie da się ich skopiować. Pozostaje w zasadzie tylko konsola odzyskiwania, czy jakiś program bazujący na VSS (Volume Shadow Service). Ale jest prostsze rozwiązanie, nie wymagające aż tak wielkiego zachodu. :)

Jeśli w tej chwili stoisz przed systemem, który nie może wstać nawet w trybie awaryjnym, a nie masz kopii zapasowej rejestru – doprowadź Windows do stanu, w którym chciałbyś go zachować, potem wróć do czytania tego tekstu. Możesz również spróbować odzyskać stary backup rejestru, który znajduje się w katalogu \Windows\repair.

kopia rejestru 1:1 – czyli ERUNT

Widocznie autor ERUNT cierpiał z tego samego powodu, co ja. Przyznam, że aplikacja jest genialna w swojej prostocie i w 90% przypadków jest w stanie uchronić peceta przed tzw. „formatem”. Twórca zasłynął ze stworzenia aplikacji NT Registry Optimizer, który jest dołączony do paczki. ;)

Tak naprawdę, na ERUNT wpadłem po tym, że NTREGOPT podczas optymalizacji zawsze tworzy pliki zapasowe rejestru. Pomyślałem, że może autor jeszcze inaczej spożytkował algorytm dostępu do plików rejestru i nie przeliczyłem się. ;)

Program zawiera właściwie wszystko, co jest do backupów potrzebne – narzędzie do ręcznego wykonywania kopii (erunt), i automat (autoback). Pierwszy oferuje interfejs do wyklikania, ale do regularnego użytkowania raczej się nie przyda – po pewnym czasie stanie się to nudne, żmudne i się po prostu odechce. ;) A nam zależy przecież na działającej i aktualnej kopii.

Dlatego niech kopia zapasowa tworzy się raz dziennie, podczas startu systemu. A co tam. ;) Dodatkową zaletą narzędzia autoback jest fakt, iż pilnuje ono, aby katalog z kopiami nie rozrósł się za bardzo zapychając miejsce na dysku. Nie posiada interfejsu graficznego, odpalany jest wyłącznie z linii komend. Wystarczy sobie wygospodarować katalog na dysku przeznaczony na kopie, dodać do autostartu skrót i spać spokojnie. ;) Komenda może wyglądać np. tak:

  1. C:\system\erunt\AUTOBACK.EXE G:\etc\reg\#date# sysreg curuser otherusers /days:7 /alwayscreate

Klasycznie – ścieżka do programu, a następnie:

  1. G:\etc\reg\#date#

    Jest to ścieżka na przechowywane kopie rejestru. #date# oznacza, iż podfolder będzie nazwany wg daty.

  2. sysreg curuser otherusers

    Oznaczają one odpowiednio: rejestr systemowy, bieżącego użytkownika, pozostałych użytkowników.

  3. /days:7

    Maksymalny wiek kopii. Backupy starsze niż N dni zostaną skasowane.

  4. /alwayscreate

    Jeśli kopia na np. dany dzień już istnieje, tworzy ją ponownie.

Sporządzanie kopii zapasowej trwa dość krótko, poniżej 10 sekund dla rejestru o wadze ~37,5 MiB.

odzyskiwanie

Rejestr można odzyskać identycznie jak w podlinkowanym przeze mnie artykule – wszystkie pliki są w katalogu kopii. Autor ERUNT poszedł o krok dalej i wraz z kopią dodaje programik erdnt, który umożliwia odzyskanie plików nawet z poziomu DOS-a. Daje to spore możliwości – jeśli nie posiadamy dostępu do płyty instalacyjnej z Windows, można wystartować jakiegoś starocia z obsługą NTFS i przekopiować rejestr wklepując dosłownie jedną komendę (po wcześniejszym przejściu do odpowiedniego katalogu przez np. cd /d D:\kopia, rzecz jasna ;)).

LiveCD z Linuksem też może być, do wyboru, do koloru. Mamy nawet wygenerowany plik, który uwalnia nas od żmudnego wklepywania wielu komend w konsoli odzyskiwania – wystarczy wówczas batch erdnt.con i restart komputera.

epilog

Systemy Microsoftu wyrobiły sobie opinię, że jeśli coś się zepsuje – format C: albo kompletna reinstalacja systemu. Tak nie musi być, wystarczy kopia rejestru. Nawet bardzo stara – zwykle wystarczy przywrócić tylko plik system, który zawiera ustawienia dla kluczowych elementów systemu, typu usługi, czy sterowniki. Najważniejsze – ustawienia aplikacji – powinny zostać nienaruszone.

Teraz, to i BSOD niestraszny. ;)

4 komentarze

dopisz swój :: trackback :: RSS z komentarzami

RSS z komentarzami :: trackback

Skomentuj

Możesz używać znaczników XHTML. Dozwolone są następujące tagi: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Wszystkie komentarze przechodzą przez moderację oraz filtry antyspamowe. Nie zostanie opublikowany komentarz, jeśli:

  • Jego treść obraża kogokolwiek.
  • W treści znajdują się wulgaryzmy i słownictwo ogólnie uznane za nieprzyzwoite.
  • Mam wątpliwości co do autora wpisu (Wszelkie anonimy są kasowane - niezależnie od zawartości - wpisz prawdziwy e-mail. Jeśli usunąłem, Twoim zdaniem, komentarz niesłusznie - daj znać). Zdarza się, iż sprawdzam kim jest komentujący.
  • Zawiera jakąkolwiek formę reklamy.

Szufladka