PROXMOX utiliser la console xterm.js pour les VM (et c'est très pratique)

Cette vidéo explique comment activer la console Xterm.js sur une machine virtuelle Proxmox (et non un conteneur) en redirigeant la sortie console via un port série, permettant ainsi le copier-coller lors du démarrage ou de l’administration.

Voir la source

SYNTHÈSE STRUCTURÉE

Les trois consoles disponibles dans Proxmox

L’intervenant rappelle que Proxmox propose trois types de consoles pour accéder aux machines virtuelles. La première, noVNC, s’ouvre dans le navigateur et fonctionne pour tout système (Linux, Windows). Son inconvénient majeur est l’absence de copier-coller : « je peux pas sélectionner, je peux pas copier-coller ». La deuxième, Spice, nécessite le programme Virtual Machine Viewer et offre de meilleures performances graphiques ainsi que le presse-papier partagé, à condition d’avoir un affichage de type Virtio, VirGL ou Spice. La troisième, Xterm.js, est normalement réservée aux conteneurs, mais peut être adaptée aux machines virtuelles.

Pourquoi vouloir Xterm.js sur une VM ?

L’intérêt principal est de pouvoir copier-coller des informations lors du démarrage de la machine, là où les autres consoles échouent. L’intervenant illustre ce besoin avec un reboot : « quand la machine démarre, j’ai des erreurs qui vont s’afficher ici… si je voulais le copier-coller, la petite erreur, le petit warning, et ben je ne peux pas le copier-coller ». Cette fonctionnalité est utile en homelab comme en environnement professionnel pour récupérer des messages de boot ou exécuter des commandes sans connexion SSH.

Prérequis matériel : ajouter un port série

Pour que la console Xterm.js fonctionne sur une VM, il faut d’abord arrêter la machine, puis dans la partie Hardware, ajouter un port série. L’intervenant explique : « On ajoute un port série et à partir de là, on va pouvoir mapper le TTY d’une machine Linux sur ce port série qui est utilisé par la console Xterm.js ». Sans cette étape, la console affichera « starting serial terminal » mais restera vide après le boot.

Configuration du chargeur de démarrage (GRUB)

Une fois le port série ajouté, il faut configurer le système Linux pour qu’il envoie sa console sur le TTY série 0. L’intervenant détaille deux méthodes selon la distribution :

  • Sur Debian/Ubuntu : éditer le fichier /etc/default/grub, ajouter console=ttyS0 à la fin de la ligne GRUB_CMDLINE_LINUX, puis exécuter update-grub.
  • Sur Red Hat/CentOS : utiliser la commande grubby --update-kernel=ALL --args="console=ttyS0", ce qui revient au même que de modifier le fichier et lancer grub2-mkconfig -o /boot/grub2/grub.cfg.

L’intervenant précise que cette modification redirige la sortie console vers le périphérique TTY S0 (série 0).

Vérification et utilisation après reboot

Après avoir appliqué la configuration et redémarré la machine, la console Xterm.js affiche désormais le démarrage complet du système. L’intervenant montre qu’il peut copier-coller les messages de boot : « vous voyez ça, je peux le copier-coller ». Il vérifie également avec la commande cat /proc/cmdline que la ligne de commande du noyau contient bien console=ttyS0. La console reste interactive : on peut exécuter des commandes comme systemctl status et coller du texte.

Limites et différences avec noVNC

L’intervenant insiste sur le fait que cette console est distincte de noVNC : « On ajoute juste une redirection de la console sur un port série et c’est ce port qui est utilisé par cette console Xterm.js ». La console noVNC reste fonctionnelle en parallèle, mais sans copier-coller. La solution présentée ne remplace donc pas les autres consoles, elle les complète pour des cas spécifiques.

CONCEPTS CLÉS

  • Port série (serial port) : interface de communication asynchrone, ici utilisée pour rediriger la sortie console d’une VM Linux vers un périphérique accessible par Proxmox.
  • TTY S0 : désigne le premier terminal série (ttyS0) sous Linux, correspondant au premier port série de la machine.
  • GRUB_CMDLINE_LINUX : variable de configuration de GRUB qui permet d’ajouter des arguments à la ligne de commande du noyau Linux.
  • grubby : outil spécifique aux distributions Red Hat pour modifier les paramètres de démarrage des noyaux sans éditer manuellement les fichiers de configuration.

CONCLUSION

L’astuce présentée par Adrien est simple mais puissante : en ajoutant un port série à une VM Proxmox et en configurant GRUB pour rediriger la console sur ce port, on débloque la fonctionnalité de copier-coller de Xterm.js sur des machines virtuelles. Cela résout un problème concret d’administration, notamment pour capturer des messages de boot ou exécuter des commandes sans SSH. Cette méthode, bien que spécifique, illustre comment une petite modification matérielle et logicielle peut grandement améliorer le quotidien d’un administrateur système.

Du même canal

Tout voir