Mam obraz dysku, myimage.disk
który zawiera tablicę partycji i partycję podstawową (tj. System plików FAT32). Pomyśl o tym jak o obrazie z pióra USB.
Chcę zamontować partycję podstawową w katalogu lokalnym. Wiem, jak zamontować obraz partycji za pomocą narzędzi pętli, ale tutaj mam obraz dysku. Domyślam się, że muszę zamontować obraz „pomijając” tablicę partycji, ale jak to zrobić?
linux
partitioning
mount
dd
Emiliano
źródło
źródło
losetup --partscan --find --show disk.img
następujemount /dev/loop0p1 /mnt/disk
Odpowiedzi:
Narzędzie kpartx ułatwia to. Tworzy urządzenia pętlowe w / dev / mapper dla każdej partycji na obrazie. Następnie możesz zamontować urządzenie pętli odpowiadające żądanej partycji bez konieczności ręcznego obliczania przesunięcia.
Na przykład, aby zamontować pierwszą partycję obrazu dysku:
Po zakończeniu pracy z obrazem usuń urządzenia pętlowe:
Alternatywnie, jeśli masz najnowsze jądro i przekazujesz loop.max_part = 63 podczas rozruchu (jeśli pętla jest wbudowana) lub do modprobe (jeśli pętla jest modułem), możesz to zrobić w ten sposób:
Po zakończeniu pętli:
źródło
-o loop
powyższego,/dev/mapper/loop0p1
jest już urządzeniem blokowym (urządzenie odwzorowujące na urządzeniu pętli, nie chcesz na nim kolejnej warstwy urządzenia pętli)./dev/loop0p1
po uruchomieniu nie otrzymasz urządzeń partycji ( itp.)losetup
, Uruchompartprobe /dev/loop0
.kpartx
wydaje się być domyślnie zainstalowany w Linux Mint 18.Znajdź to:
http://www.andremiller.net/content/mounting-hard-disk-image-incellation-partitions-using-linux
co wydaje się dokładnie tym, czego szukałem.
Oto kluczowa część:
gdzie wartość przesunięcia jest w bajtach. Sugerowanym sposobem uzyskania przesunięcia jest wskazanie
parted
obrazu, a następnie jednostki B dla bajtów i pobranie wartości początkowej z wydruku. Alternatywnie, zakładając, że masz miejsce na dysku, zrób to oczywiste: po uzyskaniu przesunięcia i rozmiaru wystarczydd
wyodrębnić każdą partycję do osobnego pliku.źródło
mount -o loop,ro,offset=32256 hda.img /mnt/rabbit
gdzie wartośćoffset
jest w bajtach. Sugerowanym sposobem uzyskania przesunięcia jest wskazanie parted na obrazie, a następnieunit
B
na bajty i pobraniestart
wartości zprint
wyjścia. Alternatywnie, zakładając, że masz miejsce na dysku, zrób to oczywiste: po uzyskaniu przesunięcia i rozmiaru wystarczydd
wyodrębnić każdą partycję do osobnego pliku.mount
linia zawierającaoffset
opcję.źródło
Obecnie możesz zminimalizować swoją pracę, używając
udisks
. Rozwiązanie z ArchWiki: udisks - Mount loop devices-r
tam dla opcji tylko do odczytu.źródło
udisksctl
.