まるごと吸い出したHDDイメージをマウントする

Posted on Fri 09 April 2010 in サーバー管理

ddなどでHDD全体をイメージファイルにした場合は、そのままマウントすることが出来ないので以下の手順でマウントを行う。

まずは、HDDディスクイメージをループバックデバイスに結びつける。

$ sudo losetup /dev/loop0 hdd.img

次に、fdiskでパーティション構成を出力。

$ sudo fdisk /dev/loop0 -lu
Disk /dev/loop0: 4034 MB, 4034838528 bytes
128 heads, 63 sectors/track, 977 cylinders, total 7880544 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x001c2022
Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1              63      112895       56416+  83  Linux
/dev/loop0p2          112896     7902719     3894912    5  Extended
/dev/loop0p5          112959     3088511     1487776+  83  Linux
/dev/loop0p6         3088575     3588479      249952+  83  Linux
/dev/loop0p7         3588543     4217471      314464+  83  Linux
/dev/loop0p8         4217535     4846463      314464+  83  Linux
/dev/loop0p9         4846527     7257599     1205536+  83  Linux

例えば、/dev/loop0p9のパーティションをマウントするには、loop0p9の開始シリンダが4846527なので、セクターのサイズ512byteを掛けて
512 * 4846527 = 2481421824byteのオフセットを指定してループバックデバイスに結びつけて、ループバックデバイスを適当なディレクトリにマウントする。

$ sudo losetup -o 2481421824 /dev/loop1 hdd.img
$ sudo mount -o loop /dev/loop1 /mnt

使い終わったら以下のようにして解放する。

$ sudo losetup -d /dev/loop1
$ sudo losetup -d /dev/loop0