web-dev-qa-db-fra.com

Comment monter la partition LVM de la machine virtuelle sur KVM hôte?

Si j'essaye de faire suite à KVM hôte:

# 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

ensuite, je reçois/démarrer la partition montée. Mais je reçois une erreur si je tapez ensuite suivi:

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

Voici une mise en page FDISK sur la machine invitée:

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

Est-il possible de trouver une partition racine sur votre invité et de la monter sur le système hôte?

11
Evolver

Semble que j'ai finalement compris comment faire des choses dont j'avais besoin. Voici ce que j'ai fait:

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

si les noms Voltgroup sont identiques dans les systèmes d'invité et d'hôte, vous devez renommer le groupe Voltgroup d'invités.

# vgrename <uuid> VolGroupXX

uuid de voltgroups que vous pouvez enregistrer vgdisplay. Donc, l'astuce consiste à activer voltgroup invité:

# lvscan
# vgchange -ay VolGroupXX
# lvscan

Après cela, il est facilement monté:

# mount /dev/VolGroupXX/LogVol00 /mnt

Enfin, le processus arriéré est:

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

La dernière commande nettoie le cache LVM et supprime le volume physique créé par KPartX de LVM.

14
Evolver

Je suis content que vous l'avez compris pour votre situation.

Dans l'affaire plus générale, la conduite invitée pourrait être dans une variété de formats tels que Qcow, Qcow2, etc., de sorte que vous ne pourriez donc pas y travailler directement sur eux. Dans ce cas, vous pouvez utiliser quelque chose comme sur l'hôte:

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

Ensuite, vous pourriez accéder à/dev/nbd0 en tant que module d'invité cru. Pour arrêter d'utiliser cet appareil, vous devez exécuter:

# nbd-client -d /dev/nbd0

Si, d'autre part, le module d'invité était au format RAW, vous utiliseriez des lossers:

# losetup -f file.raw

Cela trouverait et utiliserait le premier périphérique de boucle disponible (E.G.,/dev/Loop0). Pour arrêter de l'utiliser, courez:

# losetup -d /dev/loop0

Après cela, vous pourrez faire la procédure KPartx/VGScan/LVScan/Mount, vous décrivez dans votre réponse.

4
joechip

vous pouvez le faire à l'aide d'orvirectrafish - http://libguestfs.org/guestfish.1.html

2
dyasny

Il pourrait être plus facile d'utiliser guestfish à partir du paquet libietsfs package qui devrait fonctionner tous les détails ennuyeux pour vous au lieu d'essayer de le faire manuellement

1
TomH