Installer les "Guest Additions" dans une machine virtuelle

Le principe des "Guest Additions" est de placer, au sein du noyau du système d'exploitation de la machine virtuelle, un certain nombre de routines de bas niveau qui communiquent avec la couche d'abstraction matérielle du logiciel de virtualisation.

On obtient ainsi une amélioration des performances d'accès aux périphériques physiques (à la carte graphique notamment) et une meilleure intégration avec le système hôte (partage du presse-papier et de la souris, par exemple). Elles ne sont pas indispensables et n'existent pas pour tous les type de systèmes invités[1].

Chaque version de VirtualBox apporte sa version des Guest Additions (qu'on peut traduire par modifications complémentaires pour les systèmes invités) sous la forme d'un fichier image ISO nommé "VBoxGuestAdditions.iso" déposé dans son répertoire d'installation.

christophe@Ubuntu:~$ cd /usr/share/virtualbox
christophe@Ubuntu:/usr/share/virtualbox$ ls -al VBoxGuestAdditions.iso 
-rw-r--r-- 1 root root 33779712 2009-11-30 12:41 VBoxGuestAdditions.iso

Pour les installer dans le système invité, il faut dans un premier temps monter l'image ISO comme un CD-ROM. Il est possible de faire cela par le gestionnaire de support virtuel, par le menu de la fenêtre de la machine virtuelle où, comme c'est indiqué sur le menu, par le raccourci Host+D : Montage de l'ISO des Guest Additions

L'image ISO des Guest Additions apparait alors sur le bureau. Guest Additions monté

En l'ouvrant, on trouve un script d'installation nommé "autorun.sh" qui convient de lancer dans un terminal :

Contenu et lancement des Guest Additions

Après avoir autorisé le lancement par la saisie de votre mot de passe (le script intègre un "sudo"), l'installation se déroule avec une dialogue qui peut légèrement varier suivant qu'il s'agit d'une première installation ou d'une ré-installation.

Exécution des Guest Additions

Il faut en effet savoir que les Guest Additions doivent être réinstallées dans les cas suivants :

  • chaque fois que la version du noyau du système invité est modifiée,
  • chaque fois que la version majeure de VirtualBox change sur le système hôte,
  • parfois pour le changement de la version mineure de VirtualBox sur le système hôte si les Guest Additions font l'objet de corrections.

Ci dessous, une trace liée à un changement de version majeure de VirtualBox :

Verifying archive integrity... All good.
Uncompressing VirtualBox 3.1.0 Guest Additions for Linux........
VirtualBox Guest Additions installer
You appear to have a version of the VBoxGuestAdditions software
on your system which was installed from a different source or using a
different type of installer.  If you installed it from a package from your
Linux distribution or if it is a default part of the system then we strongly
recommend that you cancel this installation and remove it properly before
installing this version.  If this is simply an older or a damaged
installation you may safely proceed.

Do you wish to continue anyway? [yes or no]
yes
Building the VirtualBox Guest Additions kernel modules
Building the main Guest Additions module ...done.
Building the shared folder support module ...done.
Building the OpenGL support module ...done.
Doing non-kernel setup of the Guest Additions ...done.
You should restart your guest to make sure the new modules are actually used

Installing the Window System drivers
Installing X.Org Server 1.6 modules ...done.
Setting up the Window System to use the Guest Additions ...done.
You may need to restart the hal service and the Window System (or just restart
the guest system) to enable the Guest Additions.

Installing graphics libraries and desktop services components ...done.
Press Return to close this window...

Il est nécessaire de redémarrer le système invité pour profiter des apports liés aux Guest Additions :

  • L'intégration du pointeur de souris; au lieu des deux curseurs, dont l'un reste comme enfermé dans la fenêtre du système invité, un seul pointeur agit indifféremment sur les fenêtres de l'hôte et celles de l'invité, ce qui est bien plus confortable.
  • Le presse papier partagé, mono ou bidirectionnel (à configurer pour chaque machine virtuelle); l'enchainement entre un copier et un coller fonctionne entre les deux machines au lieu d'être cantonnés à une seule.
  • La taille de fenêtre flottante; le système invité occupe toute la fenêtre mise à sa disposition par le système hôte (raccourci Host+G) jusqu'au mode plein écran (raccourci Host+F).

Grâce à ces Guest Additions, l'intégration est bien meilleure et les performances sont accrues, ce qui permet d'envisager de consacrer un des bureaux de l'hôte à l'exécution d'un machine virtuelle en plein écran comme on peut le voir sur cette image :

Vue 'Expose' des bureaux d'une Ubuntu avec un Seven sur le bureau du centre

Notes

[1] On appelle hôte le système qui tourne sur la machine physique, et invité celui qui fait fonctionner la machine virtuelle.

Publié le jeudi 3 décembre 2009 par Christophe Catarina