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?
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.
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.
vous pouvez le faire à l'aide d'orvirectrafish - http://libguestfs.org/guestfish.1.html
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