Migracja systemu z dysku na dysk z użyciem SystemRescueCD

Dzięki stałemu procesowi zwiększania pojemności twardych dysków przez producentów cena pojedynczego megabajta danych sukcesywnie spada. Nic więc dziwnego, że od czasu do czasu po prostu warto wymienić główny lub dokupić dodatkowy dysk, szybszy, wydajniejszy, bardziej pojemny. Problemem, który pojawia się przy takich okazjach jest najczęściej kwestia przeniesienia systemu operacyjnego na nowy dysk. Danych nie można tak po prostu przekopiować i liczyć, że wszystko będzie w porządku, z kolei komercyjne programy służące do tego celu są drogie lub nie chcą współpracować z danym systemem plików. Na szczęście dzięki istnieniu oprogramowania takiego jak SystemRescueCD użytkownik nie jest skazany na wydawanie dodatkowych pieniędzy.

SystemRescueCD to klasyczna dystrybucja Linuksa typu LiveCD, czyli uruchamiająca się bezpośrednio z płyty. Mniej klasyczne są jej zastosowania - jest to bowiem głównie zestaw darmowego oprogramowania służącego do partycjonowania, klonowania i robienia obrazów partycji oraz dysków, naprawiania błędów, odzyskiwania danych, ale także wielu innych czynności pomocniczych jak np. testowania pamięci RAM. Autorzy postarali się także, by nie było problemów z wykorzystaniem sieci, oraz by ich dzieło mogło z powodzeniem być używane również do obsługi innych systemów - w szczególności przydatna wydaje się być włączona pełna obsługa windowsowego systemu plików NTFS.

Głównie na tym ostatnim skupimy się poniżej, ale oczywiście opisane wskazówki i kroki postępowania można w większości przypadków bez problemów przenieść na dowolny inny system plików obsługiwany przez SystemRescueCD.

Przed przystąpieniem do całej operacji podłączmy wpierw do komputera nowy dysk i upewnijmy się, że jest on poprawnie wykrywany przez BIOS. W BIOSie ustawmy przy okazji, aby komputer w pierwszej kolejności startował z płyty, a następnie do napędu włóżmy przygotowaną płytkę z SystemRescueCD.

Uruchomienie SystemRescueCD jest bardzo proste - na ekranie startowym wystarczy wcisnąć ENTER lub poczekać kilkanaście sekund. Domyślne ustawienia będą wystarczające w większości przypadków. Warto w tym miejscu wspomnieć o kilku interesujących możliwościach:

  • Zamiast startować system możemy uruchomić jeden z dodatkowych programów, są to m.in.:

memtest - testowanie pamięci RAM,
ntpass - program umożliwiający zmianę hasła dostępu dowolnego konta (w tym konta administratora) w Windowsie,
freedos - darmowa wersja systemu kombatybilnego z MS-DOS,
aida - program do diagnostyki sprzętu.

  • Do wyboru mamy trzy jądra: standardowe o nazwie rescuecd (uruchamiane domyślnie), alternatywne o nazwie vmlinuz2 (zalecane, jeśli standardowe nie chce się załadować) oraz rescue64 (zalecane do 64 bitowych systemów). Opcje podajemy po nazwie jądra, np. rescuecd opcja1 opcja2 [ENTER]. Do ciekawszych opcji należą:

docache - powoduje załadowanie całego LiveCD do RAM komputera, wymaga około 350 MB RAM, umożliwia odmontowanie napędu z SystemRescueCD i wykorzystanie go np. jako nagrywarki do archiwizacji tworzonych obrazów,
dostartx - automatyczne uruchomienie środowiska graficznego przy starcie dystrybucji, niektóre programy jak np. GParted czy Firefox działają tylko w środowisku graficznym,
dolvm2 - uruchomienie systemu z obsługą LVM,
doscsi - uruchomienie systemu z obsługą SCSI,
dodhcp - próbuje pobrać adres IP karty sieciowej z serwera DHCP.

Oczywiście to tylko przykładowe programy dodatkowe oraz opcje startowe systemu. Pełną listę można znaleźć bezpośrednio na stronie podręcznika dystrybucji oraz ekranach startowych systemu, wywoływanych F1-F7.

Po uruchomieniu systemu możemy przystąpić do działania.

1. Rozpoczynamy od utworzenia partycji na nowym dysku. Można do tego wykorzystać dowolne dostępne narzędzie: fdisk, sfdisk, cfdisk czy np. graficzny gparted. Ważne, aby utworzyć główna partycję nie mniejszą niż dotychczasowa i ustawić jej flagę bootable (aktywna, bootowalna). Pozostałe partycje wg. uznania. Dla dalszych rozważań przyjęliśmy, że partycje obecnego (starego) dysku to /dev/sda1 (główna) i /dev/sda5 (druga, logiczna), a nowego odpowiednio /dev/sdb1 (nowa główna) i /dev/sdb5 (nowa dodatkowa, logiczna).

2. Do zrobienia obrazu partycji systemowej /dev/sda1 wykorzystamy program partimage. Program ten potrzebuje miejsca, gdzie będzie mógł zapisać stworzony obraz - montujemy więc odpowiednią partycję.

