web-dev-qa-db-ja.com

マウントせずに.imgを閲覧する

とにかく.imgファイルをマウントせずに閲覧することはできますか? clonezillaパーティションのスナップショットから生成した.imgファイルがあります。コマンドmount -o loop sda5.img /mnt/を使用してファイルをマウントすると問題が発生します。

dmesg | tailは次のエラーを表示します:

[1325.395286] EXT4-fs(loop0):不正なジオメトリ:ブロックカウント11221248がデバイスのサイズ(11218432ブロック)を超えています

マウントせずに閲覧する方法や、このエラーの原因は何ですか?

13
Ahatius

これがハードドライブ全体のイメージである場合、または場合によっては拡張パーティションのイメージである可能性がある場合、パーティションレイアウトとそれらをマウントするには、ファイル内の各パーティションのオフセットを知る必要があります。

これを行うには、partedツールが必要になります。次のコマンドでインストールできます。

apt-get install parted

partedをインストールしたら、イメージファイルへのパスで開始します。 partedプロンプトが表示されます。

$ parted /path/to/image/file/sda5.img
GNU Parted 2.3
.....
(parted)

このプロンプト((parted)で始まる)で、次のコマンドを入力します。

(parted) unit B
(parted) print
.....
Number  Start          End            Size           Type     File system  Flags
 1      1048576B       1573912575B    1572864000B    primary  ntfs         boot
 2      1573912576B    156774694911B  155200782336B  primary  ntfs
 3      156774694912B  171454758911B  14680064000B   primary  ntfs
 4      171454758912B  180044693503B  8589934592B    primary

(parted) q

出力の表は、ファイル内の各パーティションのオフセットと各パーティションのファイルシステムタイプを示します。たとえば、上記の出力例の最初のパーティションをマウントするには、次のコマンドを入力する必要があります。

Sudo mount -o loop,ro,offset=1048576 /path/to/image/file/sda5.img /mnt/partition

/mnt/partitionが最初に存在することを確認してください。

18
bender

Clonezillaスナップショットから生成されたext4イメージでも同じ問題が発生しました。

実際に機能したのは、truncateを使用して、ファイルをパーティションテーブルが報告するサイズに拡張することでした。私の場合に報告されたエラーdmesgは次のとおりです。

[15687.653868] EXT4-fs (loop0): bad geometry: block count 18482176 exceeds size
  of device (18352672 blocks)

そこで、ファイルの長さを次のように調整しました。

truncate -o -s 18482176 /path/to/partition.img

(^これがログの2つの数値の最初の大きい数値であることに注意してください)

その後、マウントは幸せで、データにアクセスできました。

8
Anthony Lenton