Własna partycja recovery
10.07.2015 | aktual.: 13.07.2015 16:49
Bardzo często kupując komputer z preinstalowanym systemem, producent dorzuca do niego mnóstwo zbędnego oprogramowania, a co gorsza również do tzw. recovery. Jakby tego było mało, użytkownik nie ma kontroli nad tym co się w nich znajduje, nie są skompresowane (lub słabo) i zwykle rozbite na bardzo wiele partycji.
Poniższy poradnik kieruję do zaawansowanych użytkowników, którzy wolą to zrobić po swojemu, wydajniej i czyściej, a przede wszystkim mając pełną kontrolę nad zawartością takiej partycji. Ze względu na edycję tablicy partycji i tablicy systemu plików, zalecam wykonać kopię ważnych danych, ponieważ „gdyby coś poszło nie tak” użytkownik może bezpowrotnie wszystko stracić.
Zanim jednak przystąpisz do holokaustu rozwiązań producenta, powinieneś:
[list] [item]Mieć świadomość, że wszystko co napisałem zadziała na płycie głównej z BIOSem i tablicy partycji MBR na docelowym nośniku. Wyłącznie na desktopach i laptopach na x86/x64. Z GPT zapewne też, ale nie wiem jak zachowa się Windows na UEFI, więc asekuracyjnie podałem przetestowaną konfigurację.[/item] [item]Wiedzieć jak spacyfikować Secure Boot, którego bezpieczeństwo jest mitologią (moja prywatna opinia, niepoparta dowodami), a który niepotrzebnie utrudnia bootowanie innych OS‑ów. Między innymi dlatego odpadają tablety.[/item] [item]Wiedzieć jak odczytać klucz do Windows jeśli nie posiadasz fizycznego nośnika (instalacyjnego, nie z recovery). Jeśli na obudowie komputera nie ma przyklejonej nalepki z kodem aktywacyjnym, będziesz musiał posłużyć się programami do odczytania ich z systemu operacyjnego lub SLIC (RWEverything ), ewentualnie do skopiowania certyfikatu (ABR /ATM ). Czasami klucze OEM są wspólne dla wszystkich preinstalowanych systemów z np. danej serii laptopa i mogą nie przejść autentykacji![/item] [item]Pobrać czysty obraz płyty systemu operacyjnego pasujący do twojego klucza. Sformatować cały dysk twardy (wystarczy tzw. szybkie formatowanie) i stworzyć co najmniej dwie partycje: na Windows i Linuksowy bootloader. Jeśli pierwsza, odpowiednio duża partycja będzie w NTFS, instalator Windowsa nie wymusi na użytkowniku wydzielenia kolejnej, w przeciwnym razie system z Redmond zagospodaruje dla siebie dwie pierwsze i potrzebna będzie trzecia. Na koniec oczywiście zainstalować Windows razem ze sterownikami i skonfigurować go pod siebie.
Jeśli nie masz takiej możliwości (np. Windows 8 with Bing) to przynajmniej oczyść go z crapware i zbędnych plików tymczasowych np. za pomocą CCleaner (koniecznie z dodatkowymi filtrami ). Zabootuj np. GParted i zmniejsz rozmiar istniejących jeśli ci nie odpowiada (akurat to, pokrywa pierwsza część poradnika).[/item] [item]Wiedzieć jak pobrać, nagrać i uruchomić distro linuksowe LiveCD/DVD/USB.[/item][/list]
Podsumowując, powinieneś przygotować w miarę możliwości czystą instalację aktywowanego systemu i co najmniej jedną dodatkową partycję na EXT4 dla zasobów bootloadera, obrazu ISO i przyszłego recovery.
Przykład:
partycja 1 NTFS 100MB bootloader Windowsa (w Win8 i nowszych, będzie większa) partycja 2 NTFS ~25GB Windows (dla XP co najmniej o połowę mniejsza) partycja 3 EXT4 ~10GB+ m.in. na recovery, dlatego EXT4, a nie np. chudszy EXT2
Partycjonowanie dysku twardego:
Jeśli masz już wszystko przygotowane uruchom np. Linux Mint 17.1 Rebecca. Oczywiście dystrybucja jakiej użyjesz może być niemal dowolna, jednak poradnik oparłem właśnie na niej, a więc wszystkie czynności i niuanse dotyczą tego konkretnego distro w tej konkretnej wersji.
1. Jeśli jeszcze nie utworzyłeś partycji na EXT4, zrób to teraz przechodząc do menu „Administration” i uruchom program GParted.
2. Jeśli brakuje ci miejsca na nową partycję, zmniejsz istniejącą, klikając na niej prawym przyciskiem myszy. Z menu wybierz opcję „Resize/Move” i w „New size (MiB)” podaj docelowy rozmiar.
W podobny sposób tworzy się nowe partycje z dotychczas nieprzydzielonego, wolnego miejsca, oznaczonego jako „unallocated”.
Koniecznie nadaj partycji etykietę („Label”) co ułatwi potem odnoszenie się do niej.
Pamiętaj aby potwierdzić modyfikacje klikając w ostatnią ikonkę ze strzałką, w przeciwnym razie GParted nie dokona żadnych zmian.
Instalacja alternatywnego Boot Loadera:
1. Uruchom manager plików i w panelu po lewej kliknij na partycję, którą przed chwilą utworzyłeś. Spowoduje to jej natychmiastowe zamontowanie. Miłośnicy linii poleceń pewnie zarzucą mi, że nie poleciłem zrobić tego w terminalu, ale uznałem że tak będzie prościej ludziom, którzy z Linuksem rzadko mają kontakt lub wręcz jest to ich pierwszy raz. I tej zasady będę się konsekwentnie trzymał gdzie tylko jest to możliwe.
2. Pingwin nie byłby jednak pingwinem gdyby pewnych rzeczy - no cóż - nie dało się wyklikać. ;) A więc otwórz Terminal i żmudnie wklepuj w nim:
sudo su
Dzięki temu od teraz wszystkie czynności wykonywane będą jako administrator. Oszczędzi ci to dodawania do każdej komendy sudo.
add-apt-repository ppa:n-muench/burg
Dodajesz w ten sposób repozytorium z oprogramowaniem. Kiedy zostaniesz zapytany o potwierdzenie, wciśnij Enter.
apt-get update
Zaktualizujesz w ten sposób listę oprogramowania znajdującą się w repozytoriach w systemie operacyjnym.
apt-get install burg
Potwierdź instalację wpisując „y”. Zainstaluje się BURG (ale jeszcze nie na dysku twardym), czyli boot loader w którym będziesz mógł wybrać jaki system chcesz uruchomić. Wszystkie trzy pytania zignoruj wciskając Esc.
3. Trzeba teraz podpiąć część systemu do wcześniej utworzonej partycji na dysku twardym, po to aby Linux myślał że to na nim pracuje, a nie z płyty/pendrive. Wpisz więc:
for wynalazek in bin dev etc lib lib64 opt proc sbin sys tmp usr var; do mkdir /media/mint/<etykieta>/$ wynalazek && mount --bind /$wynalazek /media/mint/<etykieta>/$wynalazek; done
Oczywiście w miejscu <etykieta> użyj etykiety zamontowanej partycji. Jeśli używasz wersji 32 bitowej, nie dopisuj lib64. Jeśli innej dystrybucji linuksowej niż tej którą poleciłem, wpisz wszystkie nazwy folderów w katalogu głównym z wyjątkiem boot.
4. Jeśli nie wystąpił żaden błąd, możesz się już przepiąć:
chroot /media/mint/<etykieta>
Również nie powinien pojawić się żaden błąd.
5. Na chwilę zostaw terminal i wróć do managera plików. Przejdź do "/etc/default/" i klikając na nim prawym przyciskiem myszy, wybierz opcję „Open as Root”. W ten sposób otworzy się nowe okno managera plików Nemo, ale z prawami administratora (co symbolizuje czerwona wstążka „Elevated Privileges”), dzięki czemu będziesz mógł edytować zawartość wszystkich katalogów i plików w systemie.
6. Dwukrotnie kliknij na plik "burg" dzięki czemu zostanie otworzony w edytorze tekstowym gedit.
7. Zwróć uwagę na linijkę:
GRUB_CMD_LINE_LINUX_DEFAULT="quiet splash"
Jeśli nie chcesz aby zawsze po włączeniu komputera pojawiało się menu GRUB2/BURG, pozostaw bez zmian. W razie potrzeby wywołuje się je poprzez przytrzymanie przycisku Shift, inaczej od razu uruchomi się pierwszy w kolejności wpis, czyli w twoim przypadku Windows. Jeśli chcesz aby menu było zawsze widoczne, usuń quiet.
Z kolei parametr GRUB_TIMEOUT= odpowiada za ilość sekund po których automatycznie uruchomi się pierwszy w kolejności system operacyjny wpisany na listę. Domyślna wartość to 5.
8. Wróć teraz do Terminalu i wpisz:
burg-install /dev/sda
Nie powinien pojawić się żaden błąd.
update-burg
Jedyny błąd jaki może się pojawić to „ERROR: mkdir /var/lock/dmraid”, który możesz zignorować. BURG powinien także zakomunikować o znalezieniu bootloadera Windows na sda1.
9. Odepnij się z chroot wpisując exit.
10. Wypadałoby teraz odmontować recovery i przy okazji dev. Niestety kolejny raz trzeba to zrobić w Terminalu - w sposób siłowy, ponieważ z poziomu np. managera plików, Mint będzie twierdził że partycja nadal jest używana przez inny program. W tym celu wpisz:
umount -l /media/mint/<etykieta>/dev
a następnie:
umount -l /media/mint/<etykieta>
11. Wpisz kolejno po sobie dwa razy exit, aby przejść na prawa użytkownika i zamknąć Terminal. Nie będzie już potrzebny.
BURG został zainstalowany w MBR dysku twardego jak i jego moduły, skrypty, pliki konfiguracyjne i skórki na partycji recovery w folderze "boot". Z niewiadomych mi przyczyn niestety nie wszystkie i te będziesz musiał skopiować ręcznie, na dodatek edytując plik konfiguracyjny "/boot/burg.cfg", który nie jest kompletny.
12. Ponownie zamontuj partycję recovery (wystarczy w nią kliknąć w Nemo na prawach użytkownika, wówczas pojawi się także zamontowana w Nemo na prawach administratora) i przejdź do "/boot/burg/", skąd skopiuj foldery "fonts" i "themes" do "/media/mint/recovery/boot/burg/".
13. Możesz usunąć zbędne katalogi z themes, za wyjątkiem wybranej skórki, "burg", "conf.d" i "icons".
Domyślne skórki są moim zdaniem mało atrakcyjne (może ewentualnie poza "coffee"). Polecam więc pobrać alternatywne np. z deviantart.
Wszystkie rozpakuj i wrzuć do folderu "themes".
14. Otwórz plik "/media/mint/<etykieta>/boot/burg/burg.cfg".
15. Odszukaj parametr set_theme_name= i po znaku równości wpisz nazwę folderu wybranej skórki.
16. Odszukaj if test -f i zastąp cały warunek poniższą litanią:
if test -f ${prefix}/themes/${theme_name}/theme ; then insmod coreui menu_region.text load_string '+theme_menu { -coffee { command="set theme_name=Lightness" }}' load_config ${prefix}/themes/conf.d/10_hotkey load_config ${prefix}/themes/${theme_name}/theme ${prefix}/themes/custom/theme_${theme_name} insmod vbe insmod png insmod jpeg set gfxfont="Unifont Regular 16" menu_region.gfx vmenu resolution_menu controller.ext fi
Dodaj też linijki dla wszystkich skórek jakie posiadasz, np:
load_string '+theme_menu { -Darkness { command="set theme_name=Darkness" }}' load_string '+theme_menu { -Darkness_Blue { command="set theme_name=Darkness_Blue" }}' load_string '+theme_menu { -El_Castillo { command="set theme_name=El_Castillo" }}' load_string '+theme_menu { -Lightness { command="set theme_name=Lightness" }}' load_string '+theme_menu { -Metro { command="set theme_name=Metro" }}'
17. Na samym końcu pliku dodaj wpis prowadzący do Clonezilli, czyli:
menuentry "Clonezilla v2.4.2-10 (64bit)" { set isofile="/iso/clonezilla.iso" loopback loop $isofile linux (loop)/live/vmlinuz boot=live config components union=overlay username=user noswap edd=on nomodeset ip=frommedia toram=filesystem.squashfs findiso=$isofile initrd (loop)/live/initrd.img }
i zapisz zmiany.
Może być ich oczywiście więcej, np. dla Parted Magic (niestety nie mam nowszej wersji, być może nic się nie zmieniło w aktualnych):
menuentry "Parted Magic (2014-01-04)" { # insmod part_gpt set isofile="/iso/partedmagic_2014.iso" loopback loop (hd0,3)$isofile linux (loop)/pmagic/bzImage iso_filename=$isofile edd=off load_ramdisk=1 prompt_ramdisk=0 ro vga=normal loglevel=9 max_loop=256 vmalloc=512MiB initrd (loop)/pmagic/initrd.img }
dla Mint :
menuentry "Mint v17.1 (64bit)" { set isofile="/iso/linuxmint-17.1-cinnamon-nocodecs-64bit.iso" loopback loop (hd0,3)$isofile linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noprompt noeject toram initrd (loop)/casper/initrd.lz }
dla Kubuntu :
menuentry "Kubuntu v15.04 (64bit)" { set isofile="/iso/kubuntu-15.04-desktop-amd64.iso" loopback loop (hd0,3)$isofile linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile noprompt noeject toram initrd (loop)/casper/initrd.lz }
itp.
Można też wyprowadzić to menu na zewnątrz, tym samym tworząc podmenu, np. przez:
menuentry "Recovery"{ configfile (hd0,3)/boot/recovery.cfg }
Dzięki tej modyfikacji, w menu boot loadera pojawi się dodatkowa pozycja: Recovery (oczywiście jej nazwa może być dowolna, np. Przywracanie systemu), skąd wczytywane będzie kolejne menu z pliku "recovery.cfg" (które trzeba uzupełnić w ten sam sposób samymi menuentry). Plik ten powinien znajdować się na drugiej partycji pierwszego dysku twardego (stąd hd0,2) w folderze "boot". Jeśli Windows podczas instalacji stworzył dodatkową, ukrytą partycję z samym tylko swoim boot loaderem, wówczas będzie to trzecia partycja (czyli hd0,3).
Czy może to być partycja z Windows? Może być, trzeba jednak dodać insmod ntfs. Tylko czy to ma sens? Po co umieszczać plik konfiguracyjny menu na partycji, której kopię chcesz wykonać, a w przyszłości przywracać?
Ot, taka ciekawostka.
18. Możesz już skasować wszystkie foldery z partycji recovery (oczywiście z wyjątkiem "boot").
19. Pobierz obraz płyty *.iso z Clonezillą i skopiuj na partycję recovery do folderu iso.
Zwróć uwagę dla jakiej architektury jest przeznaczony obraz: i586, i686 czy amd64. Jeśli posiadasz 64 bitowy procesor, wybierz amd64. Jeśli 32 bitowy, ale wielordzeniowy - i686, jeśli jednordzeniowy - i586.
Pamiętaj aby nazwa pliku była zgodna z tym co wpisałeś w pliku "burg.cfg", w stałej isofile. Na poniższym przykładzie, dla uproszczenia nazwałem po prostu "clonezilla.iso".
13. Odmontuj recovery po prostu klikając na ikonkę ze strzałką w panelu po lewej i wyłącz komputer. Po jego ponownym włączeniu powinno pojawić się menu nowego boot loadera skąd będziesz mógł wybrać czy chcesz uruchomić Windows czy np. Clonezillę. Jeśli w pliku "burg" skasowałeś quiet, po POST przytrzymaj na klawiaturze Shift aby owe menu wyświetlić.
Poniżej przykład zmodyfikowanej skórki Lightness.
Tworzenie obrazu partycji:
Clonezilla - ta niepozorna, miniaturowa dystrybucja Linuksowa o siermiężnym interfejsie jest jednym z najlepszych zbiorów narzędzi do wykonywania i przywracania obrazów partycji lub całych nośników. Mimo iż cały czas pracuje się w trybie tekstowym, autorzy postarali się o bogate w opisy menu, które krok po kroku prowadzą nieszczęś... użytkownika, za rękę. ;)
Oczywiście ponownie złośliwi mogliby powiedzieć, że partclone i pozostałe programy można by pobrać z repozytoriów choćby Minta, na którym jeszcze niedawno instalowałeś boot loader, a więc ponownie można by skrócić cały poradnik o połowę - niestety ponownie przepisując trylogię Sienkiewicza w terminalu...
Po uruchomieniu Clonezilli przywita ciebie takie o to menu:
1. Najedź strzałkami na „Don't touch keymap” i wciśnij Enter. W kolejnym menu w taki sam sposób wybierz „Start_Clonezilla”.
2. Na pytanie o tryb pracy wybierz „device-image”, ponieważ chcesz zapisać obraz partycji, a nie sklonować urządzenie.
3. Zdecyduj o miejscu docelowym na obraz, czyli na czym i co zamontować jako /home. A więc „local_dev” i drugą (sda2) bądź trzecią partycję (sda3) przeznaczoną na recovery. Kolejne urządzenia dostaną kolejne litery alfabetu (np. drugi dysk twardy sdb<numer partycji>, karta pamięci, pendrive itd.)
Jako katalog na partycji najlepiej wybrać główny, czyli „Top_directory_in_the_local_device”.
4. Z następnych dwóch menu wybierz „Expert”, ponieważ jesteśmy ekspertami ;) i „saveparts”, ponieważ chcesz zapisać obrazy z poszczególnych partycji, a nie całego dysku twardego.
5. Wpisz nazwę folderu, w którym zapisane zostaną pliki obrazu. Nie używaj spacji, znaków diakrytycznych itp. Najlepiej ogranicz się do samych liter, cyfr, myślnika i jeśli potrzebujesz przerw to podkreślnika.
6. Za pomocą spacji wybierz, które partycje mają wejść w skład obrazu. Jeśli posiadasz osobną partycję z bootloaderem dla Windows, zaznacz obie.
7. W następnym menu ustaw najwyższy priorytet dla „partclone”, czyli „-q2”.
Dlaczego nie „ntfsclone”? Ponieważ nie ma takiej potrzeby skoro „partclone” obsługuje NTFS i w przeciwieństwie do „ntfsclone”, umożliwia weryfikację wpisanych do obrazu danych porównując je ze źródłem.
8. Za pomocą spacji, ustaw dodatkowe, zaawansowane parametry, ;) czyli:
-rm-win-swap-hib
Dzięki czemu plik wymiany i zrzut pamięci użyty do hibernacji nie wejdzie w skład kopii. Jeśli opcje w Windows, odpowiedzialne za korzystanie z nich są włączone to w przypadku braku tych dwóch plików i tak zostaną zapisane nowe. Oszczędzasz w ten sposób (zależnie od systemu, ilości posiadanego RAM i limitów) od kilku do kilkunastu GB nadmiarowych, zbędnych danych.
-ntfs-ok
Dlatego że nie ma sensu sprawdzać integralności systemu plików NTFS, bad sektorów itp. Wszelkie problemy z odczytem i logiką dysku i tak poskutkują nieprzejściem weryfikacji. Chyba że użyłeś ntfsclone zamiast partclone, wówczas nie zaznaczaj tego parametru.
-gm
Parametr odpowiedzialny za wyliczanie sum kontrolnych MD5 dla wszystkich plików składających się na obraz partycji (nie plików w obrazie). Jeśli zaznaczysz, ułatwi ci to sprawdzanie integralności obrazu. Można też lub zamiast MD5, użyć SHA‑1, ale wydłuży to cały proces i w mojej ocenie nie ma to większego sensu.
9. Jako algorytm kompresji wybierz XZ, który ze wszystkich da prawdopodobnie najmniejszy plik wynikowy, ale też najdłużej potrwa tworzenie obrazu. Jeśli nie zależy ci tak bardzo na kompresji, wybierz GZIP lub LZO. Jeśli w ogóle nie zależy ci na kompresji wybierz „No compression”.
10. Jeśli masz zamiar później zrobić kopię obrazu na zewnętrzny nośnik z systemem plików FAT32, ustaw rozmiar na 4096 (domyślny). Jeśli na płytę i przy tym nie chcesz użyć systemu plików UDF, to 2048. A jeśli na jakikolwiek inny nośnik z systemem plików obsługującym pliki większe niż 4GB, dopisz po kilka zer, aby Clonezilla go nie podzieliła.
11. Przy pytaniu czy użytkownik chce aby przed wykonaniem obrazu został sprawdzony i ewentualnie naprawiony system plików, wybierz „Skip checking/repairing source file system”.
12. Przy pytaniu czy po utworzeniu obrazu, sprawdzić jego poprawność, wybierz „Yes, check saved image”.
13. Przy pytaniu czy chcesz zaszyfrować utworzony obraz – wybierz wedle uznania. Jeśli nie przechowujesz na partycji z systemem operacyjnym żadnych prywatnych danych lub jeśli nie jest to np. laptop który można ukraść, zgubić etc. wybierz opcję „Not to encrypt the image”.
14. Ostatnie już pytanie dotyczy co zrobić po ukończeniu tworzenia obrazu partycji. Jeśli wybierzesz wyłączenie lub zresetowanie komputera, nie dowiesz się jak przebiegał proces. Dlatego zalecam opcję „Do nothing when the clone finishes”.
15. Rozpocznie się teraz kopiowanie danych z wybranych partycji do obrazu. Na wszystkie stawiane użytkownikowi pytania odpowiadaj twierdząco, czyli wpisując „y” i potwierdzając Enterem.
16. Po wciśnięciu Enter pojawi się menu z którego wybierz „Poweroff”.
Przywracanie obrazu partycji:
Aby przywrócić dane z obrazu partycji, również uruchom Clonezillę.
1. Podobnie jak w pierwszych punktach części opisującej tworzenie obrazu, tak i tym razem wybierz opcję „device-image”, „local_dev” i partycję z recovery na której zapisałeś obraz.
2. Z następnych trzech menu wybierz: „Top_directory_in_the_local_device”, „Beginner” (ponieważ wciąż jesteśmy ekspertami, ale tym razem domyślne opcje są wystarczające ;)) i „restoreparts”.
3. Wybierz obraz do przywrócenia. Jeśli w przyszłości zrobisz ich więcej, na liście będzie kilka do wyboru.
4. Następnie za pomocą Spacji wybierz partycje, które chcesz przywrócić. Jeśli wcześniej wykonałeś obraz, który zawiera partycję z Windowsem i jego boot loaderem zaznacz obie.
5. W ostatnim menu wybierz partycje, które chcesz aby zostały nadpisane tymi z obrazu.
6. Rozpocznie się teraz proces przywracania partycji z obrazu. Na wszystkie zadane pytania odpowiedź twierdząco wpisując „y” i potwierdzając Enterem.
7. Po wciśnięciu Enter pojawi się menu z którego wybierz „Poweroff”.
Przemysław "Berion" Boruc Wszelkie prawa zastrzeżone, modyfikowanie i/lub kopiowanie zabronione.