Przenoszenie systemu operacyjnego z maszyny wirtualnej na fizyczny komputer
W zeszłym tygodniu na mój warsztat trafiły dwa laptopy. Jeden zupełnie nowy, zakupiony na potrzeby programu diagnostycznego dla ciężarówek. Drugi zaś nieco już zużyty. Wymieniony program diagnostyczny jest rozpowadzany na zasadzie gotowego środowiska znajdującego się na maszynie wirtualnej VMware. Mój zleceniodawca poprosił mnie abym oczyścił ten stary laptop i generalnie przystosował go do tego aby działa na nim tylko ten program, nic więcej. Starszy laptop to Dell Inspiron 3542 z i3 czwartej generacji, 4GB ramu oraz tradycjnym dyskiem talerzowym o pojemności 500GB. Szału nie ma, na VMware ten laptop jest za słaby. Sprawdziłem, że sama maszyna ma przydzielone 3 GB pamięci operacyjnej, najwyraźniej tyle wymaga.
Do głowy przyszedł mi pomysł: a co jeśli by wyciągnąć obraz dysku z maszyny. Na początku straciłem trochę czasu, na szukanie sprawdzonego narzędzia, które musiało zginąć pod czas uszkodzenia przez mnie LVM-u na serwerze plików w warsztacie. No cóż stwierdziłem, że jak nie mam obrazu, to go zrobie. Niestety po odszukaniu na gryzoniu programu w odpowiedniej wersji, nie byłem wstanie utworzyć obrazu płyty gdyż ADK dla Windows 8.1, nie jest już dostępne. Microsoft radzi użycie ADK dla Windows 10, ten program nie chce jednak tego przyjąć. Utworzone na dysku usb oparte na Linuksie środowisko, nie miało w ogóle funkcji utworzenia kopii zapasowej dysku. Więc zacząłem szukać jakiejś alternatywy, najlepiej open source i do głowy wpadła mi Clonezilla - to dystrybucja GNU/Linux oparta na Debianie służąca tworzeniu kopii zapasowych partycji jak i całych dysków.
Obrazy przeznaczone dla i386 oraz amd64 znajdziemy na stronie projektu. Tu warto zaznaczyć, że najlepiej jest wybrać jako mirror OSDN. Dla celów testowych przedstawie przypadek, przeniesienia Windows 7 Starter 32 bit na netbooka Acer Aspire One. Aby przenieść system z maszyny wirtualnej dobrze jest operować udziałem Samba, ponieważ łatwiej jest utworzyć obraz dysku maszyny wirtualnej na udziale, a Clonezilla jest wstanie utworzyć backup dysku na udziale sieciowym. Tak wygląda maszyna wirtualna, z której będziemy przenosić nasz system:
Tworzenie obrazu
Pracę rozpoczynamy od załadowania do napędu maszyny wirtualnej obrazu płyty z Clonezillą, następnie uruchomiamy ją z niego. Z menu programu rozruchowego wybieramy pierwszą, domyślną opcję.
Po uruchomieniu zostaniemy zapytani o ustawienia lokalizacyjne takiej jak język (Clonezilla jest po polsku).
oraz układ klawiatury (pozostawiamy go domyślnie).
Nastepnie uruchamiamy już właściwy proces wybierając opcje Start_Clonezilla.
Program może pracować w wielu trybach, jednak nas będzie interesować wyłącznie praca z obrazami dlatego w następnym oknie wybieramy opcje device-image.
Tak jak już wspomniałem na wstępnie, jako miejsca docelowego na obraz wykorzystamy udział Samba. Tworząc obrazy na fizycznych maszynach możemy użyć pendrive-a lub dysku zewnetrznego, jednak w naszym przypadku potrzeba by nieco więcej zachodu aby przekazać maszynie dysk zewnętrzny, a wydajność mogłaby być niezbyt zadowalająca. Dlatego też teraz wybieramy opcje samba_server.
Przechodząc przez kolejne okna będziemy musieli podać wszystkie parametry potrzebne do połączenia z udziałem. Jednak najpierw musimy dokonać konfiguracji sieci środowiska Clonezilla. Możemy pobrać ją z serwera DHCP, więc pozostawiamy domyślną opcję. Po tej konfiguracji przyszła pora na podanie parametrów do połączenia się z udziałem.
Podajemy adres ip serwera Samba.
Następnie domenę (jeśli domena nie jest ustawiona na serwerze, wybieramy przycisk "Anuluj").
Teraz podajemy nazwę użytkownika mającego uprawnienia do zapisu na docelowym udziale.
Nazwę udziału (uwaga), podajemy po slashu - jak by to był folder, ale to nazwa udziału.
Po podaniu ostatniej informacji, zostaniemy poproszeni o wybór wersji protokołu SMB. Mój serwer to Samba postawiona na Debian 10, więc pozostawiam tę wartość domyślnie.
Kolejną jest "tryb bezpieczestwa", jeśli udział nie stoi na jakimś archaiczym Windowsie pozostawiamy auto.
Po zatwierdzeniu tej opcji, zostanie nam wyświetlony monit o potrzebie podania hasła do udziału. Polecenie pokazane w oknie jest tylko poglądowe i nie ma nic wspólnego z właściwym poleceniem montującym udział.
Po wybraniu "OK" zostanie zwrócony znak zachęty proszący o hasło aby podmontować udział. Każdy kto kiedyś montował udział SMB za pomocą wiersza poleceń będzie znać ten symbol.
Po prawidłowym podłączeniu udziału, Clonezilla zwróci nam tabelę z informacjami na temat udziału (dostępna przestrzeń dysku, punkt montowania).
Po zamontowaniu miejsca docelowego w /home/partimag, pora wybrać tryb pracy programu Clonezilla. Do wyboru będziemy mieli tryb Beginner - początkujący lub Expert. Jako iż jest to moja druga w ogóle styczność z tym narzędziem, sam wybrałem tryb dla początkujących.
Po uruchomieniu programu w trybie dla początkujących, musimy określić sposób tworzenia kopii. Clonezilla może tworzyć kopie całych dysków lub poszczególnych partycji. Dla rozpatrywanego przypadku najlepszym rozwiązaniem jest zapisanie całego dysku. Instalacja najnowszych systemów Windows jest zazwyczaj rozbijana na kilka partycji. Zatem wybieramy opcje savedisk.
W następnym oknie zostaniemy poproszeni o podanie nazwy dla katalogu, w którym przechowywany będzie obraz. To dobry i jedyny moment, aby go opisać.
Po utworzeniu odpowiedniego katalogu, pora na wybór dysku źródłowego. Zaznaczamy dysk z listy, przechodzimy na przycisk "OK" i klikamy Enter.
W kolejnym pytaniu program za sugeruje man sprawdzenie i ewenualną naprawę systemu plików. Jednak dla systemów takich jak NTFS jest to nie możliwe, więc wybieramy opcje -sfsck (pominięcie sprawdzenia systemu plików).
Domyślnie Clonezilla chce sprawdzić poprawność zapisanego obrazu. W tym przypadku zostawiam pełną dowolność. Ja, aby nie przedłużać tworzenia obrazu, czy zakończenia procesu pominąłem sprawdzanie obrazu.
Kolejne okno zawiera pytanie o szyforwanie obrazu, tutaj również pozostawiam dowolność, jednak jeśli tworzymy obraz zaszyfrowanego dysku, to sam obraz również dobrze jest zaszyfrować.
Przed wykonaniem obrazu należy zdefiniować jeszcze czynność wykonywaną po ukończeniu tego procesu. Co ma zrobić Clonezilla. Może przejść do wiersza poleceń, wyłączyć lub zrestartować komputer. Może również przjeść do menu, z którego wybierzemy inną czynność. Jest to przydatne kiedy chcemy utworzyć obrazy większej ilości dysków, ponieważ będziem mogli uruchomić program od pewnego momentu, pomijąjąc część konfiguracji. Tutaj też możemy wybrać dowolnie. Ja wybrałem opcję -choose uruchamiającą owe menu.
Teraz kiedy wszystkie ustawienia zostały przyjęte. Clonezilla wyświetli polecenie, którego możemy użyć korzystając z wiersza poleceń, aby utworzyć obraz ponownie bez przechodzenia przez te wszystkie okna. Klikamy "Enter" w celu kontynuowania działania programu.
Po przetworzeniu kilku informacji o dysku źródłowym, program wyświetli informacje o tym, że zostanie utworzony obraz źródłowego dysku oraz pytanie czy chcemy kontynuować. Potwierdzamy odpowiadając na pytanie y i klikając "Enter".
W tym momencie rozpoczyna pracę już właściwy program Partclone znany między innymi z projektu FOG (Free Open-source Ghost - ma podobne zastosowanie co Clonezilla, jednak jest bardziej ukierunkowny na wykorzystanie sieciowe oraz masowe. Przydaje się przy reinstalacji systemów operacyjnych w szkolnych salach komputerowych).
O zakończonym procesie tworzenia obrazu zostaniemy poinformowani. Pozostało nam tak naprawdę tylko kliknąć klawisz "Enter". Po tym nastąpi akcja, którą wcześniej wybraliśmy.
Przywracanie obrazu
Początkowe fazy przywracania obrazu, są identyczne jak przy jego tworzeniu. Po zamontowaniu miejsca, w którym składowane są obrazy, podczas wybierania trybu wybieramy restoredisk, przywracając tym samym stan zapisany w obrazie na dysk.
Program przeszuka teraz magazyn w poszukiwaniu obrazów i zostaną one wyświetlone w menu do wyboru. Naszym zadanie jest wybrać obraz jaki ma zostać przywrócony na tym komputerze.
Dla wybranego obrazu musimy teraz wskazać docelowy dysk. Środowisko Clonezilli przeszuka komputer pod względem dysków i zostaną one wyświetlone w menu do wyboru.
Teraz program zapyta o to czy sprawdzić obraz przed przywróceniem. Jeśli jest to dla nas ważne, możemy go sprawdzić. Jednak jeśli testujemy Clonezillę. Możemy sobie darować, stracimy tylko czas.
Tak jak i w przypadku tworzenia obrazu, należy wskazać czynność jaka zostanie wykonana po przywróceniu.
Następnie zostanie nam zwrócone polecenie użyte do przywrócenia, mamy szanse je zapisać, aby zaoszczędzić te kilka chwil spędzonych na pytaniach programu przywracając ten obraz ponownie w tych samych okolicznościach.
Po naciśnięciu klawisza "Enter", narzędzie zapyta nas dwukrotnie, czy chcemy kontynuować przywracanie obrazu, ponieważ ta czynność nadpisze wszelkie dane znajdujące się na dysku.
Po potwierdzeniu, rozpoczyna się już właściwa procedura przywracania realizowana przez program Partclone. Po jej zakończniu zostanie wykonana czynność wybrana przed przywracaniem.
Poniżej znajduje się zdjęcie przedstawiające pulpit laptopa, na którego system został przeniesiony z maszyny wirtualnej. Powyższe zdjęcie również pochodzi z procedury przywracania systemu na tym sprzęcie. Jak widać system się uruchomił, pozostało tylko zainstalować sterowniki i można działać. Przenoszenie powiodło się zarówno w moim jak i testowym przypadku. Póki co czekam na feedback czy program działa.
Część rysunków w podczas przywracania to zrzuty ekranu z maszyny wirtualnej, dlatego iż były prostsze do zarejestrowania niż robienie zdjęć błyszczącej matrycy.
~xf0r3m