Blog (57)
Komentarze (10k)
Recenzje (1)

Dekompresja i montowanie obrazów Clonezilli

@BerionDekompresja i montowanie obrazów Clonezilli16.10.2018 20:36

Clonezilla jest otwarto źródłową, darmową i jedną z najlepszych (jeśli nie najlepszą) alternatywą dla płatnych programów do wykonywania i przywracania kopii całych pamięci masowych lub tylko ich partycji. Jest to tak naprawdę dystrybucja Linuksowa, która wykorzystuje zestaw skryptów i narzędzi takich jak np. partclone czy znany wszystkim dd. A skoro tak, to w przeciwieństwie do komercyjnych odpowiedników, sam format obrazów nie jest własnościowy i można go zamontować na dowolnej innej dystrybucji. I tegoż właśnie dotyczy ten wpis – dla większości możliwych wariantów jednak z pominięciem obrazów szyfrowanych i wieloczęściowych. Pozostaje tylko pytanie po co? Ano po to by uzyskać dostęp do danych w obrazie bez jego przywracania; zrobić łaty różnicowe; ewentualnie by taką partycję edytować, ponownie poddać obróbce i rozsiać po wszystkich stanowiskach. I choć to raczej przypadki rzadkie to budowę i składnię warto przećwiczyć w ramach kolejnej ciekawostki informatycznej i samorozwoju. ;)

Clonezilla tworzy obrazy w wybranych przez użytkownika folderach. Wewnątrz znaleźć można mnóstwo plików, z czego obrazami są tylko te zakończone na "aa" (np. "sda1.ntfs-ptcl-img.xz.aa"). Celowo unikam tutaj określenia rozszerzenie ponieważ cała nazwa pliku składa się z identyfikatorów, które determinują użyte programy.

  • Na początku jest urządzenie i numer partycji (np. sda1, sdb2, sdc5 itp.). Nie ma to żadnego przełożenia na stan faktyczny w danym środowisku (poza przypadkiem przywracania, ale nie o tym jest poradnik).
  • Następnie użyty program, którym wykonany został obraz. "ntfs-img" dla ntfsclone, "dd-img" dla dd, "<fs>-ptcl-img.<kompresor>" dla partclone i brak dla partimage.
  • Ostatni zaś to numer wolumenu (w omawianych przypadkach będzie to zawsze pierwszy i jedyny, czyli aa).

Poradnik rozbiłem na kilka części, dla każdego programu z osobna, ponieważ każdy wymaga trochę innego podejścia. Oczywiście trzeba doinstalować niżej wymienione oprogramowanie jeśli nie masz tego w systemie (adekwatnie do potrzeb, naturalnie wszystkich nie musisz):

sudo apt install ntfsclone partclone partimage kpartx bzip2 gzip lrzip lz4 lzip lzop xz zstd

Poniżej zamieszczam składnię do wszystkich programów służących dekompresji. Jeśli gdziekolwiek dalej w tekście pojawi się magiczna fraza dekompresja, to znaczy że trzeba sobie wybrać z tabelki, adekwatnie do algorytmu którym skompresowany został obraz:

dd

Pierwszym przypadkiem jest aplikacja dd. Warto jej używać tylko w przypadku kiedy system plików jest nieznany (czyli de facto nieobsługiwany przez żaden z opisanych w dalszej części programów), zaszyfrowany nieznanym kluczem (np. na dysku twardym PS4) lub kiedy nie ma żadnego systemu plików (np. jedna z ukrytych partycji, którą tworzy Windows 10 i używa do mrocznych celów ;)).

Jeśli nie wybrałeś kompresji to już możesz montować obraz. Zamiast biczować się z mnt, wystarczy użyć kpartx, który sam rozpozna system plików i zamontuje z wymaganymi parametrami:

sudo kpartx -a *.aa

Analogicznie wygląda demontaż:

sudo kpartx -d *.aa

Jeśli skompresowałeś to można bardzo łatwo uzyskać posektorowy obraz za pomocą narzędzia cat:

cat *.aa | dekompresja > gotowe.bin

