VirtualBox

De ArchwikiFR

VirtualBox (ou VBox) est un produit pour la virtualisation d'un environnement 32 (x86) ou 64 bits (AMD64/Intel64) et il est aussi valable pour le milieu de l'entreprise que pour les particuliers. Il supporte un nombre important de systèmes d'exploitation, propose une interface graphique (Qt / SDL) de même qu'une interface en ligne de commande.

Cette généricité implique cependant des performances plus basses par-rapport à qemu-kvm.

Installation pour Arch Linux en tant que hôte

Installation du logiciel

Le paquet virtualbox proposé dans [community] correspond au produit classique sous licence GPL.

Le paquet virtualbox-ext-oracle sur AUR correspond au pack d'extensions sous licence VirtualBox PUEL. Il comprend notamment le support des périphériques USB 2.0, l'accès par RDP et le boot par PXE pour les cartes Intel.

Installation :

pacman -S virtualbox

Pour utiliser l'interface graphique et si vous ne l'avez pas déjà :

pacman -S qt5-x11extras

Installation et chargement des modules pour l'hôte

On distingue deux types de paquets : ceux qui contiennent les modules déjà compilés, et ceux qui les compilent automatiquement avec DKMS.

Quatre modules existent :

  • vboxdrv : le module de base
  • vboxnetadp : voir Réseau privé de l'hôte
  • vboxnetflt : voir Accès par pont
  • vboxpci : est nécessaire quand la machine virtuelle doit utiliser un périphérique PCI physique

Vous pouvez charger manuellement le module vboxdrv :

modprobe vboxdrv

Pour recharger automatiquement tous les modules (par exemple, en cas de mise à jour), vous pouvez utiliser la commande vboxreload.

Note: Depuis la version 5.0.16 du paquet VirtualBox, il est inutile de créer un fichier /etc/modules-load.d/ : il y a déjà un fichier similaire présent dans /usr/lib/modules-load.d/, ce dernier étant utilisé par systemd-modules-load.service.

Modules pour le réseau

Plusieurs modes réseau sont disponibles :

  • NAT : les machines virtuelles peuvent communiquer avec d'autres machines virtuelles et avec le monde extérieur ; elle ne sont pas visibles sur le réseau
  • Accès par pont : les machines virtuelles peuvent communiquer avec d'autres machines virtuelles et avec le monde extérieur ; elle sont visibles sur le réseau
  • Réseau interne (en) : les machines virtuelles sont reliées entre elles, mais elles ne peuvent pas communiquer avec l'hôte et le réseau extérieur
  • Réseau privé de l'hôte : les machines virtuelles peuvent communiquer entre elles ainsi qu'avec l'hôte, mais elles ne peuvent pas communiquer le réseau extérieur

NAT

Depuis la fenêtre des paramètres de la VM :

  • Cliquer sur Réseau
  • Sélectionner nat dans la liste déroulante Mode d'accès réseau

VirtualBox mettra à disposition un serveur DHCP, ce qui permet de configurer le système invité en DHCP.

Accès par pont

Ce mode nécessite un module supplémentaire :

modprobe vboxnetflt

Depuis la fenêtre des paramètres de la VM :

  • Cliquer sur Réseau
  • Sélectionner Accès par pont dans la liste déroulante Mode d'accès réseau
  • Sélectionner l'inteface connectée au réseau que vous voulez joindre dans la liste déroulante Nom

La configuration du réseau de la machine virtuelle devra se faire de la même façon que si c'était un vrai système.

Réseau privé de l'hôte

Ce mode nécessite un module suplémentaire :

modprobe vboxnetadp

Depuis la fenêtre des paramètres de virtualbox :

  • Cliquer sur fichier
  • Aller dans le menu Réseau
  • Ajouter un réseau privé vboxnet0 en cliquant sur plus

Il est possible de modifier les paramètres de la carte et du DHCP en cliquant sur le tournevis.

Par défaut : interface vboxnet0 (machine physique):

192.168.56.1/24

DHCP:

adresse du serveur : 192.168.56.100
masque du serveur : 255.255.255.0
adresse min : 192.168.56.102
adresse max : 192.168.56.254

Ajout des utilisateurs au groupe vboxusers

Il faut rajouter l'utilisateur au groupe vboxusers :

gpasswd -a utilisateur vboxusers

Lancement de VirtualBox

Pour démarrer VirtualBox, cliquez sur l'icône de l'application ou bien tapez la commande suivante pour démarrer l'interface graphique :

VirtualBox
  • Il suffit de cliquer dans la fenêtre du système invité pour captuer le clavier/souris
  • Utilisez la touche Host (Ctrl droit par défaut) pour libérer le clavier/souris

Il est aussi possible de manipuler VirtualBox uniquement en ligne de commande avec :

VBoxManage

Installation pour un système invité

Le paquet virtualbox-guest-iso fournit les «Additions» invité sous forme d'un fichier ISO : /usr/lib/virtualbox/additions/VBoxGuestAdditions.iso ; il suffit de monter cette ISO dans un lecteur CD de votre machine virtuelle pour l'utiliser.

Note: Certains systèmes d'exploitation, comme quelques distributions GNU/Linux, fournissent un paquet à installer dans l'invité qui contient déjà les modules invités. Cette étape devient alors inutile.

Invité : Arch Linux

Pour installer les Guest Additions (en) dans un système invité Arch Linux, il n'y a pas besoin d'utiliser l'ISO : des paquets sont fournis.

Ensuite, il faut installer un de ces deux paquets :

Vous pouvez activer et démarrer le service vboxservice :

systemctl enable vboxservice
systemctl start vboxservice

Vous pouvez charger les modules manuellement :

modprobe -a vboxguest vboxsf vboxvideo
Note: Depuis la version 5.0.16 du paquet VirtualBox, il est inutile de créer un fichier /etc/modules-load.d/ : il y a déjà un fichier similaire présent dans /usr/lib/modules-load.d/, ce dernier étant utilisé par systemd-modules-load.service.

Invité : Windows

Une fois le système installé (si vous n'avez pas monté l'ISO VBoxGestAdditions.iso comme expliqué plus haut), sélectionnez : Périphérique → Installer les additions invité (ou Host + D).

Exécutez le fichier nommé VBoxWindowsAdditions.exe pour commencer l'installation.

Note: Pour activer le support Direct3D, cochez la case "Support Direct3D pour invités", puis dans la fenêtre de dialogue qui surgit, cliquez sur Non.

Astuces

Compacter un disque dynamique

Dans VirtualBox, les disques à taille dynamique ont l'avantage d'occuper uniquement la place nécessaire sur votre disque physique, contrairement aux disques à taille fixe qui occupent tout l'espace alloué (même s'ils sont vides). Bien que la taille d'un disque dynamique augmente automatiquement en fonction des besoins, elle ne décroît jamais même si du nettoyage est effectué dans la machine virtuelle.

Pour y remédier, il faut écraser tout l'espace libre de la machine virtuelle avec rien (plus précisément des 0). On peut y parvenir avec la commande suivante à lancer depuis la machine virtuelle (à exécuter en tant que root) :

dd if=/dev/zero of=/grosfichier.img bs=512

Une fois le disque plein, la commande vous rend la main, et vous pouvez supprimer le fichier.

rm /grosfichier.img

Une fois le fichier supprimé, il faut éteindre la machine virtuelle, et on peut commencer à compacter le disque depuis le système hôte. Il suffit de faire la commande :

VBoxManage modifyhd "<chemin_absolu_vers_disque.vdi>" --compact 
Astuce: Pour avoir le chemin d'un disque, vous pouvez ouvrir VirtualBox, allez dans Fichier puis dans Gestionnaire de médias (ou bien Ctrl + D), sélectionnez le disque concerné, puis cliquez sur la ligne à droite de Emplacement et vous pouvez copier le chemin absolu vers le disque.

Ressources

Oracle VM VirtualBox® Manuel utilisateur (en)