Jeśli chcemy wykorzystać starą rozszerzoną partycję NTFS to robimy po prostu:

mkdir /mnt/sda5
ntfs-3g /dev/sda5 /mnt/sda5

W przypadku chęci wykorzystania nowego dysku utworzoną wcześniej partycję trzeba najpierw przygotować, a potem zamontować:

mkfs.ntfs /dev/sdb5
mkdir /mnt/sdb5
ntfs-3g /dev/sdb5 /mnt/sdb5

Następnie uruchamiamy partimage. W trybie tekstowym wpisujemy po prostu partimage [ENTER], a w trybie graficznym klikamy odpowiednią opcję. Po uruchomieniu programu zaznaczamy partycję sda1, a w pole “image file to create/use” wpisujemy np. /dev/sdb5/obraz, sprawdzamy czy poniżej zaznaczona jest opcja “save partition…” i wciskamy F5, aby przejść do kolejnego ekranu. Tutaj będziemy mogli wybrać czy tworzony obraz ma być kompresowany, a jeśli tak to jakim programem (gzip jest szybszy, ale mniej wydajny niż bzip2 i na odwrót)., czy obraz ma być dzielony na pliki, a jeśli tak to o jakiej wielkości (domyślnie 2 GB), wreszcie czy przed utworzeniem obrazu ma być dokonane sprawdzenie partycji oraz czy chcemy podać opis obrazu. Wybrane opcje zatwierdzamy kolejnym F5. Gdy operacja tworzenia obrazu już się rozpocznie można ją w każdej chwili przerwać (klawisz *), zatrzymać (CTRL + S) i wznowić (CTRL + Q).

3. Po utworzeniu obrazu po raz kolejny uruchamiamy program partimage i postępujemy podobnie jak poprzednio, tylko tym razem zaznaczamy opcję “restore partition…”, do nazwy pliku z obrazem dodajemy .000. Oczywiście nie zaznaczamy tym razem partycji źródłowej sda1, a docelową sdb1.

Po ukończeniu kroków 2 i 3 mamy utworzony obraz systemu, który możemy sobie nagrać na płytkę jako kopię zapasową lub po prostu skasować jeśli nie jest nam więcej potrzebny. Na głównej partycji nowego dysku mamy też już nasz dotychczasowy system operacyjny.

4. Należy jeszcze zadbać o to, aby system poprawnie wystartował. W tym celu kopiujemy pierwsze 446 bajtów MBR z dysku starego na nowy wpisując polecenie:

dd if=/dev/sda of=/dev/sdb bs=446 count=1

Kolejne 64 bajty zawierające tablicę partycji starego dysku nas nie interesują, już wcześniej utworzyliśmy bowiem nowe partycje.

5. Ostatnią operacją, którą należy wykonać w przypadku NTFS jest wyrównanie wielkości volume size partycji do jej device size. Jeśli utworzyliśmy na nowym dysku partycję główną o wielkości np. 20 GB, a przywracana partycja miała wielkość 10 GB, to bez wykonania tego kroku Windows będzie widział tylko te 10 GB. Wydajemy polecenie:

ntfsresize /dev/sdb1

Program ten jest częścią pakietu ntfsprogs i powinien po krótkiej chwili podać nam dokładnie aktualne wielkości volume size i device size partycji, oraz zaproponować powiększenie volume size do device size, na co się oczywiście warto zgodzić. Krok ten jest zbędny jeśli systemem plików nie jest NTFS lub jeśli partycja główna na nowym dysku jest identycznej wielkości.

6. Po tych wszystkich operacjach podłączamy nowy dysk w miejsce starego, stary możemy odłączyć i restartujemy komputer nie zapominając wyjąć płyty z SystemRescueCD.

Opisana operacja ma jedną podstawową wadę - wymaga utworzenia pliku z obrazem gdzieś na dysku. Niestety partimage nie umożliwia w prosty sposób kopiowania danych bezpośrednio z partycji na partycję co sprawia, że potrzebujemy pośrednika.

Na szczęście w przypadku NTFS jeśli tylko obraz partycji po operacji nie jest nam potrzebny możemy go nie robić. Opisane wyżej punkty 2 i 3 można wówczas zastąpić prostym wywołaniem:

ntfsclone --overwrite /dev/sdb1 /dev/sda1

Po zakończonej operacji przystępujemy do kroku nr 4.

Uwaga dodatkowa: zawsze przy robieniu backupów, kopii partycji, etc. warto się upewnić, że system, w którym wykonujemy te operacje, ma poprawnie ustawioną datę i godzinę. Najprościej sprawdzić to wpisując w konsoli:

date

Jeśli data lub godzina się nie zgadza to ją poprawiamy, np. tak:

date 1205162007

Powyższe polecenie spowoduje ustawienie daty i godziny na 16:20, 5 grudnia 2007 roku. Oczywiście jeśli mamy dostęp do sieci można sprobować wykorzystać automatyczne ustawienie daty np. z wykorzystaniem ntpdate.



Brak komentarzy.

Skomentuj...

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

Wpisz kod z obrazka zawierajacy 5 znakow sposrod 0..9 i A..F, i wcisnij OK.

  

Jesli nie mozesz odczytac tresci obrazka wygeneruj ponownie kod