LoginSignup
12
11

More than 5 years have passed since last update.

[Linux] ディスクイメージに複数のパーティションがある時のマウント方法

Posted at

ハードディスクなどのすべての領域を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
12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11