web-dev-qa-db-ja.com

不明なファイルシステムで.imgのコンテンツを抽出する

画像ファイルがあります:kali-linux-1.0.9a-armhf.imgKali Linux ARMH buildの画像です。

画像の内容を抽出しようとしていますが、役に立ちません。イメージをマウントしようとしましたが、ファイルシステムタイプが間違っているというエラーが表示され続けます。

私は試しました:

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

私が得るエラーは次のとおりです。

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

これは、別のアーキテクチャ用に作成されたイメージをマウントしようとしているためですか?

動作に近づく唯一のコマンドは、iso9660としてマウントする場合です。そのコマンドは以下を出力します:

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

そのため、マウントされているように見えますが、マウントされていないため、エラーが発生します。 iso9660以外のファイルシステムを使用すると、警告のみが表示されます。

この画像のコンテンツを抽出するための私のオプションは何ですか?

2
James Jeffery

これは、別のアーキテクチャ用に作成されたイメージをマウントしようとしているためですか?

いいえ、そもそもマウント可能なファイルシステムのように見えないイメージをマウントしようとしているためです。 これはディスク全体イメージです – MBRパーティションテーブルで始まり、ファイルシステムを含むいくつかのパーティションがあります。そのうち個別にマウントされます。 (ただし、この特定のイメージには1つのパーティションしかありません。)

その内容にアクセスするには、ファイル全体だけでなく、パーティションごとにループデバイスを設定する必要があります。

比較的最近のカーネルとutil-linuxを使用している場合は、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

システムが古すぎる場合は、同様の機能がkpartxツールによって提供されます。

4
user1686