KVMゲストのイメージをディスクとしてマウントする。

Ubuntu 10.04 LTSから12.04 LTSにアップグレードした実験台のKVMゲストがアップグレード作業後に起動しなくなってしまった。
作業前にaptitudeを実行するとパッケージエラーが発生していたのだが、それを無視してアップグレードしようとしたのがいけなかったのかも。
その実験台KVMホストは普段使っていないと思っていたのだが、実は外部公開している権威DNSサーバだったことを事後に思い出した。
このWordPressが動いているWebサーバはアップグレードに成功したので、これをクローンしてまたDNSサーバを立てればよいところではあったが、ゾーン定義をまたゼロから書くのは面倒だなと思い、起動しなくなったイメージをマウントしてゾーン定義情報だけでも抜き出せないかと思い立った。
前の職場にいたときにCentOSでXenからKVMへのホストの移行をした際に似たようなことをやっていたので何かしらの手はあると考えていたのだが、調べてみると今回はその当時にやっていた手順よりもずっと簡単にイメージをマウントすることができるようだった。

# modprobe nbd
# qemu-nbd –connect=/dev/nbd0 <KVMゲストイメージファイル>
# fdisk -l /dev/nbd0

Disk /dev/nbd0: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00088aac

Device Boot      Start         End      Blocks   Id  System
/dev/nbd0p1   *           1         994     7977984   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/nbd0p2             994        1045      407553    5  Extended
/dev/nbd0p5             994        1045      407552   82  Linux swap / Solaris
# mount -t ext4 /dev/nbd0p1 /mnt

~ データ救出作業 ~

# umount /mnt
# qemu-nbd –disconnect /dev/nbd0

今回は救出する術があってよかったが、本来はバックアップのために作業前のクローンを作っておくべきだった。
KVMホストのアップグレードはやり直せないので気をつけなければ。

参考サイト:
http://d.hatena.ne.jp/okinaka/20091227/1261819496


投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す