とにかく.imgファイルをマウントせずに閲覧することはできますか? clonezillaパーティションのスナップショットから生成した.imgファイルがあります。コマンドmount -o loop sda5.img /mnt/
を使用してファイルをマウントすると問題が発生します。
dmesg | tail
は次のエラーを表示します:
[1325.395286] EXT4-fs(loop0):不正なジオメトリ:ブロックカウント11221248がデバイスのサイズ(11218432ブロック)を超えています
マウントせずに閲覧する方法や、このエラーの原因は何ですか?
これがハードドライブ全体のイメージである場合、または場合によっては拡張パーティションのイメージである可能性がある場合、パーティションレイアウトとそれらをマウントするには、ファイル内の各パーティションのオフセットを知る必要があります。
これを行うには、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
が最初に存在することを確認してください。
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つの数値の最初の大きい数値であることに注意してください)
その後、マウントは幸せで、データにアクセスできました。