web-dev-qa-db-ja.com

仮想マシンのLVMパーティションをKVMホストにマウントする方法は?

KVM Host:

# kpartx -av /dev/VolGroup00/kvm101_img
add map kvm101_img1 : 0 208782 linear /dev/VolGroup00/kvm101_img 63
add map kvm101_img2 : 0 125612235 linear /dev/VolGroup00/kvm101_img 208845
# mount /dev/mapper/kvm101_img1 /mnt

次に、/ bootパーティションをマウントします。しかし、次のように入力するとエラーが発生します。

# mount /dev/mapper/kvm101_img2 /mnt
mount: you must specify the filesystem type

ゲストマシンのfdiskレイアウトは次のとおりです。

# fdisk -l
Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *           1          13      104391   83  Linux
/dev/hda2              14        7832    62806117+  8e  Linux LVM

ゲストのルートパーティションを見つけてホストシステムにマウントすることはできますか?

11
Evolver

ようやく必要なことをやろうと思ったようです。これが私がしたことです:

# kpartx -av /dev/VolGroup00/kvm101_img
# vgscan

ゲストシステムとホストシステムでVolGroup名が同じ場合、ゲストVolGroupの名前を変更する必要があります

# vgrename <uuid> VolGroupXX

vgdisplayでチェックできるVolGroupsのuuid。したがって、コツはゲストVolGroupをアクティブにすることです。

# lvscan
# vgchange -ay VolGroupXX
# lvscan

その後、簡単にマウントされます。

# mount /dev/VolGroupXX/LogVol00 /mnt

最後に、バックワードプロセスは次のとおりです。

# umount /mnt
# vgchange -an VolGroupXX
# kpartx -dv /dev/VolGroup00/kvm101_img
# pvscan

最後のコマンドはLVMキャッシュを消去し、kpartxによって作成された物理ボリュームをLVMから削除します。

14
Evolver

あなたがあなたの状況でそれを理解したことをうれしく思います。

より一般的なケースでは、ゲストドライブはqcow、qcow2などのさまざまな形式になっている可能性があるため、それらを直接操作することはできません。この場合、ホスト上で次のように使用できます。

# modprobe nbd
# kvm-nbd -c /dev/nbd0 file.qcow2

次に、rawゲストドライブとして/ dev/nbd0にアクセスできます。このデバイスの使用を停止するには、次を実行する必要があります。

# nbd-client -d /dev/nbd0

一方、ゲストドライブがraw形式の場合は、losetupを使用します。

# losetup -f file.raw

これにより、最初に利用可能なループデバイス(/ dev/loop0など)が見つかり、使用されます。使用を停止するには、次を実行:

# losetup -d /dev/loop0

この後、答えに記載したkpartx/vgscan/lvscan /マウント手順を実行できます。

4
joechip

あなたはguestfishを使用してそれを行うことができます- http://libguestfs.org/guestfish.1.html

2
dyasny

libguestfs パッケージのguestfishを使用する方が簡単かもしれません。手動で実行するのではなく、迷惑な詳細をすべて解決する必要があります。

1
TomH