Jeśli z jakiegoś powodu chcesz zamontować partycję, która była w stanie surowym (bez systemu plików) lub żaden program go z różnych względów nie obsługuje, to możesz zamontować jako urządzenie, posługując się losetup. Rzecz jasna wówczas nie pojawi się w managerze plików, a dostęp będzie spod "/dev/loop0" (przełącznik -f odpowiada za podpięcie pod pierwszy wolny slot, więc niekoniecznie będzie to akurat loop0).

sudo losetup -f gotowe.bin

I demontaż:

sudo losetup -d /dev/loop0

partclone

Moim zdaniem najlepszy ze wszystkich choć nie bez wad (np. nie weryfikuje obrazu z NTFS).

Dla starszych wersji programu wystarczy użyć:

cat *.aa | dekompresja | partclone.restore -C -s - -o gotowe.bin

Ale powyższe na nowszych, zwróci błąd:

Starting to restore image (-) to device (gotowe.bin)
device (gotowe.bin) is mounted at
error exit

Dlatego dla aktualnych wersji wpisz:

cat *.aa | dekompresja | sudo partclone.restore -C -W -s - -o gotowe.bin

Podwyższone uprawnienia są obowiązkowe, inaczej wypisze takie same kalumnie jak w starszej.

Teoretycznie partclone.restore jest już przestarzałe i zastąpiło je partclone.ntfs, partclone.extfs itd.

Jeśli wykonałeś obraz za pomocą partclone, ale nie kompresowałeś to posektorowy obraz uzyskasz poprzez:

sudo partclone.restore -s *.aa -C --restore_raw_file -o gotowe.bin

Montowanie/Odmontowywanie oczywiście jak wcześniej, za pomocą kpartx:

sudo kpartx -a gotowe.bin
sudo kpartx -d gotowe.bin

ntfsclone

Jeśli klonujesz partycje z systemem plików NTFS, warto rozważyć jego użycie, bowiem pozwala na weryfikację, ewentualną naprawę fs w locie, a do tego nie wymaga podwyższonych praw pracując na obrazie.

Składnia jest równie prosta (zwróć uwagę na obowiązkowy myślnik na końcu):

cat *.aa | dekompresja | ntfsclone -r -o gotowe.bin -

Jeśli wykonałeś obraz, ale go nie kompresowałeś to posektorowy uzyskasz poprzez:

ntfsclone -r *.aa -o gotowe.bin

Montowanie/Odmontowywanie również za pomocą kpartx:

sudo kpartx -a gotowe.bin 
sudo kpartx -d gotowe.bin

partimage

Czwartą aplikacją jest partimage. Przestarzały, zarobaczony i niewygodny. Jeśli posiadasz obraz wykonany tym programem to niestety czeka cię niemała gimnastyka.

Najpierw stwórz pusty plik o rozmiarze odpowiadającym rozmiarowi prawdziwej partycji, której jest kopią. Na przykład za pomocą dd. W moim przypadku to partycja EFS Windowsa 7, więc rozmiar jest równy 100MiB.

sudo dd if=/dev/zero of=/home/mint/gotowe.bin bs=100M count=1

Jeśli nie jesteś pewien rozmiaru, wpisz:

sudo partimage imginfo *.aa

"Partition size" wskaże wymaganą wielkość.

Następnie zamontuj ten pusty plik jako urządzenie i sprawdź który dostał slot:

sudo losetup -f gotowe.bin && lsblk

W moim przypadku będzie to loop1, ponieważ bawię się na dystrybucji typu live i loop0 okupuje SquashFS.

Kolejnym krokiem jest dekompresja obrazu (inaczej zaprotestuje przez segmentation fault lub exception bla bla bla):

cat *.aa | dekompresja > tmp.bin

Można już wklepać „przywracanie” obrazu na podpięty loop:

sudo partimage restore /dev/loop1 tmp.bin

Wciśnij F5.

Jeśli systemem plików w obrazie jest NTFS to program ostrzeże, że obsługa jest eksperymentalna. Prawdopodobnie to relikt z czasów, kiedy ntfs-3g nie był jeszcze dopracowany.

Potwierdzaj enterem.

Na koniec odepnij loop, a plik "gotowy.bin" powinien zamienić się w posektorowy obraz.

sudo losetup -d /dev/loop1
Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.