2007/01/31

Dom0からDomUのイメージファイルをディスクデバイスとして扱う

DomUの/var/xen/rescue.imgをDom0側からマウントしたい、という場合がある。例えば、DomUの/boot/grub/grub.confを書き換えたり、rootのパスワードを忘れた場合などだ。

手順だが、簡単に言うと、(1)イメージファイルをループバックデバイスに割り当て、(2)これをパーティション毎にマップし、それをマウントすればOK。まずは、ループバックデバイスの空きを調査する。
# losetup -f
/dev/loop3
#
このループバックデバイス/dev/loop3に、イメージファイルを割当てる。
# losetup /dev/loop3 /var/xen/rescue.img
#
/dev/loop3をパーティション毎にマップする。
# ls /dev/mapper/
control  VolGroup00-LogVol00  VolGroup00-LogVol01  VolGroup00-LogVol02
# kpartx -a /dev/loop3
# ls /dev/mapper/
control  loop3p2  VolGroup00-LogVol00  VolGroup00-LogVol02
loop3p1  loop3p3  VolGroup00-LogVol01
#
/var/xen/rescue.imgの中のパーティションが、/dev/mapper/loog3p[1-3]に割当てられたのが解る。通常、これがそれぞれ、/boot、swapおよび/になっているので、適宜マウントする。もし、LVMを使っていれば、vgscanで再度マップし直す必要があるが、この手順については、以前述べた通り。

使用後は、この逆の手順で元に戻す。マウントを解除した後、
# kpartx -d /dev/loop3
# ls /dev/mapper/
control  VolGroup00-LogVol00  VolGroup00-LogVol01  VolGroup00-LogVol02
# losetup -d /dev/loop3
#
とする。

なお、kpartxは、以下のパッケージに含まれる。
# rpm -qf `which kpartx`
device-mapper-multipath-0.4.5-12.2

0 件のコメント: