Polska Strona Freesco

Przywracanie partycji Windows z poziomu Linuksa

Jest ogromna ilość sposobów na wykonywanie kopii i backupów systemu Windows, najczęściej przy użyciu specjalnych aplikacji, które z reguły są kosztowne.
Jest jednak sposób bardzo prosty…

Podczas Zjazdu Freesco Bartłomiej Czerwiński przedstawił sposób przywracania partycji Windows z poziomu Linuksa.
Wstęp
Poniższy tekst jest opracowaniem wykorzystującym ten właśnie wykład. W przypadku autora wykładu opracowany system służył do zarządzania pracowniami informatycznymi przeznaczonymi do celów edukacyjnych. Ponieważ studenci muszą mieć pełnie uprawnień w celu wykonywania ćwiczeń, więc nie ma mowy o ochronie systemu przez ograniczenie uprawnień użytkownika, co oznacza konieczność częstego przywracania systemu wraz z zainstalowanymi aplikacjami.
Można zresztą taki sposób wykorzystać również w przypadku stacji logujących się do domeny lub pojedynczych stacji roboczych. Warto tu wspomnieć, że nie można tego sposobu uznać za backup systemu, ponieważ w razie awarii dysku niestety stracimy także obraz. Dlatego w celu backupowania należałoby wykonane obrazy skopiować np. na serwer.
Od czego zacząć?
Najpierw instalujemy system Windows wraz ze wszystkimi potrzebnymi aplikacjami. Jeśli to pojedyncza stacja robocza, to warto zrobić osobna partycję na dokumenty i odpowiedni skonfigurować system, aby z niej korzystał. Należy pamiętać, że na Linuksa musimy zostawić tyle wolnego miejsca ile ma partycja systemowa Windows plus oczywiście miejsce potrzebne na zainstalowanie Linuksa.
W instalacji ćwiczeniowej wykorzystałem dysk 40 GB. Partycję systemową Windows założyłem w wielkości 7 GB, 10 przeznaczyłem na partycję z dokumentami użytkownika, zaś pozostałe miejsce zostało przeznaczone na Linuksa. Po zainstalowaniu i skonfigurowaniu Windows, można zacząć instalowanie Linuksa.
Dystrybucja, jaką wybierzemy, jest tu bez większego znaczenia. Jeśli na dysku ma być również system Linux do pracy, to sugeruję np. Mandrivę. Jeśli ma to być system wykorzystywany jedynie jako rescue, to raczej Slackware w minimalnej konfiguracji. Można też wykorzystać NND, ale procedura instalacji jest bardziej skomplikowana. Linuksa instalujemy na jednej dużej partycji (dodając ewentualnie swap, jeśli jest potrzebny).
Po zainstalowaniu Linuksa wykonamy kopię partycji z systemem Windows. Jest to bardzo prosta czynność, która potrwa od 10 do 15 minut. Po zalogowaniu się jako root wpisujemy polecenie:
cat /dev/hda1 > /root/xp.img
W tym przykładzie zrzucamy partycję systemową na dysku IDE do pliku xp.img w katalogu roota. Może to być dowolna inna ścieżka, jednak ważne, by ją zapamiętać.
Jak to się robi?
Jesteśmy zatem w sytuacji. gdy system Windows został zrzucony do pliku będącego obrazem partycji. Obraz ten ma taka wielkość jak partycja systemowa, nie został skompresowany (choć to byłoby możliwe), ponieważ wykonanie obrazu i przywracanie systemu bez kompresowania obrazu jest dużo szybsze.
Teraz już możemy sobie przygotować skrypty, które zautomatyzują czynności. Jest to istotne, ponieważ dzięki temu obecność administratora przy komputerach nie jest potrzebna. W Linuksie do pliku rc.local (może on być w /etc lub w /etc/init.d, lub tez w /etc/rc.d) dopiszemy kilka linijek.
cd /root
wget http://nasz.serwer/pracownia
chmod 755 pracownia
/root/pracownia

