Linuxでddrescueを使用して完全なNTFSディスクを回復しました。問題は、パーティション(sdX#)をレスキューしただけでなく、パーティションテーブルを備えた完全なディスク(sdX)をレスキューしたことです。
ディスクパーティションをループバックデバイスとしてマウントするのは本当に簡単ですが、同じ方法で完全なディスクイメージのパーティションをマウントする方法はありますか?イメージを別のディスクに書き込むことはできますが、必要ないと思います。
ドライブ全体をイメージした場合は、mountコマンドでoffsetオプションを使用できます。 mmls( Sleuth Kit から)は画像内のパーティションを表示できます
$ mmls image -b
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot Start End Length Size Description
00: ----- 0000000000 0000000000 0000000001 0512B Primary Table (#0)
01: ----- 0000000001 0000000031 0000000031 0015K Unallocated
02: 00:01 0000000032 0001646591 0001646560 0803M DOS FAT16 (0x06)
03: 00:00 0001646592 0002013183 0000366592 0179M DOS FAT16 (0x06)
ブロック32から始まるDOSパーティションをマウントします。
Sudo mount -o loop,offset=16384 image mnt
(32に512バイトのブロックを掛けたもの= 16384)
Windowsで作成された一般的なNTFSパーティションをマウントするには、次を使用します。
Sudo mount -t ntfs -o r,force,loop,offset=32256 image mnt
(63×512バイトブロック= 32256)
別の解決策は、losetupを使用してイメージをブロックデバイスにマップし、次にkpartxを使用してループバックデバイスをスキャンし、各パーティションのブロックデバイスを作成して、それらをマウントすることです。 (未テスト)のようなもの
losetup /device/loop0 /path/to/file.img
kpartx /dev/loop0
mount /device/mapper/loop0p1 /mntpath