kpartx ツールを使用すると、これが簡単になります。イメージ内の各パーティションの /dev/mapper にループ デバイスを作成します。次に、手動でオフセットを計算することなく、目的のパーティションに対応するループ デバイスをマウントできます。
たとえば、ディスク イメージの最初のパーティションをマウントするには:
kpartx -a -v myimage.disk
mount /dev/mapper/loop0p1 /mnt/myimage
イメージの処理が完了したら、ループ デバイスを削除します。
umount /mnt/myimage
kpartx -d -v myimage.disk
または、最近のカーネルを使用していて、ブート時 (ループが組み込みの場合) または modprobe に loop.max_part=63 を渡す場合 (ループがモジュールの場合)、次の方法でそれを行うことができます:
losetup /dev/loop0 myimage.disk
partprobe /dev/loop0 # Re-read partition table if /dev/loop0 was used with a different image before
mount /dev/loop0p1 /mnt/myimage
ループが終わったら:
losetup -d /dev/loop0
これを見つけました:
http://www.andremiller.net/content/mounting-hard-disk-image-included-partitions-using-linux
まさに私が探していたものです。
重要な部分は次のとおりです:
mount -o loop,ro,offset=32256 hda.img /mnt/rabbit
ここで、offset の値はバイト単位です。オフセットを取得するための推奨される方法は、 parted
を指すことです イメージで、バイトの単位 B を指定し、印刷出力から開始値を取得します。別の方法として、ディスク容量があると仮定して、明らかなことを行います:オフセットとサイズを取得したら、 dd
を使用するだけです 各パーティションを個別のファイルに抽出します。
最近では udisks
を使用して作業を最小限に抑えることができます . ArchWiki からの解決策:udisks - ループ デバイスのマウント
ISO イメージを簡単にマウントするには、次のコマンドを使用します:
udisksctl loop-setup -r -f image.iso
これにより、ループ デバイスが作成され、マウントする準備が整った ISO イメージが表示されます。マウントが解除されると、ループ デバイスは udev によって終了されます。
-r
読み取り専用オプションがあります。