# Additions invité

Le chapitre précédent a traité de la façon de débuter avec VirtualBox et d'installer des systèmes d'exploitation dans une machine virtuelle. Pour une utilisation pousséed et interactive, les additions invité de VirtualBox vous faciliteront beaucoup la vie en vous fournissant une intégration poussée entre l'hôte et l'invité, et en améliorant les performances interactives des systèmes invités. Ce chapitre décrit en détail les additions invité.

## Introduction

Comme indiqué au , les additions invité sont conçus pour être installés à l'intérieur d'une machine virtuelle après que le système d'exploitation invité a été installé. Ils consistent en des pilotes de périphériques et des applications systèmes qui optimisent le système d'exploitation invité pour de meilleures performances et un usage facilité. Merci de voir le pour des détails sur les systèmes d'exploitation invités pleinement supportés avec les additions invité par VirtualBox.

Les additions invité de VirtualBox de tous les systèmes d'exploitation invités sont fournies sous la forme d'un fichier image unique de CD-ROM appelé `VBoxGuestAdditions.iso`. Ce fichier image se situe dans le répertoire d'installation de VirtualBox. Pour installer les additions invité pour une VM particulière, vous montez ce fichier ISO dans votre VM en tant que CD-ROM virtuel et vous l'installez à partir de là.

Les additions invités offrent les fonctionnalités suivantes :

Intégration du pointeur de la souris

  Pour dépasser les limites du support de la souris décrites au , cela vous offre un support de souris intégrée. Vous n'aurez q'un pointeur de souris et l'appui sur la touche Hôte n'est plus nécessaire pour libérer la souris de sa capture par l'OS invité. Pour que cela fonctionne, un pilote de souris spécial est installé dans l'invité, qui communique avec le pilote de souris réel de votre hôte et il déplace le pointeur de la souris en fonction.

Meilleur support graphique

  Alors que la carte graphique virtuelle émulée par VirtualBox pour tous les systèmes invités fournit toutes les fonctionnalités de base, les pilotes graphiques personnalisés installés avec les additions invité vous offrent des modes vidéos plus avancés et non standards, ainsi que des performances graphiques accélérées.

  En outre, avec les invités Windows et les récents Linux, Solaris et OpenSolaris, si les additions invité sont installés, vous pouvez redimensionner la fenêtre de la machine virtuelle et la résolution graphique de l'invité sera automatiquement ajustée (comme si vous aviez entré à la main une résolution de votre choix dans les paramètres d'affichage de l'hôte).

  Enfin, si vous installez les additions invité, la 3D pour les applications invitées peut être accélérée ; voir le .

Synchronisation du temps

  Une fois les additions invité installées, VirtualBox peut s'assurer que le système d'horloge de l'invité est mieux synchronisé avec celui de l'hôte.

  Pour diverses raisons, le temps de l'invité peut s'écouler à une vitesse légèrement différente du temps de l'hôte. L'hôte pourrait recevoir des mises à jour par NTP et son propre temps pourrait ne pas s'écouler de façon linéaire. Une VM pourrait aussi être mise en pause, ce qui arrête le cours du temps dans l'invité pour une période plus ou moins longue. Quand le temps horloge limite entre l'invité et l'hôte ne diffère que légèrement, le système de synchronisation tente d'ajuster graduellement et progressivement l'heure de l'invité par petites saccades pour rattraper ou perdre du temps. Quand la différence est trop importante (par exemple une VM mise en pause pendant des heures ou restaurée depuis un état sauvegardé), l'heure de l'invité est modifiée immédiatement, sans ajustements graduels.

  Les additions invité resynchroniseront l'heure graduellement. Voir le pour la façon de configurer les paramètres du mécanisme de synchronisation du temps.

Dossiers partagés

  Ceux-ci offrent un moyen facile d'échanger des fichiers entre l'hôte et l'invité. Tout comme les partages de réseau Windows ordinaires, vous pouvez dire à VirtualBox de traiter un répertoire hôte en particulier comme un dossier partagé et VirtualBox le rendra disponible pour le système d'exploitation invité en tant que partage réseau. Pour les détails, merci de vous référer au .

Intégration de fenêtres

  Avec cette fonctionnalité, les fenêtres individuelles affichées sur le bureau de la machine virtuelle peuvent être gérées par le bureau de l'hôte, comme si l'application dans la fenêtre fonctionnait en fait sur l'hôte. Voir le pour les détails.

Presse-papier partagé

  Une fois les additions invité installées, le presse-papier du système d'exploitation invité peut éventuellement être partagés avec votre système d'exploitation hôte ; voir le .

Connexions automatiques (passage de certificats)

  Pour des détails, merci de voir le .

Chaque version de VirtualBox, même celles mineures, est fournie avec sa propre version des additions invité. Si les interfaces par lesquelles le coeur VirtualBox communique avec les additions invité sont laissées stables afin que les additions invité déjà installées dans une VM continuent à fonctionner lorsque VirtualBox est mis à jour sur l'hôte, il est recommandé, pour de meilleurs résultats, de maintenir les additions invité à la même version.

À partir de VirtualBox 3.1, les additions invité Windows et Linux vérifient donc automatiquement s'ils doivent être mis à jour. Si l'hôte exécute une version de VirtualBox plus récente que les additions invité, une notification avec toutes les instructions est affichée dans l'invité.

Pour désactiver la vérification des mises à jour des additions invité d'une machine virtuelle donnée, mettez la valeur de sa propriété d'invité `/VirtualBox/GuestAdd/CheckHostVersion` à `0` ; voir le pour les détails.

## Installer et maintenir les additions invité

Les additions invité sont disponibles pour les machines virtuelles qui exécutent Windows, Linux, Solaris ou OS/2. Les sections suivantes décrivent en détail les spécificités de chaque variante.

### Additions Invité pour Windows

Les additions invité Windows de VirtualBox sont conçues pour être installées sur une machine virtuelle exécutant un système d'exploitation Windows. Les versions suivantes des invités Windows sont supportées :

- Microsoft Windows NT 4.0 (tous les packs service)

- Microsoft Windows 2000 (tous les packs service)

- Microsoft Windows XP (tous les packs service)

- Microsoft Windows Server 2003 (tous les packs service)

- Microsoft Windows Server 2008

- Microsoft Windows Vista (toutes les éditions)

- Microsoft Windows 7 (toutes les éditions)

#### Installation

Dans le menu Périphériques de la barre de menu de la machine virtuelle, VirtualBox a un élément pratique de sous-menu appelé Installer les additions invité, qui monte le fichier ISO des additions invité dans votre machine virtuelle. Un invité Windows devrait alors lancer automatiquement l'installateur des additions invité qui installe les additions invité dans votre invité Windows.

Pour que l'accélération Directe 3D fonctionne dans un invité Windows, vous devez installer les additions invité en mode sécurisé, voir le pour les détails.

Si vous préférez monter les additions à la main, vous pouvez effectuer les étapes suivantes :

1. Démarrer la machine virtuelle dans laquelle vous avez installé Windows.

2. Sélectionner Monter un CD/DVD-ROM depuis le menu Périphériques de la barre de menu de la machine virtuelle, puis imag de CD/DVD-ROM. Cela affiche le gestionnaire de médias virtuels décrit au .

