Stworzyłem obraz mojej karty SD Raspberry Pi przy użyciu dd
:
sudo dd if=/dev/sdf of=/home/myusername/raspberry-backup-2014-04-10.img
Karta SD zawiera dwie partycje (jedna vat, jedna ext4), które są automatycznie montowane po podłączeniu karty.
Moje pytanie: Jak mogę zamontować te partycje z pliku .img?
Więcej szczegółów:
$ fdisk -l raspberry-backup-2014-04-10.img
Disk raspberry-backup-2014-04-10.img: 3974 MB, 3974103040 bytes
255 heads, 63 sectors/track, 483 cylinders, total 7761920 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000981cb
Device Boot Start End Blocks Id System
raspberry-backup-2014-04-10.img1 8192 122879 57344 c W95 FAT32 (LBA)
raspberry-backup-2014-04-10.img2 122880 7761919 3819520 83 Linux
wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error
problemsudo fdisk -l /dev/loop0
twierdzi: Dysk / dev / loop0 nie zawiera prawidłowej tablicy partycji.Odpowiedzi:
Aby uniknąć konieczności tworzenia osobnych obrazów dla każdej partycji lub instalowania narzędzia, takiego jak
kpartx
, możesz zamontować każdą partycję osobno, określając polecenieoffset
wmount
poleceniu.Najpierw sprawdź partycje w pliku obrazu i określ przesunięcie, używając
fdisk
:Wybierz żądany
Start
sektor partycji i pomnóż tę wartość przezUnits
rozmiar. Więc jeśli chcesz drugą partycję, dostaniesz540672 * 512 = 276824064
.Teraz utwórz folder i zamontuj partycję:
Po zakończeniu robienia tego, co chcesz z danymi partycji:
źródło
Po dodatkowych testach sam znalazłem rozwiązanie:
kpartx
To polecenie zostało utworzone
/dev/mapper/loop0p1
i/dev/mapper/loop0p2
. Następnie partycje te można zamontować prosto:źródło
jeśli Twoim celem jest eksploracja lub modyfikacja zawartości partycji (systemu plików), ten wiersz poleceń zainstaluje system plików zrzutu karty SD moja_sdcard_dump.img do katalogu katalog_instalacyjny .
źródło
Radzenie sobie z obrazem całego dysku z wieloma partycjami jest dość trudne . Linux nie został zaprojektowany do odczytywania tabeli partycji ze zwykłego pliku, nawet gdy jest podłączony do urządzenia z pętlą zwrotną, więc musisz dokładnie zidentyfikować przesunięcia partycji i przekazać je do
mount
polecenia.Preferowanym sposobem byłoby utworzenie osobnych obrazów dla każdej partycji:
Teraz możesz łatwo traktować te pliki tak, jakby były pojedynczymi partycjami na dysku, instalując je tak, jak normalną partycję dysku, poprzez mapowanie ich na urządzenie pętlowe . Urządzenie pętli lub urządzenie pętli zwrotnej to urządzenie wirtualne, które zapewnia warstwę tłumaczenia dla systemu Linux w celu traktowania pliku jako urządzenia blokowego (takiego jak dysk lub partycja).
Urządzenia z pętlą są zwykle
/dev/loop0
przez/dev/loop8
. Zidentyfikuj nieużywane urządzenie pętli za pomocąlosetup
polecenia:Ta odpowiedź wskazuje nieprzypisane urządzenie pętli. Teraz możemy przypisać urządzenie pętli do jednego z naszych plików obrazów:
Brak wyniku tego polecenia oznacza sukces. Teraz
/dev/loop0
jest dla większości celów funkcjonalnie równoważny/dev/sdf1
z kartą SD i możesz go zamontować w normalny sposób:Powtórz ten proces, używając innego urządzenia pętli, aby zamontować drugą partycję. Po zakończeniu odmontuj systemy plików i usuń przypisanie urządzeń pętli:
źródło