KVM
Faire fonctionner ACPI (poweroff) dans une VM
installer acpid
- dans le cas d'une vieille Debian :
s'assurer de la présence du fichier /proc/acpi/events (noyau Linux ≤ 2.6)
s'assurer que hal ne vient pas s'accaparer l'accès à ce fichier avant acpid
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) :
À 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