“Ręczne” montowanie Logical Volume z zaszyfrowanego dysku.

Definicja zadania

Ostatnio wymieniłem dysk na większy. Stary dysk był zaszyfrowany, a partycje były założone na logicznych wolumenach LVM. Szybko okazało się, że przydał by się dostęp do niektórych danych ze starego dysku, dlatego stanąłem przed problemem podmontowania partycji ze starego dysku. Zadanie niby proste, ale kiedy okazuje się, że dysk był szyfrowany, a partycje były założone na logicznych wolumenach LVM, to sprawa się odrobinę komplikuje.

Poniżej znajduje się opis w jaki podmontowałem interesującą mnie partycję z mojego starego dysku. Jest to opis specyficzny dla mojego przypadku, jednak myślę, że na jego podstawie łatwo będzie wykonać podobne zadanie dla innych przypadków.

Jakie mam urządzenia blokowe?

Na początku, gdy jeszcze stary dysk nie jest fizycznie podłączony do naszego komputera, dobrze jest spisać sobie nazwy urządzeń blokowych przypisanych do dysków zainstalowanych w naszej maszynie. Później, gdy np. za pomocą kieszeni USB, podłączymy stary dysk, to pozwoli to na łatwiejsze określenie, jaka nazwa urządzenie została przypisana do starego dysku.

Do uzyskania listy urządzeń blokowych bardzo dobrze nadaje się komenda lsblk.

Przykładowa lista urządzeń blokowych może wyglądać tak:

Fizyczne podłączenie starego dysku

W moim przypadku, stary dysk podłączyłem poprzez kieszeń USB. Po podłączeniu kieszeni do komputera ponownie wyświetliłem listę urządzeń blokowych. Nowa lista wyglądała tak:

Porównanie powyższej listy z poprzednią, szybko pozwala się zorientować, że nazwa urządzenia przypisana właśnie podłączonemu staremu dyskowi to /dev/sdb.

Otwarcie zaszyfrowanego dysku

Używając drobnego uproszczenia, wspomniałem, że cały stary dysk /dev/sdb był zaszyfrowany. W rzeczywistości zaszyfrowana byłą tylko druga partycja tego dysku (/dev/sdb2),  natomiast pierwsza partycja była nie szyfrowaną partycją boot (wynika to z charakterystyki technologii LVM i LUKS)Tak więc, żeby uzyskać dostęp do “starych” danych, zaszyfrowanych z wykorzystaniem mechanizmu LUKS, najpierw należy otworzyć partycję /dev/sdb2 poleceniem crytpsetup luksOpen:

Powyższe polecenie spowoduje odpytanie nas o hasło do zaszyfrowanego dysku, a następnie utworzenie w systemie urządzenia /dev/mapper/encrypted-disk, które jest urządzeniem blokowym pozwalającym na uzyskanie dostępu do odszyfrowanych danych z urządzenia /dev/sdb2.

Pojawienie się urządzenia /dev/mapper/encrypted-disk, można potwierdzić poleceniami ls oraz  lsblk:

Wylistowanie grup wolumenów ze starego dysku

Zanim w systemie będą widoczne wolumeny logiczne (ang. Logical Volume) ze starego dysku, pierw należy znaleźć i aktywować zawierające je grupy wolumenów (ang. Volume Group).

Do wyszukiwania, dostępnych w systemie, grup wolumenów służy komenda vgscan.

Jak widać z komunikatu wyświetlonego przez polecenie vgscan, w systemie znaleziono dwie grupy wolumenów. Jedną o nazwie vg_old_backupserver i drugą o nazwie vg_backupserver.

UWAGA: W rzeczywistości, gdy wykonywałem opisywane tu czynności, okazało się, że grupy wolumenów ze starego i nowego dysku mają takie same nazwy. Powodowało to konflikt dlatego, przy pomocy polecenia vgrename, nazwę jednego z wolumenów zmieniłem, uzupełniając ją o sugestywny ciąg znaków “old”.

Aktywacja grupy wolumenów

Na podstawie powyższej listy grup wolumenów, oraz na podstawie bieżącej listy urządzeń blokowych (oraz ewentualnie na podstawie wyników polecenia mount i lvscan), szybko można dojść do wniosku, że grupa wolumenów którą trzeba aktywować (po to żeby w systemie stały się widoczne logiczne wolumeny wydzielone z grupy wolumenów) to vg_old_backupserver.

Do aktywacji grupy wolumenów służy komenda vgchange wraz z odpowiednimi argumentami.

Po wydaniu powyższego polecenia, polecenie lsblk powinno pokazać logiczne wolumeny wyodrębnione z grupy vg_old_backupserver, a polecenie ls i lvscan powinny potwierdzić dostępność urządzeń odpowiadających poszczególnym wolumenom.

Montowanie docelowego wolumenu logicznego

Na tym etapie,  w systemie są widoczne urządzenia blokowe odpowiadające odszyfrowanym wolumenom logicznym ze starego dysku. Podmontowanie interesującego nas wolumenu sprowadza się do standardowego użycia komendy mount.

Przy założeniu, że chcemy uzyskać dostęp do danych z wolumenu widocznego pod urządzeniem /dev/vg_old_backupserver/lv_root, sekwencja poleceń podmontowująca ten wolumen do koatalogu /mnt/old_root wyglądała by następująco:

Po wykonaniu powyższych poleceń, rozszyfrowana przestrzeń ze starego dysku powinna być dostępna pod ścieżką /mnt/old_root. W zależności od podziału dysku, może on mieć wiele wolumenów logicznych. Podmontowanie każdego z tych wolumenów wygląda analogicznie do tego pokazanego powyżej.

Napisano w Administracja, Bezpieczeństwo