Montowanie partycji z obrazu dysku

Wykonałem obraz całego dysku poleceniem dd. Teraz chcę podmontować wybraną partycję z tego dysku. Jak to zrobić? W tym wpisie przedstawię jedno z rozwiązań.

Na początek poleceniem fdisk sprawdzam jakie partycje są w zapisanym obrazie dysku.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
mirek@dom:~/kat1$ sudo fdisk -l obraz.img
[sudo] hasło użytkownika mirek:
Dysk obraz.img: 20 MiB, bajtów: 20971520, sektorów: 40960
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0xa6491269
Urządzenie Rozruch Początek Koniec Sektory Rozmiar Id Typ
obraz.img1 2048 12287 10240 5M 83 Linux
obraz.img2 12288 32767 20480 10M 83 Linux
obraz.img3 32768 40959 8192 4M 83 Linux
mirek@dom:~/kat1$ sudo fdisk -l obraz.img [sudo] hasło użytkownika mirek: Dysk obraz.img: 20 MiB, bajtów: 20971520, sektorów: 40960 Jednostki: sektorów, czyli 1 * 512 = 512 bajtów Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512 Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512 Typ etykiety dysku: dos Identyfikator dysku: 0xa6491269 Urządzenie Rozruch Początek Koniec Sektory Rozmiar Id Typ obraz.img1 2048 12287 10240 5M 83 Linux obraz.img2 12288 32767 20480 10M 83 Linux obraz.img3 32768 40959 8192 4M 83 Linux
mirek@dom:~/kat1$ sudo fdisk -l obraz.img 
[sudo] hasło użytkownika mirek: 
Dysk obraz.img: 20 MiB, bajtów: 20971520, sektorów: 40960
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0xa6491269

Urządzenie Rozruch Początek Koniec Sektory Rozmiar Id Typ
obraz.img1             2048  12287   10240      5M 83 Linux
obraz.img2            12288  32767   20480     10M 83 Linux
obraz.img3            32768  40959    8192      4M 83 Linux

Aby zamontować partycję z tego obrazu wykorzystam program losetup. Krok pierwszy, to utworzenie urządzenia blokowego na podstawie pliku obrazu.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
losetup --partscan --find obraz.img
losetup --partscan --find obraz.img
losetup --partscan --find obraz.img

Parametr –partscan wymusza na jądrze linuksa przeskanowanie tablicy partycji na nowo utworzonym urządzeniu blokowym. Po wykonaniu polecenia możemy sprawdzić jakie partycje zostały utworzone.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
root@dom:~/kat1# losetup
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop0 0 0 0 0 /root/kat1/obraz.img 0 512
root@dom:~/kat1# lsblk /dev/loop0
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 20M 0 loop
├─loop0p1 259:0 0 5M 0 part
├─loop0p2 259:1 0 10M 0 part
└─loop0p3 259:2 0 4M 0 part
root@dom:~/kat1# losetup NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC /dev/loop0 0 0 0 0 /root/kat1/obraz.img 0 512 root@dom:~/kat1# lsblk /dev/loop0 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 20M 0 loop ├─loop0p1 259:0 0 5M 0 part ├─loop0p2 259:1 0 10M 0 part └─loop0p3 259:2 0 4M 0 part
root@dom:~/kat1# losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE            DIO LOG-SEC
/dev/loop0         0      0         0  0 /root/kat1/obraz.img   0     512

root@dom:~/kat1# lsblk /dev/loop0
NAME      MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0       7:0    0  20M  0 loop 
├─loop0p1 259:0    0   5M  0 part 
├─loop0p2 259:1    0  10M  0 part 
└─loop0p3 259:2    0   4M  0 part 

Jak widać powyżej zostały utworzone partycje loop0p1, loop0p2 i loop0p3. Możemy teraz zamontować je poleceniem:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
mount /dev/loop0p1 /mnt/katalog
mount /dev/loop0p1 /mnt/katalog
mount /dev/loop0p1 /mnt/katalog

a wybrana partycja (loop0p1 w tym przypadku) zostanie zamontowana do katalogu /mnt/katalog.