Wyodrębnij zawartość .img z nieznanym systemem plików

2

Mam plik obrazu: kali-linux-1.0.9a-armhf.img. To obraz Kali Linux ARMH build.

Próbuję wyodrębnić zawartość obrazu, ale bezskutecznie. Próbowałem zamontować obraz, ale wciąż pojawia się błąd, że typ systemu plików jest nieprawidłowy.

Próbowałem z:

sudo mount -o loop -t iso9660 kali-linux-1.0.9a-armhf.img /mnt/kali
sudo mount -o loop -t ext3 kali-linux-1.0.9a-armhf.img /mnt/kali
sudo mount -o loop -t ext4 kali-linux-1.0.9a-armhf.img /mnt/kali

Występuje błąd:

mount: wrong fs type, bad option, bad superblock on /dev/loop0

Czy to dlatego, że próbuję zamontować obraz utworzony dla innej architektury?

Jedyne polecenie, które zbliża się do działania, to podczas montażu as iso9660. To polecenie generuje:

mount: block device /mnt/hgfs/Downloads/kali-linux-1.0.9a-armhf/kali-linux-1.0.9a-armhf.img is write protected, mounting read only
mount: wrong fs type, bad option, bad superblock on /dev/loop0

Wygląda na to, że się montuje, ale nie działa, a następnie pojawia się błąd. Podczas korzystania z systemu plików innego niż iso9660dostaję tylko ostrzeżenie.

Jakie są moje opcje wyodrębnienia zawartości tego obrazu?

James Jeffery
źródło

Odpowiedzi:

4

Czy to dlatego, że próbuję zamontować obraz utworzony dla innej architektury?

Nie, to dlatego, że próbujesz zamontować obraz, który nie wygląda jak żaden montowany system plików. Jest to cały dysk obraz - zaczyna się od tablicy partycji MBR, a dopiero potem ma kilka partycji numerycznych zawierających systemy plików, z których każdy będzie montowane indywidualnie. (Ten konkretny obraz ma jednak tylko jedną partycję).

Aby uzyskać dostęp do jego zawartości, musisz skonfigurować urządzenie pętli dla każdej partycji, a nie tylko dla całego pliku.

Jeśli masz stosunkowo nowe jądro i util-linux, użyj losetup --partscan:

# losetup -f -P kali-linux-1.0.9a-armhf.img

# losetup
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /tmp/kali-linux-1.0.9a-armhf.img

# lsblk -f
NAME        FSTYPE      LABEL       UUID                                 MOUNTPOINT
loop0
└─loop0p1   ext4        DEBIAN_LIVE 5ac96015-c0e0-45dc-8642-a53d9e9826c8

# mount /dev/loop0p1 /mnt

Jeśli Twój system jest zbyt przestarzały, kpartxnarzędzie zapewnia podobną funkcjonalność .

grawitacja
źródło
Czy -Pliterówka? Strona podręcznika dla losetuppokazuje tylko -popcję dla --pass-fd <num>.
James Jeffery
@LOLKAT: To nie jest literówka. Krótki alias --partscanto wielka litera -P. Jeśli go nie widzisz, Twoja dystrybucja jest za stara, aby go mieć. (Może tak być w przypadku Debiana, który dopiero po kilku latach problemów z utrzymaniem przekazał aktualizację util-linux).
grawity
Działa, dziękuję. Musiałem użyć kpartx, co nie jest niczym wielkim.
James Jeffery