Après avoir effectué une migration physique-vers-virtuel (P2M) d’un serveur Debian 6 (Squeeze) dans un environnement de virtualisation KVM sous Linux, je me suis vu confronté au bug unaligned pointer  suivant lorsque la machine tentait de booter.

Choix croisé du module vidéo et du bus disque

On peut trouver sur internet sans difficulté que c’est un problème de module vidéo, mais je ne suis pas arrivé à ce constat. Pour moi c’est un bug croisé entre le module vidéo choixi, et le bus de disque dur.

En effet pour ma  part, la machine virtuelle bootait sans difficulté avec le bus disque « SATA » mais le message d’erreur ci-dessus se déclenchait avec « virtio ». Le pilote graphique était fixé à « QXL ».

En basculant au pilote vidéo « VGA » j’ai pu conserver virtio sur les disques durs sans problème. C’est le module vidéo le plus simple qui soit disponible, et donc celui à privilégier pour limiter les incompatibilités. A l’inverse, QXL et VMVGA sont normalement plus poussés au niveau des performances.

Vidéo \ HDD SATA virtio
QXL
VGA
Cirrus ? ?
VMVGA ?

Le tableau ci-dessus présente les cas de figure où le bug est rencontré. Je n’ai personnellement testé que les modules vidéo QXL et VGA, les autres informations sont issues de pages web sur la question, elles ne sont pas vérifiées d’où le point d’interrogation.

Instructions supplémentaires pour utiliser virtio

Les machines virtuelles sous Linux n’ont généralement pas de difficulté à employer le bus virtio pour accélérer les IO disque et réseau. Le wiki Debian spécifie tout de même des précautions à observer pour être certain que tout se passe comme prévu.

Pour que le noyau ait tous les modules requis dès le démarrage, directement dans le initramfs, il est recommandé d’ajouter les modules noyau virtio_pci  et virtio_blk  dans /etc/initramfs-tools/modules  puis d’appliquer les changements avec la commande update-initramfs -u .