W naszym przykładzie skrypt rozpoczynający procedury nazywa się „pracownia”. Ten skrypt należy umieścić na serwerze i poleceniem wget ściągać na komputer. O samym skrypcie później napiszę dokładniej.
Teraz jeszcze na serwerze umieścimy kolejny skrypt, który będzie wykonywał wyznaczoną przez administratora procedurę. Nie popisaliśmy się fantazją i ten ostatni nosi po prostu nazwę „skrypt” Jego podstawowa zawartość służąca do przywrócenia systemu będzie wyglądać tak:
#!/bin/sh
echo „Zaczynam wykonywanie skryptu odzyskiwania systemu”
cat /root/xp.img > /dev/hda1
echo „Zakończono przywracanie systemu Windows”
echo „Zaczekaj na restart komputera”
reboot
Oczywiście w menedżerze startu domyślnym systemem jest Windows, bo w przeciwnym wypadku komputer wpadłby w pętlę.
W przypadku, gdy właśnie zaktualizowaliśmy oprogramowanie na komputerach i chcielibyśmy zrobić nowy obraz Windows, to zmieniamy nasz skrypt na serwerze:
#!/bin/sh
echo „Zaczynam wykonywanie obrazu systemu”
rm -fr /root/xp.img
cat dev/hda1 > /root/xp.img
echo „Zakończono wykonywanie obrazu Windows”
echo „Zaczekaj na restart komputera”
reboot
Oczywiście na wszelki wypadek możemy mieć jeszcze trzecią wersję tego skryptu:
#!/bin/sh
echo „Nie wykonuję, żadnych czynności”
echo „Zaczekaj na restart komputera”
reboot
Wystarczy nam jeden skrypt i w nim niepotrzebne linie zostaną zahaszowane (#). Wówczas tylko wystarczy usunąć znak # sprzed odpowiedniego fragmentu, aby uruchomić odpowiednią czynność.
Podsumowanie
No zakończenie umieszczamy na serwerze skrypt o nazwie pracownia. Należy go zmienić wpisując prawidłowy adres serwera ze skryptem (lub IP) oraz ewentualnie ścieżkę do pliku rc.local. Przedstawiony sposób może służyć do przywracania Windows na wielu różnych komputerach, w tym celu zamiast „skrypt” w pliku „pracownia” umieścimy odwołania do np. „skrypt1″ skrypt2” itd.
Odpowiednie pliki umieścimy też na serwerze. Dzięki temu możemy dokonać przywrócenia dowolnego systemu na dowolnym komputerze nie ruszając się z miejsca, a nawet zdalnie. Ponieważ jedyną czynność jaką w tym celu trzeba wykonać, to uruchomienie komputera, naciśnięcie „strzałki w dół” i potwierdzenia enterem. To potrafi na pewno wykonać nawet przysłowiowa już pani Zosia z sekretariatu.
Dodatkowe uwagi
Zamiast dowolnego Linuksa można w tym celu wykorzystać np. NND. Będzie się to tylko różniło sposobem instalacji. Można po zainstalowaniu Windows i zostawieniu odpowiedniej ilości wolnego miejsca zainstalować NND wg podanego na stronie NND sposobu. Ja podczas pisania tego tekstu wykorzystałem instalację NND w ten sposób, że najpierw wykonałem instalację z dużą partycją /boot, następnie po ponownym uruchomieniu z płyty, przekopiowałem /boot na partycję drugą, zmieniłem wpisy w fstab, dodałem wpisy dotyczące bootowania Windows i po zainstalowaniu systemu Windows jeszcze raz uruchomiłem komputer z płyty, żeby wykonać lilo. Oczywiście nie wolno zapomnieć, że to Windows ma być
systemem uruchamiającym się domyślnie.

Autor: W. Trąmpczyński (Maciek) na podstawie wykładu Bartka Czerwińskiego na VII Zjeździe Freesco w Tuchomiu.


Dodaj komentarz