ハードディスクなどのすべての領域をddでファイルに落とした場合、作成されたディスクイメージに複数のパーティションが存在する。
これをloopデバイスでマウントするにはoffsetオプションを指定すれば良い
マウント方法
コマンド書式
# mount -o loop,offset=${offset} ${image_file} ${mount_point}
offsetに指定する値は、パーティションの開始位置に512を掛けた値です
例えば、以下の場合で、パーティション2をマウントしたいとします
# fdisk -l pidora-sdcard_20160322.img
ディスク pidora-sdcard_20160322.img: 7.5 GiB, 8043626496 バイト, 15710208 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: dos
ディスク識別子: 0x0009c1ec
デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ
pidora-sdcard_20160322.img1 * 2048 104447 102400 50M c W95 FAT32 (LBA)
pidora-sdcard_20160322.img2 104448 15523839 15419392 7.4G 83 Linux
開始位置が 104448 なので、これに 512 を掛けた 53477376 を指定します
電卓を使って計算するのは面倒なので、exprコマンドを使っても良いです
$ expr 104448 '*' 512
53477376
この結果をコマンドに渡せば更に楽です
# mount -o loop,offset=`expr ${partition_start} '*' 512` ${image_file} ${mount_point}
実行例
# mount -o loop,offset=`expr 104448 '*' 512` pidora-sdcard_20160322.img /mnt/hd
dfコマンドでマウント出来ていることを確認します
# df /mnt/hd
ファイルシス 1K-ブロック 使用 使用可 使用% マウント位置
/dev/loop0 7525616 4099892 3081608 58% /mnt/hd