5.4. Ouvrir la console série d'une machine virtuelle
En utilisant la commande virsh console
, il est possible de se connecter à la console série d'une machine virtuelle (VM).
Ceci est utile lorsque la VM :
- Ne fournit pas de protocoles VNC et n'offre donc pas d'affichage vidéo pour les outils d'interface graphique.
- Ne dispose pas d'une connexion réseau et ne peut donc pas être contacté à l'aide de SSH.
Conditions préalables
Le chargeur d'amorçage GRUB de votre hôte doit être configuré pour utiliser la console série. Pour le vérifier, vérifiez que le fichier
/etc/default/grub
de votre hôte contient le paramètreGRUB_TERMINAL=serial
.$ sudo grep GRUB_TERMINAL /etc/default/grub GRUB_TERMINAL=serial
La VM doit avoir un périphérique de console série configuré, tel que
console type='pty'
. Pour vérifier, procédez comme suit :# virsh dumpxml vm-name | grep console <console type='pty' tty='/dev/pts/2'> </console>
La console série doit être configurée dans la ligne de commande du noyau de la machine virtuelle. Pour le vérifier, la sortie de la commande
cat /proc/cmdline
sur la VM doit inclure console=<console-name>, où <console-name> est spécifique à l'architecture :-
Pour AMD64 et Intel 64 :
ttyS0
Pour ARM 64 :
ttyAMA0
NoteLes commandes suivantes de cette procédure utilisent
ttyS0
.# cat /proc/cmdline BOOT_IMAGE=/vmlinuz-3.10.0-948.el7.x86_64 root=/dev/mapper/rhel-root ro console=tty0 console=ttyS0,9600n8 rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb
Si la console série n'est pas configurée correctement sur une VM, l'utilisation de virsh console pour se connecter à la VM vous connecte à une console invitée qui ne répond pas. Cependant, vous pouvez toujours quitter la console qui ne répond pas en utilisant la touche Ctrl+] pour quitter la console qui ne répond pas.
Pour configurer la console série sur la VM, procédez comme suit :
Sur la VM, activez l'option
console=ttyS0
kernel :# grubby --update-kernel=ALL --args="console=ttyS0"
Effacez les options du noyau qui pourraient empêcher vos modifications de prendre effet.
# grub2-editenv - unset kernelopts
- Redémarrez la VM.
-
Pour AMD64 et Intel 64 :
Le service
serial-getty@<console-name>
doit être activé. Par exemple, sur AMD64 et Intel 64 :# systemctl status serial-getty@ttyS0.service ○ serial-getty@ttyS0.service - Serial Getty on ttyS0 Loaded: loaded (/usr/lib/systemd/system/serial-getty@.service; enabled; preset: enabled)
Procédure
Sur votre système hôte, utilisez la commande
virsh console
. L'exemple suivant se connecte à la VM guest1, si le pilote libvirt prend en charge la gestion de la console sécurisée :# virsh console guest1 --safe Connected to domain 'guest1' Escape character is ^] Subscription-name Kernel 3.10.0-948.el7.x86_64 on an x86_64 localhost login:
- Vous pouvez interagir avec la console virsh de la même manière qu'avec une interface de ligne de commande standard.
Ressources supplémentaires
-
La page de manuel
virsh