質問: ディスクイメージを検査する方法 ハードディスクのダンプがあります。ハードディスクリカバリ会社が私のために作ってくれました。彼らがダンプを作成するためにどのソフトウェアを使用したかはわかりません。私が持っているのはファイルだけですdisk.img。始めるための私の唯一のアイデアは、fileを使用することでした。$ file disk.img 12693a.img: x86 boot sector; grand unified bootloader, stage1 version 0x3, stage2 address 0x2000, stage2 segment 0x200; partition 1: id=0xc, starthead 1, startsector 63, 312576642 sectors, code offset 0x48 これがハードディスクのダンプの場合、次の順序で含まれていると思います。a)ブートセクターb)パーティションテーブルc)パーティションしたがって、fileツールは(任意の)ファイルの最初の部分を読み取るだけだと思います。この場合、最初の部分はブートセクターですが、ファイルにはさらに多くの部分が含まれています。方法:1)パーティションテーブルを参照してください。 16進コードではなく、そこにどのパーティションがあるかについて人間が読めるもの。2)各パーティションの内容を確認するにはどうすればよいですか?これは、物理ディスクではなく、ファイルを変更することに興味がなく、コンテンツを見るだけであるにもかかわらず、「マウント」と呼ばれていると思います。
回答: ディスク全体のコピーを含むファイルであるため、他のブロックデバイスと同じように扱い、fdiskを実行できます。ディスクイメージの名前がdisk.imgであるとすると、次のコマンドで十分です。fdisk -l disk.img これにより、次のような出力が得られます。disk /home/yjwong/disk.img: 250.1 gb, 250058268160 bytes 255 heads, 63 sectors/track, 30401 cylinders, total 488395055 sectors units = sectors of 1 * 512 = 512 bytes device boot start end blocks id system /home/yjwong/disk.img1 2048 3905535 1951744 82 linux swap / solaris /home/yjwong/disk.img2 * 3905536 488394751 242244608 83 linux パーティションをマウントするために、linuxカーネルでは、mountコマンドでディスクイメージへのオフセット(バイト単位)を指定できます。ディスクイメージ内のパーティションをループマウントする必要があります。ただし、fdiskは開始オフセットをセクター単位で指定するため、所定のオフセットにセクターサイズ(通常は512)を掛ける必要があります。上記の例の2番目のパーティションをマウントするには、オフセットは3905536 * 512 = 1999634432です。次のコマンドは、パーティションタイプがext4であり、/mntが目的のマウントポイントであると仮定して、トリックを実行します。sudo mount -t ext4 /home/yjwong/disk.img /mnt -o loop,offset=1999634432 読み取り専用でコンテンツを表示する場合は、マウントオプションにroを追加できます。sudo mount -t ext4 /home/yjwong/disk.img /mnt -o loop,offset=1999634432,ro