KVM

Faire fonctionner ACPI (poweroff) dans une VM

Repasser de Linux 3.x à Linux 2.6

Dans le cas d'une VM démarrée avec un noyau externe Linux 3.x, il peut être nécessaire de redescendre à une version 2.6, par exemple pour pouvoir faire fonctionner acpid.

Si le système de la VM est sur une partition formatée en ext4, elle ne pourra être montée qu'à partir de Linux 2.6.28. Or Debian “etch” 4 propose soit Linux 2.6.18 (de base), 2.6.24 (etchnhalf) ou 2.6.26 (backports). Il faut alors transformer la partition en ext3 avant de pouvoir démarrer sur l'un de ces noyaux.

À faire du côté VM (sous root) :

   1 for m in virtio virtio_pci virtio_blk; do grep -q "^$m$" /etc/initramfs-tools/modules || echo $m >> /etc/initramfs-tools/modules; done
   2 apt-get install --reinstall linux-image-2.6-686-etchnhalf grub-pc
   3 poweroff

À faire du côté hôte KVM (sous root), après que la VM ait été éteinte :

   1 virsh domblklist my-vm # pour identifier le chemin du disque à manipuler
   2 mv -i my-vm-system.img my-vm-system-old.img # renommage pour bien identifier la version originale
   3 qemu-img convert -p -O raw my-vm-system-old.img my-vm-system-old.raw # conversion en image brute pour travailler dessus
   4 cp -ai my-vm-system-old.raw my-vm-system-new.raw # copie de l'original pour travailler dessus
   5 kpartx -va my-vm-system-old.raw # mappage des partitions de l'original via loop0pX
   6 kpartx -va my-vm-system-new.raw # mappage des partitions de la copie via loop1pX
   7 losetup # pour vérifier les références des loopX à utiliser (normalement loop0 et loop1)
   8 mkdir mnt-old ; mount /dev/mapper/loop0p1 mnt-old # montage de la partition de l'original
   9 mkfs -t ext3 /dev/mapper/loop1p1 # reformatage de la partition sur la copie
  10 mkdir mnt-new ; mount /dev/mapper/loop1p1 mnt-new # montage de la partition nouvellement formatée
  11 rsync -avxPHS --numeric-ids mnt-old/ mnt-new/ # transfert à l'identique de la partition originale en ext4 vers la copie en ext3
  12 umount mnt-new ; kpartx -vd my-vm-system-new.raw # démontage et démappage des partitions de la copie
  13 umount mnt-old ; kpartx -vd my-vm-system-old.raw # démontage et démappage des partitions de l'original
  14 rm my-vm-system-old.raw # on peut maintenant supprimer l'image originale brute
  15 qemu-img convert -p -O qcow2 my-vm-system-new.raw my-vm-system.img # conversion au format optimisé QCOW2
  16 virsh start my-vm # la VM démarre sur la nouvelle image avec partition ext3
  17 

JeanChristopheAndré/Notes/KVM (dernière édition le 2023-07-27 00:47:04 par JeanChristopheAndré)