3. Dans le gestionnaire de médias virtuels, appuyer sur le bouton Ajouter et chercher dans le système de fichiers le fichier `VBoxGuestAdditions.iso` :

   - Sur un hôte Windows, vous pouvez trouver ce fichier dans le répertoire d'installation de VirtualBox (généralement sous `C:\Program files\Oracle\VirtualBox` ).

   - Sur les hôtes Mac OS X, vous pouvez trouver ce fichier dans le groupe application de VirtualBox. (Faire un clic droit sur l'icône VirtualBox de Finder et choisir Montrer le contenu du paquet. Il se trouve alors dans le dossier `Contents/MacOS`.)

   - Sur un hôte Linux, vous pouvez trouver ce fichier dans le dossier additions sous lequel vous avez installé VirtualBox (normalement `/opt/VirtualBox/`).

   - Sur les hôtes Solaris, vous pouvez trouver ce fichier dans le dossier `additions` sous lequel vous avez installé VirtualBox (normalement `/opt/VirtualBox`).

4. Retourner dans le gestionnaire de médias virtuels, sélectionner ce fichier ISO et appuyer sur le bouton Sélectionner. Cela montera le fichier ISO et le présentera à votre invité Windows comme un CD-ROM.

Sauf si vous avez désactivé la fonction de démarrage automatique sur votre invité Windows, Windows démarrera automatiquement alors le programme d'installation des additions invité de VirtualBox depuis l'ISO des additions. Si vous avez désactivé la fonction de démarrage automatique, choisissez `VBoxWindowsAdditions.exe` depuis le lecteur de CD/DVD à l'intérieur de l'invité pour démarrer l'installateur.

L'installateur ajoutera plusieurs pilotes de périphérique à la base de données des pilotes de Windows puis il invoquera l'assistant de détection du matériel.

Selon votre configuration, il pourrait afficher des avertissements selon lesquels les pilotes ne sont pas signés de façon digitale. Vous devez confirmer afin de poursuivre l'installation et d'installer correctement les additions.

Après l'installation, redémarrez votre système d'exploitation invité pour activer les additions.

#### Mettre à jour les additions invité Windows

Vous pouvez mettre à jour les additions invité Windows en relançant le programme d'installation comme décrit précédemment. Cela remplacera alors les pilotes des additions précédents par les versions mises à jour.

Sinon, vous pouvez aussi ouvrir le gestionnaire de périphériques et sélectionner Mettre à jour les périphériques... pour deux périphériques :

1. l'adaptateur vidéo de VirtualBox et

2. le périphérique système de VirtualBox.

Pour chacun d'eux, choisissez de fournir votre propre pilote et utilisez J'ai un disque pour orienter l'assistant vers le lecteur CD-ROM contenant les additions invité.

#### Installation sans effort

Afin d'obtenir des installations invité entièrement sans efforts, vous pouvez spécifier un paramètre en ligne de commande au lanceur de l'installation :

    VBoxWindowsAdditions.exe /S

Cela installe automatiquement les bons fichiers et les pilotes pour la plateforme correspondante (32 ou 64 bits).

Comme les pilotes ne sont pas encore certifiés WHQL, il se pourrait que vous ayez encore des fenêtres pop-up d'installation de pilotes, selon la version de l'invité Windows.

Pour plus d'options concernant l'installation de l'invité sans efforts, consultez l'aide de la ligne de commande en utilisant la commande :

    VBoxWindowsAdditions.exe /?

#### Extraction manuelle de fichiers

Si vous aimeriez installer les fichiers et les pilotes à la main, vous pouvez extraire les fichiers du paramétrage des additions invité Windows en tapant :

    VBoxWindowsAdditions.exe /extract

Pour extraire explicitement les additions invité Windows pour une autre plateforme que celle actuellement en cours de fonctionnement (comme les fichiers 64 bits sur un système 32 bits), vous devez exécuter l'installateur de la plateforme appropriée (`VBoxWindowsAdditions-x86.exe` ou `VBoxWindowsAdditions-amd64.exe`) avec le paramètre `/extract`.

#### Le réseau et Windows Vista

Les versions précédentes de VirtualBox fournissaient par défaut une carte virtuelle AMD PCNet Ethernet à l'invité. Depuis que Microsoft n'inclut plus de pilote pour cette carte avec Windows (à partir de Windows Vista), si vous sélectionnez Windows Vista ou supérieur comme système d'exploitation invité de la machine virtuelle, VirtualBox présentera plutôt un contrôleur réseau virtuel Intel à l'invité (voir le ).

Cependant, si pour une raison quelconque vous avez une VM Windows Vista 32 bits configurée pour utiliser une carte AMD PCNet, vous n'aurez pas de réseau au départ dans l'invité.

Afin d'être pratique, VirtualBox est fourni avec un pilote 32 bits pour la carte AMD PCNet card, qui est fourni avec les additions invité Windows. Si vous l'installez sur un invité Vista 32 bits, le pilote sera automatiquement installé. Si pour une raison quelconque vous aimeriez installer le pilote à la main, vous pouvez extraire les fichiers requis du paramétrage des additions invité. Merci de consulter le sur la façon d'effectuer cela. Vous trouverez alors les fichiers du pilote AMD PCNet dans le sous-répertoire `x86\Network\AMD\netamd.inf` du répertoire d'installation par défaut.

Sinon, modifiez les paramètres de la VM invité Vista pour utiliser une carte réseau Intel au lieu de la carte AMD PCNet par défaut ; voir le chapitre .

Malheureusement, il n'y a pas de pilote 64 bits disponible pour la carte AMD PCNet. Donc pour les VMs Windows 64 bits, vous devriez toujours utiliser les périphériques réseau Intel.

### Additions Invité pour Linux

Comme les additions invité Windows, les additions invité de VirtualBox pour Linux ont la forme d'un ensemble de pilotes de périphériques et d'applications système qui peuvent être installées dans le système d'exploitation invité.

Les distributions Linux suivantes sont officiellement supportées :

- Fedora à partir de Fedora Core 4 ;

- Redhat Enterprise Linux à partir de la version 3 ;

- SUSE et openSUSE Linux à partir de la version 9 ;

- Ubuntu à partir de la version 5.10.

De nombreuses autres distributions sont connues pour fonctionner avec les additions invité.

La version du noyau par défaut fournie par SUSE et openSUSE 10.2, Ubuntu 6.10 (toutes les versions) et Ubuntu 6.06 (édition serveur) contient un bogue qui peut l'amener à planter pendant le démarrage lorsqu'il est lancé dans une machine virtuelle. Les additions invité fonctionnent dans ces distributions.

Remarquez que certaines distributions Linux sont déjà fournies avec les additions invité de VirtualBox ou avec une partie d'entre eux. Vous pouvez conserver la version des additions invité de la distribution mais, souvent, ils ne sont pas à jour et leurs fonctionnalités sont limitées. Vous pouvez donc choisir d'installer les additions invité fournies avec VirtualBox, ce qui écrasera la version déjà installée. L'installateur des additions invité Linux de VirtualBox essaie de détecter une installation existante et il les remplace, mais selon la manière dont la distribution intègre les additions invité, ils peuvent exiger quelques interventions à la main. Il est hautement recommandé de prendre un instantané de la machine virtuelle avant d'écraser l'installation.

#### Installer les additions Invité Linux

Les additions invité de VirtualBox pour Linux sont fournies sur le même CD-ROM ISO que les additions pour Windows décrits ci-dessus. Ils sont aussi fournis avec un programme d'installation qui vous guide à travers le processus d'installation, bien que, du fait de différences importantes entre les distributions Linux, l'installation pourrait être légèrement plus complexe.

L'installation consiste en les étapes suivantes :

1. Avant d'installer les additions invités, vous devrez préparer votre système invité à construire les modules noyau externes. Cela fonctionne de la même façon que décrit au chapitre , sauf que cette étape doit se faire maintenant dans votre invité Linux au lieu d'un système Linux hôte, comme décrit ici.

   À nouveau, comme avec les hôtes Linux, nous vous recommandons d'utiliser DKMS pour les invités Linux. S'il n'est pas installé, utilisez cette commande pour les systèmes Ubuntu/Debian :

       sudo apt-get install dkms

   ou pour les systèmes Fedora :

       yum install dkms

   Assurez-vous d'installer DKMS avant d'installer les additions invité Linux.

2. Montez le fichier `VBoxGuestAdditions.iso` comme lecteur de CD-ROM virtuel de votre invité Linux, exactement de la même façon que décrit pour un invité Windows au .

3. Allez dans le répertoire où est monté votre lecteur de CD-ROM et exécutez en tant qu'administrateur :

       sh ./VBoxLinuxAdditions-x86.run

   Sur un invité Linux 64 bits, utilisez plutôt l'installeur `VBoxLinuxAdditions-amd64.run`.

Pour vous aider, les instructions pas-à-pas suivantes ont été vérifiées comme opérationnelles pour des copies fraîchement installées des distributions Linux les plus populaires. Après ces étapes préparatoires, vous pouvez exécuter l'installateur des additions invité de VirtualBox comme décrit ci-dessus.

##### Ubuntu 10.04 (Lucid Lynx)

1. Pour mettre à jour votre système vers la dernière version des paquets, ouvrez un terminal et, en tant qu'administrateur, exécutez

       apt-get update

   suivi de

       apt-get upgrade

2. Installez DKMS en utilisant

       apt-get install dkms

3. Redémarrez votre système invité afin d'activer les mises à jour puis procédez comme décrit ci-dessus.

##### Fedora 13 (Goddard)

1. Pour mettre à jour votre système vers la dernière version des paquets, ouvrez un terminal et, en tant qu'administrateur, exécutez

       yum update

2. Installez DKMS et le compilateur GNU C en utilisant

       yum install dkms

   suivi de

       yum install gcc

3. Redémarrez votre système invité afin d'activer les mises à jour puis procédez comme décrit ci-dessus.

##### openSUSE 11.2

1. Pour mettre à jour votre système vers la dernière version des paquets, ouvrez un terminal et, en tant qu'administrateur, exécutez

       zypper update

2. Installez l'outil make et le compilateur GNU C en utilisant

       zypper install make gcc

3. Redémarrez votre système invité afin d'activer les mises à jour.

4. Cherchez quel est le noyau que vous exécutez en utilisant

       uname -a

   Un exemple serait `2.6.31.12-0.2-default` qui se réfère au noyau par défaut. Puis, installez le bon paquet de développement du noyau. Dans l'exemple ci-dessus, il s'agirait de

       zypper install kernel-default-devel

5. Assurez-vous que votre noyau en fonction (uname -a) et les paquets du noyau que vous avez installés (`uname -a`) ont exactement le même numéro de version. Procédez comme décrit ci-dessus.

##### SuSE Linux Enterprise Desktop (SLED) 11

1. Pour mettre à jour votre système vers la dernière version des paquets, ouvrez un terminal et, en tant qu'administrateur, exécutez

       zypper update

2. Installez le compilateur GNU C en utilisant

       zypper install gcc

3. Redémarrez votre système invité afin d'activer les mises à jour.

4. Cherchez le noyau que vous exécutez en utilisant

       uname -a

   Un exemple serait `2.6.27.19-5.1-default` qui se réfère au noyau default. Puis installez le bon paquet de développement du noyau. Dans l'exemple ci-dessus, il s'agirait de

       zypper install kernel-syms kernel-source

5. Assurez-vous que votre noyau actuel (`uname -a`) et les paquets du noyau que vous avez installés (`rpm -qa kernel\*`) ont exactement le même numéro de version. Procédez comme décrit ci-dessus.

##### Mandrake 2010

1. Mandrake inclut les additions invité de VirtualBox qui seront remplacés si vous suivez ces étapes.

2. Pour mettre à jour votre système vers la dernière version des paquets, ouvrez un terminal et, en tant qu'administrateur, exécutez

       urpmi --auto-update

3. Redémarrez votre système invité afin d'activer les mises à jour.

4. Installez DKMS en utilisant

       urpmi dkms

   et assurez-vous de choisir le bon paquet kernel-devel lorsque cela vous est demandé (utilisez `uname -a` pour comparer).

##### CentOS 5.5, Red Hat Enterprise Linux 5.5 et Oracle Enterprise Linux 5.5

1. Ajoutez `divider=10` aux options de démarrage du noyau dans `/etc/grub.conf` pour réduire la charge d'occupation du processeur.

2. Pour mettre à jour votre système vers la dernière version des paquets, ouvrez un terminal et, en tant qu'administrateur, exécutez

       yum update

3. Installez le compilateur GNU C et les paquets de développement du noyau en utilisant

       yum install gcc

   suivi de

       yum install kernel-devel

4. Redémarrez votre système invité afin d'activer les mises à jour puis procédez comme décrit ci-dessus.

5. Remarquez que le support d'OpenGL n'est pas disponible, sauf si vous mettez à jour vers un noyau Linux récent.

   Si Oracle Enterprise Linux ne trruve pas les paquets requis, vous devez les installer soit à partir d'une autre source (comme un DVD) soit en utilisant le serveur public Yum d'Oracle qui se trouve sur http://public-yum.oracle.com.

##### Debian 5 (Lenny)

1. Pour mettre à jour votre système vers la dernière version des paquets, ouvrez un terminal et, en tant qu'administrateur, exécutez

       apt-get update

   suivi de

       apt-get upgrade

2. Installez l'outil make et le compilateur GNU C en utilisant

       apt-get install make gcc

3. Redémarrez votre système invité afin d'activer les mises à jour.

4. Déterminez la version exacte de votre noyau en utilisant `uname -a` et installez la bonne version du paquet linux-headers, en utilisant par exemple

       apt-get install linux-headers-2.6.26-2-686

5. Remarquez que le support d'OpenGL n'est pas disponible, sauf si vous mettez à jour vers un noyau Linux récent.

#### Paramétrage manuel des services invité sélectionnés

Les additions invité de VirtualBox contiennent plusieurs pilotes différents. Si pour une raison quelconque vous ne souhaitez pas tous les initialiser, vous pouvez installer les additions invité en utilisant la commande suivante :

      sh ./VBoxLinuxAdditions-x86.run no_setup

(en remplaçant par `VBoxLinuxAdditions-amd64` sur un invité 64 bits).

Après cela, vous devrez au moins compiler les modules noyau en lançant la commande

      /usr/lib/VBoxGuestAdditions/vboxadd setup

en tant qu'administrateur (vous devrez remplacer lib par lib64 sur certains invités 64 bits), et sur les invités anciens sans le service udev vous devrez ajouter le service vboxadd au niveau d'exécution par défaut pour garantir que les modules seront chargés.

Pour initialiser le service de synchronisation de temps, lancez la commande

      /usr/lib/VBoxGuestAdditions/vboxadd-service setup

et ajoutez le service vboxadd-service au niveau d'exécution par défaut. Pour initialiser la partie OpenGL de X11 des additions invité, lancez la commande

      /usr/lib/VBoxGuestAdditions/vboxadd-x11 setup

(vous n'avez besoin d'activer aucun service pour cela).

Pour recompiler les modules du noyau de l'invité, utilisez cette commande :

      /usr/lib/VBoxGuestAdditions/vboxadd setup

Après la compilation vous devriez redémarrer votre invité pour garantir que les nouveaux modules seront bien utilisés.

#### Accélération vidéo et modes graphiques haute résolution

Sur les invités Linux, l'accélération graphique de VirtualBox est disponible à travers le système X Window. En général, sur les distributions Linux actuelles, il s'agira du serveur X.Org. Pendant le processus d'installation, X sera initialisé pour utiliser le pilote graphique fourni avec les additions invité.

Pour les invités Linux et Solaris, la version 1.3 du serveur X.org est nécessaire pour le redimensionnement (la fonctionnalité a été désactivée sur les invités Fedora 9 du fait d'un bogue dans leur serveur X). La version du serveur peut être vérifiée avec `Xorg -version`.

Vous pouvez aussi envoyer des astuces du mode graphique en utilisant l'outil `VBoxManage`.

Si vous n'utilisez que des systèmes invités Linux récents, vous pouvez sauter le reste de cette section. Sur les systèmes invités anciens, tous les modes graphiques initialisés avant l'installation seront utilisés. Si ces modes ne satisfont pas vos exigences, vous pouvez modifier vos paramètres en éditant le fichier de configuration du serveur X, situé en général dans `/etc/X11/xorg.conf`.

VirtualBox peut utiliser n'importe quel mode graphique X par défaut adapté à la mémoire vidéo virtuelle allouée à la machine virtuelle comme décrit au chapitre . Vous pouvez aussi ajouter vos propres modes au fichier de configuration du serveur X. Vous n'avez besoin que de les ajouter à la liste des modes de la sous-section Display de la section Screen. Par exemple, la section montrée ici a une résolution personnalisée en mode ajouté 2048x800 :

    Section "Screen"
            Identifier    "Default Screen"
            Device        "VirtualBox graphics card"
            Monitor       "Generic Monitor"
            DefaultDepth  24
            SubSection "Display"
                    Depth         24
                    Modes         "2048x800" "800x600" "640x480"
            EndSubSection
    EndSection

#### Mettre à jour les additions Invité Linux

Vous pouvez simplement mettre à jour les additions invité en refaisant la procédure d'installation avec une image de CD-ROM mise à jour. Ceci remplacera les pilotes par les versions mises à jour. Vous devriez redémarrer après la mise à jour des additions invité.

#### Désinstaller les additions invité Linux

Si vous avez installé une version des additions invité sur votre machine virtuelle et si vous souhaitez la supprimer sans en installer de nouvelles, vous pouvez le faire en insérant l'image du CD des additions invité dans le lecteur de CD-ROM virtuel comme décrit ci-dessus et en lançant l'installeur des additions invité actuelles avec le paramètre uninstall depuis le chemin de l'invité où est monté l'image de CD :

    sh ./VBoxLinuxAdditions-x86.run uninstall

(en remplaçant `VBoxLinuxAdditions-amd64` sur un invité 64 bits). Si cela fonctionnera normalement sans problèmes, il se peut que vous deviez faire du nettoyage manuel de l'invité (en particulier du fichier XFree86Config ou xorg.conf) dans certains cas, surtout si la version des additions installée ou si le système d'exploitation invité était très vieux, ou si vous avez fait vos propres modifications sur le réglage des additions invité après avoir installé.

À partir de la version 3.1.0, vous pouvez désinstaller les additions en appelant

    /opt/VBoxGuestAdditions-$VBOX_VERSION_STRING/uninstall.sh

en remplaçant `/opt/VBoxGuestAdditions-$VBOX_VERSION_STRING` par le répertoire d'installation des additions invité.

### Additions Invité pour Solaris

Comme les additions invité Windows, les additions invité de Solaris ont la forme de pilotes de périphériques et d'applications système qui peuvent être installés sur le système d'exploitation invité.

Les distributions Solaris suivantes sont officiellement supportées :

- OpenSolaris Nevada (construction 82 et supérieur ; ceci inclut OpenSolaris 2008.05, 2008.11 et 2009.06);

- OpenSolaris Indiana (Developer Preview 2 et supérieur);

- Solaris 10 (u5 et supérieur).

Il se peut que d'autres distributions fonctionnent si elles se basent sur des versions de logiciels comparables.

#### Installer les additions Solaris

Les additions invité VirtualBox pour Solaris sont fournis sur la même ISO de CD-ROM que les additions pour Windows et Linux décrits ci-dessus. Ils sont aussi fournis avec un programme d'installation vous guidant à travers le processus d'initialisation.

L'installation implique les étapes suivantes :

1. Monter le fichier `VBoxGuestAdditions.iso` en tant que votre lecteur de CD-ROM virtuel de votre invité Solaris, exactement de la même façon que celle décrite pour un invité Windows au .

   Si le lecteur CD-ROM de l'invité n'est pas monté, (on le voit sur certaines versions de Solaris 10), exécutez en tant qu'administrateur :

       svcadm restart volfs

2. Aller dans le répertoire où est monté votre lecteur CD-ROM et exécutez en tant qu'administrateur :

       pkgadd -G -d ./VBoxSolarisAdditions.pkg

3. Choisissez 1 et confirmer l'installation du paquet des additions invité. Après que l'installation est terminée, reconnectez le serveur X de votre invité pour activer les additions invité X11.

#### Désinstaller les additions Solaris

Vous pouvez supprimer en toute sécurité les additions invité Solaris en supprimant le paquet de l'invité. Ouvrez une session de terminal administrateur et exécutez :

    pkgrm SUNWvboxguest

#### Mettre à jour les additions Solaris

Les additions invité devraient être mis à jour en désinstallant d'abord les additions invité existants puis en installant les nouveaux. Tenter d'installer les nouvelles additions invité sans supprimer celles existantes n'est pas possible.

### Additions Invité pour OS/2

VirtualBox offre aussi un ensemble de pilotes qui améliorent le fonctionnement d'OS/2 dans une machine virtuelle. Du fait de restrictions d'OS/2 lui-même, cette variante des additions invité a un ensemble de fonctionnalités limité ; voir le pour les détails.

Les additions invité OS/2 sont fournies sur la même ISO de CD-ROM comme ceux pour les autres plateformes. Par conséquent, montez l'ISO sous OS/2 comme décrit précédemment. Les additions invité OS/2 se situent dans le répertoire `\32bit\OS2`.

Comme nous ne fournissons pas d'installateur automatique pour le moment, merci de vous référer au fichier `readme.txt` de ce répertoire qui décrit comment installer les additions invité OS/2 à la main.

## Dossiers partagés

Avec la fonctionnalité dossiers partagés de VirtualBox, vous pouvez accéder à des fichiers de votre système hôte à partir de l'intérieur du système invité, presque comme le feraient les partages ordinaires sur les réseaux Windows -- sauf que les dossiers partagés, tant que les additions invité sont installés, n'exigent pas de réseau --. Les dossiers partagés sont supportés avec des invités Windows (2000 ou supérieur), Linux et Solaris.

Les dossiers partagés doivent résider physiquement sur l'hôte et sont alors partagés avec l'invité ; le partage se fait en utilisant un service spécial de l'hôte et un pilote de système de fichiers pour l'invité, les deux étant fournis par VirtualBox. Pour les invités Windows, les dossiers partagés sont implémentés comme un redirecteur pseudo-réseau ; pour les invités Linux et Solaris, les additions invité fournissent un pilote de système de fichiers virtuel qui gère la communication avec l'hôte.

Pour partager un dossier hôte avec une machine virtuelle dans VirtualBox, vous devez spécifier le chemin vers ce dossiers et lui choisir un nom de partage que l'invité peut utiliser pour y accéder. Aussi, créez d'abord le dossier partagé sur l'hôte, puis à l'intérieur de l'invité, connectez-vous-y.

Il y a plusieurs façons de paramétrer les dossiers partagés pour une machine virtuelle particulière :

- Dans l'interface graphique de la machine virtuelle en fonction, vous pouvez sélectionner Dossiers partagés depuis le menu Périphériques, ou cliquer sur l'icône de dossier de la barre de statut dans le coin en bas à droite de la fenêtre de la machine virtuelle.

- Si une machine virtuelle n'est pas actuellement en fonction, vous pouvez configurer les dossiers partagés dans la boîte de dialogue Paramètres de chaque machine virtuelle.

- Depuis la ligne de commande, vous pouvez créer des dossiers partagés en utilisant l'interface en ligne de commande VBoxManage ; voir le . La commande est comme suit :

      VBoxManage sharedfolder add "nom VM" --name "sharename" --hostpath "C:\test"

Il y a deux types de partages :

1. Les partages de VM qui ne sont disponibles que pour la VM pour la quelle ils ont été définis ;

2. Les partages avec VM transitoires, qui peuvent être ajoutés et supprimés au moment de l'exécution et qui ne demeurent pas après qu'une VM a été arrêtée ; pour ces derniers, ajoutez l'option `--transient` à la ligne de commande ci-dessus.

Les dossiers partagés ont un accès en lecture/écriture aux fichiers du chemin de l'hôte par défaut. Pour obliger l'invité à n'avoir un accès qu'en lecture seule, créez un répertoire partagé en lecture seule. Vous pouvez faire cela, soit en utilisant la GUI, soit en indiquant le paramètre `--readonly` lorsque vous créez le dossier partagé avec VBoxManage.

### Montage manuel

Vous pouvez monter le dossier partagé depuis l'intérieur d'une VM de la même façon que vous monteriez un partage réseau ordinaire :

- Sur un invité Windows, à partir de VirtualBox 1.5.0, on peut naviguer dans les dossiers partagés et ils sont donc visibles dans l'explorateur Windows. Donc, pour attacher le dossier partagé de l'hôte à votre invité Windows, ouvrez l'explorateur Windows et cherchez-le sous Mes emplacements réseau -> Tout le réseau -> Dossiers partagés de VirtualBox. En faisant un clic droit sur un dossier partagé et en cliquant sur Connecter un lecteur réseau dans le menu qui s'affiche, vous pouvez affecter une lettre de lecteur à ce dossier partagé.

  En alternative, sur la ligne de commande Windows, utilisez ce qui suit :

      net use x: \\vboxsvr\nom_partage

  Alors que `vboxsvr` est un nom corrigé (notez que vboxsrv devrait aussi fonctionner), remplacez x: par la lettre de lecteur que vous voulez utiliser pour le partage, et `nom_partage` par le nom partagé spécifié avec `VBoxManage`.

- Sur un invité Linux, utilisez la commande suivante :

      mount -t vboxsf [-o OPTIONS] nom_partage point_montage

  Pour monter un dossier partagé au démarrage, ajoutez l'entrée suivante à /etc/fstab :

      sharename   mountpoint   vboxsf   defaults  0   0

- Sur un invité Solaris, utilisez la commande suivante :

      mount -F vboxfs [-o OPTIONS] nom_partage point_montage

  Remplacez `nom_partage` (utilisez des minuscules) par le nom réseau spécifié avec `VBoxManage` ou la GUI, et point_montage par le chemin où vous voulez que le partage soit monté sur l'invité (comme `/mnt/share`). Les règles de montage habituelles s'appliquent, à savoir créez ce répertoire au préalable s'il n'existe pas encore.

  Voici un exemple de montage de dossier partagé pour l'utilisateur jack sur OpenSolaris :

      $ id
      uid=5000(jack) gid=1(other)
      $ mkdir /export/home/jack/mount
      $ pfexec mount -F vboxfs -o uid=5000,gid=1 jackshare /export/home/jack/mount
      $ cd ~/mount
      $ ls
      sharedfile1.mp3 sharedfile2.txt
      $

  Au-delà des options de montage fournies par la commande `mount`, celles suivantes sont disponibles :

      iocharset CHARSET

  pour régler l'encodage utilisé pour les opérations E/S (utf8 par défaut) et

      convertcp CHARSET

  pour spécifier l'encodage utilisé pour le nom du dossier partagé (utf8 par défaut).

  Les options génériques de mount (documentées dans la page de manuel de mount) s'appliquent également. Celles particulièrement utiles sont les options `gid` et `mode`, car elles autorisent l'accès par des utilisateurs normaux (en mode lecture/écriture selon les réglages) même si l'administrateur a monté le système de fichiers.

### Montage automatique

À partir de la version 3.3.0, VirtualBox supporte le montage automatique des dossiers partagés. Les additions invité installées prendront en compte tous les dossiers partagés qui sont marqués comme devant être montés automatiquement dès que l'utilisateur est connecté sur le système d'exploitation invité. Cela le rend plus pratique, plutôt que de monter les dossiers partagés à la main comme décrit au .

Le montage automatique n'est actuellement supporté que sur les invités Windows, Linux et Solaris.

Sur les invités Windows, un dossier monté automatiquement sera représenté par sa propre lettre de lecteur (comme `E:`), selon les lettres de lecteur qui restent disponibles sur le système.

Sur les invités Linux et Solaris, les dossiers partagés automatiquement montés sont montés dans le répertoire `/media`, avec le préfixe `sf_`, donc le dossier partagé `myfiles` serait monté dans `/media/sf_myfiles` sur Linux et dans `/mnt/sf_myfiles` sur Solaris.

Pour modifier le préfixe `sf_` d'une machine virtuelle donnée, réglez la valeur de sa propriété invité `/VirtualBox/GuestAdd/SharedFolders/MountPrefix` sur une autre valeur ; voir le pour des détails.

Pour qu'un utilisateur ait accès complet aux dossiers partagés automatiquement montés sur l'invité, cet utilisateur a besoin de faire partie du groupe nouvellement créé vboxsf, qui est créé par l'installeur des additions invité de VirtualBox. S'il n'est pas dans ce groupe, il aura un accès en lecture seule.

Pour appliquer les modifications, par exemple l'ajout ou la suppression d'un nouveau dossier monté automatiquement, alors qu'une VM est en fonction, il faut redémarrer l'OS invité. Cependant, cela ne touche pas .

## Fenêtres intégrées

Avec la fonctionnalité fenêtres intégrées de VirtualBox, vous pouvez faire apparaître les fenêtres affichées dans une machine virtuelle côte à côte près des fenêtres de votre hôte. Cette fonctionnalité est supportée pour les systèmes d'exploitation suivants (fournis lorsque les additions invité sont installées) :

- Invités Windows (support ajoutés avec VirtualBox 1.5) ;

- Invités Linux ou Solaris/OpenSolaris avec une version 1.3 ou supérieure du serveur X.org

  La version du serveur X n'est pas la même que la version de toute la suite X.org. Vous pouvez taper `X -version` dans un terminal pour connaître le niveau de version du serveur X.org actuellement installée.

  (support ajouté avec VirtualBox 1.6). L'exception est Fedora 9, du fait d'un bogue dans leur serveur X.

Après que l'intégration des fenêtres a été activée (voir ci-dessous), VirtualBox supprime l'affichage du fond d'écran du bureau de votre invité, vous permettant de lancer les fenêtres de votre système d'exploitation invité de façon intégrée à côté des fenêtres de votre hôte :

Pour activer ce mode, après avoir démarré la machine virtuelle, appuyez sur la touche Hôte (en principe la touche Contrôle droite) simultanément avec L. Cela agrandira la taille de l'affichage de la VM jusqu'à la taille de l'écran de votre hôte et masquera le fond d'écran du système d'exploitation invité. Pour revenir à l'affichage normal de la VM (désactivant ainsi l'intégration des fenêtres), ré-appuyez sur les touches Hôte et L.

## Le graphisme avec l'accélération matérielle

### Accélération 3D matérielle (OpenGL et Direct3D 8/9)

Les additions invité de VirtualBox contiennent un support matériel expérimental du 3D pour les invités Windows, Linux et Solaris.

Le support d'OpenGL pour les invités Windows a été ajouté avec VirtualBox 2.1 ; le support pour Linux et Solaris a suivi avec VirtualBox 2.2. Avec VirtualBox 3.0, le support Direct3D 8/9 a été ajouté pour les invités Windows. OpenGL 2.0 est maintenant également supporté.

Avec cette fonctionnalité, si une application à l'intérieur de votre machine virtuelle utilise des fonctionnalités 3D passant par les interfa ces de programmation d'OpenGL ou de Direct3D 8/9, au lieu de les émuler de manière logicielle (ce qui serait lent), VirtualBox essaiera d'utiliser le matériel 3D de votre hôte. Ceci fonctionne pour toutes les plateformes supportées (Windows, Mac, Linux, Solaris), à condition que votre système d'exploitation hôte puisse d'abord lui-même utiliser votre matériel 3D accéléré.

L'accélération 3D nécessite actuellement les conditions suivantes :

1. Elle n'est disponible que pour certains invités Windows, Linux et Solaris. En particulier :

   - Pour les invités Windows, le support se réduit aux versions 32 bits d'XP et de Vista. OpenGL et Direct3D 8/9 sont supportés (expérimental).

   - OpenGL sur Linux exige un noyau 2.6.27 et supérieur ainsi qu'une version du serveur X.org 1.5 et supérieure. Ubuntu 8.10 et Fedora 10 ont été testées et confirmées comme fonctionnant.

   - OpenGL sur les invités Solaris exige une version de X.org 1.5 et supérieur.

2. Les additions invité doivent être installés.

   Pour que l'accélération Direct 3D fonctionne dans un invité Windows, VirtualBox doit remplacer les fichiers du système Windows de la machine virtuelle. Il en résulte que l'installation du programme des additions invité offre l'accélération Direct 3D en tant qu'option qui doit être explicitement activée.

   Vous devez aussi installer les additions invité en mode sécurisé ; voir le pour les détails.

3. Vu que le support 3D est encore pour l'instant expérimental, il est désactivé par défaut et vous devez l'activer à la main dans les paramètres de la VM (voir le chapitre ).

   Il se peut que l'activation de l'accélération 3D expose des trous de sécurité à des logiciels malveillants en fonction sur l'invité. Le code tiers utilisé par VirtualBox à cette fin (Chromium) n'est pas assez endurci pour empêcher n'importe quelle opération 3D risquée sur l'hôte.

Techniquement, VirtualBox implémente cela en installant un pilote 3D matériel supplémentaire dans votre invité lorsque vous installez les additions invité. Ce pilote agit comme un pilote de matériel 3D et signale au système d'exploitation invité que le matériel (virtuel) est capable d'une accélération 3D matérielle. Lorsqu'une application sur l'invité demande l'accélération matérielle par les interfaces de programmation d'OpenGL ou de Direct3D, les requêtes sont envoyées à l'hôte par un tunnel de communication spécial implémenté par VirtualBox, puis l'hôte effectue l'opération 3D demandée par les interfaces de programmation de l'hôte.

### Accélération vidéo 2D pour Windows

À partir de la version 3.1, les additions invité de VirtualBox contiennent le support expérimental de l'accélération 2D matérielle pour les invités Windows.

Avec cette fonctionnalité, si une application (telle qu'un lecteur vidéo) dans votre VM utilise les superpositions vidéos 2D pour jouer un clip animé, VirtualBox essaiera alors d'utiliser le matériel d'accélération graphique de votre hôte au lieu de l'étirement des superpositions ou la conversion de couleurs logiciels (ce qui serait lent). Cela fonctionne actuellement pour les plateformes d'hôtes Windows, Linux et Mac, à condition que votre système d'exploitation puisse lui-même utiliser l'accélération graphique 2D.

L'accélération graphique 2D fonctionne actuellement sous les conditions suivantes :

1. Elle n'est disponible que pour les invités Windows (XP ou supérieur).

2. Les additions invité doivent être installés.

3. Comme le support 2D est encore pour l'instant expérimental, il est par défaut désactivé et vous devez l'activer à la main dans les paramètres de la VM (voir le ).

Techniquement, VirtualBox implémente cela en offrant dans le pilote graphique invité les capacités de superposition graphique DirectDraw. Le pilote envoie toutes les commandes de superposition à l'hôte à travers un tunnel de communication spécial implémenté par VirtualBox. De l'autre côté, OpenGL est alors utilisé pour implémenter échelonnement de transformation d'espace de couleurs

## Propriétés invité

À partir de la version 2.1, VirtualBox vous permet d'exiger certaines propriétés de la part d'un invité en fonction, à condition que les additions invité de VirtualBox soient installées et que la VM soit en fonction. Ceci est intéressant pour deux choses :

1. Un certain nombre de caractéristiques prédéfinies d'une VM peuvent être automatiquement maintenues par l'hôte et récupérées sur l'hôte, comme la surveillance de performances et des statiques de la VM.

2. Des chaînes de données de votre choix peuvent être échangées entre l'invité et l'hôte. Cela fonctionne dans les deux sens.

Pour faire cela, VirtualBox établit un canal de communication privé entre les additions invité de VirtualBox et l'hôte, et le logiciel des deux côtés peut utiliser ce canal pour échanger des chaînes de données à des fins de votre choix. Les propriétés de l'invité sont simplement des chaînes de touches auxquelles est attachée une valeur. Elles peuvent être paramétrées (on peut écrire dessus) soit depuis l'hôte, soit depuis l'invité, et on peut les lire des deux côtés.

En plus d'établir un mécanisme général de valeurs de lecture et d'écriture, le paramétrage de propriétés d'invité prédéfinies est automatiquement maintenu par les additions invité de VirtualBox pour permettre de récupérer des données de l'invité intéressantes telles que le système d'exploitation exact de l'invité et le niveau du pack service, la version des additions invité installée, les utilisateurs actuellement connectés à l'OS invité, les statistiques du réseau et davantage. Ces propriétés prédéfinies sont toutes précédées de `/VirtualBox/` et organisées dans une arborescence de clés hiérarchiques.

Certaines de ces informations apparaissent en fonctionnement quand vous sélectionnez Boîte de dialogue d'informations de session depuis le menu Machine d'une machine virtuelle.

Une façon plus flexible d'utiliser ce canal est de passer par la commande de paramétrage `VBoxManage guestproperty` ; voir le pour les détails. Par exemple, pour que toutes les propriétés invité soient disponibles pour une VM en cours de fonctionnement donnée, listées avec leurs valeurs respectives, utilisez ceci :

    $ VBoxManage guestproperty enumerate "Windows Vista III"
    VirtualBox Command Line Management Interface Version $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD
    (C) 2005-$VBOX_C_YEAR $VBOX_VENDOR
    All rights reserved.

    Name: /VirtualBox/GuestInfo/OS/Product, value: Windows Vista Business Edition,
        timestamp: 1229098278843087000, flags:
    Name: /VirtualBox/GuestInfo/OS/Release, value: 6.0.6001,
        timestamp: 1229098278950553000, flags:
    Name: /VirtualBox/GuestInfo/OS/ServicePack, value: 1,
        timestamp: 1229098279122627000, flags:
    Name: /VirtualBox/GuestAdd/InstallDir,
        value: C:/Program Files/Oracle/VirtualBox
        Guest Additions, timestamp: 1229098279269739000, flags:
    Name: /VirtualBox/GuestAdd/Revision, value: 40720,
        timestamp: 1229098279345664000, flags:
    Name: /VirtualBox/GuestAdd/Version, value: $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD,
        timestamp: 1229098279479515000, flags:
    Name: /VirtualBox/GuestAdd/Components/VBoxControl.exe, value: $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILDr40720,
        timestamp: 1229098279651731000, flags:
    Name: /VirtualBox/GuestAdd/Components/VBoxHook.dll, value: $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILDr40720,
        timestamp: 1229098279804835000, flags:
    Name: /VirtualBox/GuestAdd/Components/VBoxDisp.dll, value: $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILDr40720,
        timestamp: 1229098279880611000, flags:
    Name: /VirtualBox/GuestAdd/Components/VBoxMRXNP.dll, value: $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILDr40720,
        timestamp: 1229098279882618000, flags:
    Name: /VirtualBox/GuestAdd/Components/VBoxService.exe, value: $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILDr40720,
        timestamp: 1229098279883195000, flags:
    Name: /VirtualBox/GuestAdd/Components/VBoxTray.exe, value: $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILDr40720,
        timestamp: 1229098279885027000, flags:
    Name: /VirtualBox/GuestAdd/Components/VBoxGuest.sys, value: $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILDr40720,
        timestamp: 1229098279886838000, flags:
    Name: /VirtualBox/GuestAdd/Components/VBoxMouse.sys, value: $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILDr40720,
        timestamp: 1229098279890600000, flags:
    Name: /VirtualBox/GuestAdd/Components/VBoxSF.sys, value: $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILDr40720,
        timestamp: 1229098279893056000, flags:
    Name: /VirtualBox/GuestAdd/Components/VBoxVideo.sys, value: $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILDr40720,
        timestamp: 1229098279895767000, flags:
    Name: /VirtualBox/GuestInfo/OS/LoggedInUsers, value: 1,
        timestamp: 1229099826317660000, flags:
    Name: /VirtualBox/GuestInfo/OS/NoLoggedInUsers, value: false,
        timestamp: 1229098455580553000, flags:
    Name: /VirtualBox/GuestInfo/Net/Count, value: 1,
        timestamp: 1229099826299785000, flags:
    Name: /VirtualBox/HostInfo/GUI/LanguageID, value: C,
        timestamp: 1229098151272771000, flags:
    Name: /VirtualBox/GuestInfo/Net/0/V4/IP, value: 192.168.2.102,
        timestamp: 1229099826300088000, flags:
    Name: /VirtualBox/GuestInfo/Net/0/V4/Broadcast, value: 255.255.255.255,
        timestamp: 1229099826300220000, flags:
    Name: /VirtualBox/GuestInfo/Net/0/V4/Netmask, value: 255.255.255.0,
        timestamp: 1229099826300350000, flags:
    Name: /VirtualBox/GuestInfo/Net/0/Status, value: Up,
        timestamp: 1229099826300524000, flags:
    Name: /VirtualBox/GuestInfo/OS/LoggedInUsersList, value: username,
        timestamp: 1229099826317386000, flags:

Pour chercher la valeur d'une seule propriété, utilisez la sous-commande get comme ceci :

    $ VBoxManage guestproperty get "Windows Vista III"
             "/VirtualBox/GuestInfo/OS/Product"
    VirtualBox Command Line Management Interface Version $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD
    (C) 2005-$VBOX_C_YEAR $VBOX_VENDOR
    All rights reserved.

    Value: Windows Vista Business Edition

Pour ajouter ou modifier des propriétés depuis l'invité, utilisez l'outil `VBoxControl`. Cet outil est inclu avec les additions invité de VirtualBox 2.2 ou supérieur. Lorsqu'il est lancé depuis un invité Linux, cet outil exige les privilèges administrateur pour des raisons de sécurité :

    $ sudo VBoxControl guestproperty enumerate
    VirtualBox Guest Additions Command Line Management Interface Version $VBOX_VERSION_MAJOR.$VBOX_VERSION_MINOR.$VBOX_VERSION_BUILD
    (C) 2009-$VBOX_C_YEAR $VBOX_VENDOR
    All rights reserved.

    Name: /VirtualBox/GuestInfo/OS/Release, value: 2.6.28-18-generic,
        timestamp: 1265813265835667000, flags: <NULL>
    Name: /VirtualBox/GuestInfo/OS/Version, value: #59-Ubuntu SMP Thu Jan 28 01:23:03 UTC 2010,
        timestamp: 1265813265836305000, flags: <NULL>
          ...

Pour des besoins plus complexes, vous pouvez utiliser les interfaces de programmation de VirtualBox ; voir le .

## Contrôle invité

À partir de la version 3.2, les additions invité de VirtualBox permettent le démarrage d'applications à l'intérieur d'une VM depuis le système hôte.

Pour que cela fonctionne, l'application doit être installée dans l'invité ; aucun logiciel supplémentaire ne doit être installé sur l'hôte. En outre, la sortie en mode texte (sur stdout et stderr) peut être affiché sur l'hôte pour un traitement ultérieur avec des options pour spécifier les droits de l'utilisateur et une valeur de timeout (en millisecondes) pour limiter le temps pendant lequel l'application peut s'exécuter.

Cette fonctionnalité peut être utilisée pour automatiser le déploiement de logiciels dans l'invité.

Pour utiliser cette fonctionnalité, utilisez la ligne de commande de VirtualBox. Voir le pour des détails.

## Faire de la montgolfière avec la mémoire

À partir de la version 3.2, les additions invité de VirtualBox peuvent modifier la quantité de mémoire d'une machine virtuelle alors que la machine est en fonction. Vu la façon dont ceci est implémenté, cette fonctionnalité est appelée faire de la montgolfière.

Normalement, pour modifier la quantité de mémoire allouée à une machine virtuelle, il faut éteindre complètement la machine virtuelle et modifier les paramètres de la machine virtuelle. Avec la pratique de la montgolfière, on peut donner de la mémoire qui a été allouée à une machine virtuelle à une autre machine virtuelle sans devoir éteindre la machine. Cela peut être utile pour démarrer temporairement une autre machine virtuelle, ou dans des environnements plus compliqués pour la gestion sophistiquée de la mémoire de beaucoup de machines virtuelles qui peuvent être en fonction en même temps, en fonction de la façon dont la mémoire est utilisée par les invités.

Quand on demande la mémoire en montgolfière, les additions invité de VirtualBox (qui se lancent dans l'invité) allouent de la mémoire physique à partir du système d'exploitation invité au niveau du noyau et verrouillent vers le bas cette mémoire dans l'invité. Cela garantit que l'invité n'utilisera plus cette mémoire : aucune application invitée ne peut l'allouer, et le système d'exploitation invité ne l'utilisera pas non plus. VirtualBox peut alors réutiliser cette mémoire et la donner à une seconde machine.

La mémoire rendue disponible par le mécanisme de la montgolfière n'est disponible que pour une réutilisation par VirtualBox. Elle n'est pas libérée pour l'hôte. La demande de la montgolfière depuis un invité en fonction n'augmentera donc pas la quantité de mémoire libre et non allouée de l'hôte.

En fait, la pratique de la montgolfière est donc un mécanisme de réaffectation de mémoire pour plusieurs machines virtuelles alors qu'elles sont en fonction.

Pour l'instant, la pratique de la montgolfière avec de la mémoire n'est supportée que dans VBoxManage, l'outil de VirtualBox en ligne de commande. Utilisez la commande suivante pour augmenter ou diminuer la taille du ballon de la mémoire dans une machine virtuelle en fonction où les additions invité sont installés :

    VBoxManage controlvm "nom VM" guestmemoryballoon <n>

où `"nom VM"` est le nom ou l'UUID de la machine virtuelle en question et `<n>` est la quantité de mémoire à allouer depuis l'invité, en mégaoctets ; voir le pour plus d'informations..

Vous pouvez aussi régler un ballon par défaut qui sera automatiquement demandée depuis la VM à chaque fois qu'elle a été démarrée avec la commande suivante :

    VBoxManage modifyvm "nom VM" --guestmemoryballoon <n>

Par défaut, aucun ballon de mémoire n'est alloué. C'est un paramètre de la VM, comme d'autres paramètres de modifyvm, et il peut donc être réglé alors que machine éteinte ; voir le .

VirtualBox ne supporte la pratique de la montgolfière que sur les hôtes 64 bits, la pratique de la montgolfière n'est pas supportée sur les hôtes Mac OS X.

## Fusion de page

La fusion de page est une technologie nouvelle pour améliorer encore plus la densité de la VM sur l'hôte, et donc une manière de partager les ressources. Elle a été introduite tout d'abord avec VirtualBox 3.2 et est actuellement limitée aux VMs qui utilisent Windows 2000 et supérieur. Dans un scénario classique, des douzaines, voire des centaines de VMs très similaires sont consolidées sur un ordinateur hôte puissant et le niveau de consolidation est limité le plus souvent par la quantité de RAM qui peut être installée sur un système pour un coût raisonnable. Souvent, du fait d'un épuisement de RAM, on ne peut démarrer de VMs supplémentaires, bien que les processeurs de l'hôte offrent encore de la capacité. Pour dépasser cette limite, les hyperviseurs peuvent bénéficier du fait que souvent, les VMs se ressemblent (comme plusieurs VMs exécutant Windows XP Pack Service 2) et donc, elles contiennent une quantité de cellules de RAM identiques. L'hyperviseur peut chercher de telles données en double en mémoire, éliminer les redondances et libérer ainsi de la mémoire supplémentaire.

Les hyperviseurs traditionnels utilisent une technique souvent appelée le partage de mémoire ou la synchronisation de la même page quand ils parcourent toute la mémoire et calculent des sommes de contrôle (hashes) pour chaque page de mémoire. Puis, ils cherchent des pages avec des hashes identiques et ils comparent le contenu des pages (si deux pages donnent le mêmes hash, c'est très vraisemblablement que les pages ont un contenu identique). Les pages identiques sont éliminées afin que toutes les VMs pointent vers la même page tant qu'aucune VM n'essaie de modifier la page. Si une telle page est modifiée, le doublon précédemment éliminé est à nouveau alloué. Tout cela est complètement transparent pour la machine virtuelle. Cependant, l'algorithme classique comporte plusieurs inconvénients. Avant tout, il est plutôt long pour scanner la mémoire complète (surtout lorsque le système n'est pas en veille) donc la mémoire supplémentaire ne devient disponibles qu'après du temps (cela peut prendre plusieurs jours !). En outre, tout l'algorithme de partage de page consomme en général des ressources processeur significatives et augmente la surcharge de virtualisation de 10 à 20%.

La fusion de page dans VirtualBox utilise les additions invité de VirtualBox pour identifier les cellules de mémoire qui sont le plus vraisemblablement identiques entre les VMs et donc effectue la plupart des sauvegardes possibles de partage de mémoire presque immédiatement et presque sans surcharge. La fusion de page a également beaucoup moins de chances d'être faussée par de la mémoire identique en l'éliminant pour apprendre quelques secondes plus tard que la mémoire a maintenant changé, devant alors effectuer une ré-allocation très coûteuse et souvent perturbatrice.

Vous pouvez activer la fusion de page pour une VM en utilisant :

    VBoxManage modifyvm "nom VM" --pagefusion on

Vous pouvez observer l'opération de fusion de page en utilisant certaines unités. `RAM/VMM/Shared` affiche la quantité totale de pages fusionnées alors que l'unité `Guest/RAM/Usage/Shared` par VM retournera la quantité de mémoire fusionnée pour une machine donnée. Merci de vous reporter au pour des informations sur la façon de demander des unités.

VirtualBox ne supporte la fusion de page que sur des systèmes d'exploitation hôtes 64 bits. Les hôtes Mac OS X ne sont pas actuellement supportés. La fusion de page n'est disponible que pour les invités Windows 2000 et supérieur avec les additions invité actuelles.