2015年1月17日土曜日

KVM qcow2 ファイルの中のパーティションをマウント

KVM ゲスト用 qcow2 でフォーマットされたディスクイメージの中のパーティションを Ubuntu でマウントしてみました。

環境: Ubuntu 14.04 (Trusty Tahr) Server


qcow2 ファイルの中のパーティションをマウント

まずは qcow2 ファイルをネットワークブロックデバイスファイルに接続します。

ネットワークブロックデバイスファイルを確認

$ ls -la /dev/nbd*
ls: cannot access /dev/nbd*: No such file or directory

ネットワークブロックデバイスファイルがまだ用意されていないので、 nbd カーネルモジュールをロード

$ sudo modprobe nbd

$ ls -la /dev/nbd*
brw-rw---- 1 root disk 43,   0 Jan 17 17:40 /dev/nbd0
brw-rw---- 1 root disk 43,  16 Jan 17 17:40 /dev/nbd1
brw-rw---- 1 root disk 43, 160 Jan 17 17:40 /dev/nbd10
... snip ...

ネットワークデバイスファイルができました。

実際に qcow2 ファイルをネットワークブロックデバイスファイルに接続

パーティションのデバイスファイル (/dev/nbd0p1 とか) はまだできていません

$ ls -la /dev/nbd0*
brw-rw---- 1 root disk 43, 0 Jan 17 17:40 /dev/nbd0

接続

$ sudo qemu-nbd --connect /dev/nbd0 TestMachine.qcow2

パーティションのデバイスファイルができました。

$ ls -la /dev/nbd0*
brw-rw---- 1 root disk 43, 0 Jan 17 17:43 /dev/nbd0
brw-rw---- 1 root disk 43, 1 Jan 17 17:43 /dev/nbd0p1
brw-rw---- 1 root disk 43, 2 Jan 17 17:43 /dev/nbd0p2
brw-rw---- 1 root disk 43, 5 Jan 17 17:43 /dev/nbd0p5

fdisk コマンドで中のパーティション情報を確認することができます。

$ sudo fdisk -l /dev/nbd0

Disk /dev/nbd0: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00073336

         Device Boot      Start         End      Blocks   Id  System
/dev/nbd0p1   *        2048      499711      248832   83  Linux
/dev/nbd0p2          501758    62912511    31205377    5  Extended
/dev/nbd0p5          501760    62912511    31205376   83  Linux

パーティションをマウントします。

$ sudo mount /dev/nbd0p1 /some/where/mount/point/

$ df -h
Filesystem                      Size  Used Avail Use% Mounted on
... snip ...
/dev/nbd0p1                     236M   42M  182M  19% /some/where/mount/point

アンマウント

アンマウントはマウントで実施したことを最後から遡って戻していきます。

パーティションをアンマウント

$ sudo umount /some/where/mount/point

qcow2 ファイルとネットワークブロックデバイスファイルとの接続を解除

$ sudo qemu-nbd --disconnect /dev/nbd0
/dev/nbd0 disconnected

パーティションのデバイスファイルも削除されました。

$ ls -la /dev/nbd0*
brw-rw---- 1 root disk 43, 0 Jan 17 17:43 /dev/nbd0

nbd カーネルモジュールをアンロード

$ sudo rmmod nbd

0 件のコメント:

コメントを投稿