VirtualBox : Différence entre versions

De ArchwikiFR
(Clarification des modules pour l'hôte avec un noyau personnalisé)
(Lancement de VirtualBox)
 
(10 révisions intermédiaires par 6 utilisateurs non affichées)
Ligne 6 : Ligne 6 :
  
 
== Installation pour Arch Linux en tant que hôte ==
 
== Installation pour Arch Linux en tant que hôte ==
=== Installation du cœur ===
+
=== Installation du logiciel ===
 
Le paquet {{pkg|virtualbox}} proposé dans [[Depots|[community]]] correspond au produit classique sous licence GPL.
 
Le paquet {{pkg|virtualbox}} proposé dans [[Depots|[community]]] correspond au produit classique sous licence GPL.
  
Ligne 14 : Ligne 14 :
 
  pacman -S virtualbox
 
  pacman -S virtualbox
  
Pour utiliser l'interface graphique et si vous ne l'avez pas déjà :
+
=== Installation et chargement des modules pour l'hôte ===
pacman -S qt4
+
On distingue deux types de paquets : ceux qui contiennent les modules déjà compilés, et ceux qui les compilent automatiquement avec [[Dkms|DKMS]].
  
=== Installation des modules pour l'hôte avec un noyau officiel ===
+
* Pour le noyau {{pkg|linux}}: il faut installer {{pkg|virtualbox-host-modules-arch}}
Le paquet {{pkg|virtualbox-host-modules}} correspond aux «Additions» pour la machine hôte ; il est installé par défaut avec le paquet {{pkg|virtualbox}}.
+
* Pour le noyau {{AUR|linux-ck}} (et dérivés) : il faut installer {{AUR|virtualbox-ck-host-modules}}
 +
* Pour les autres noyaux (comme le noyau LTS) : il faut installer {{pkg|virtualbox-host-dkms}} et penser à installer le paquet de headers correspondant (par exemple, {{pkg|llinux-lts-headers}} pour le noyau LTS)
  
Le paquet {{pkg|virtualbox-host-modules-lts}} est à installer si vous utilisez le noyau '''LTS'''.
+
Quatre modules existent :
 +
* vboxdrv : le module de base
 +
* vboxnetadp : voir [[#Réseau privé de l'hôte|Réseau privé de l'hôte]]
 +
* vboxnetflt : voir [[#Accès par pont|Accès par pont]]
 +
* vboxpci : est nécessaire quand la machine virtuelle doit utiliser un périphérique PCI physique
  
De même avec un noyau '''CK''', installez {{AUR|virtualbox-ck-host-modules}} (AUR).
+
Vous pouvez charger manuellement le module {{codeline|vboxdrv}} :
 +
modprobe vboxdrv
  
=== Installation des modules pour l'hôte avec un noyau personnalisé ===
+
Pour recharger automatiquement tous les modules (par exemple, en cas de mise à jour), vous pouvez utiliser la commande {{codeline|vboxreload}}.
Normalement, si vous utilisez un noyau personnalisé qui est à la même version qu'un noyau officiel, alors il est fort probable que les modules du noyau officiels fonctionnent avec le noyau personnalisé.
 
  
Sinon, il faut installer le paquet {{pkg|virtualbox-host-dkms}}, ainsi que les en-têtes qui correspondent à votre noyau (linux-*-headers), puis faites :
+
{{Note|Depuis la version 5.0.16 du paquet VirtualBox, il est inutile de créer un fichier {{filename|/etc/modules-load.d/}} : il y a déjà un fichier similaire présent dans {{filename|/usr/lib/modules-load.d/}}, ce dernier étant utilisé par {{codeline|systemd-modules-load.service}}.
dkms install vboxhost/VERSION_DE_VIRTUALBOX_HÔTE -k NOYAU_PERSONNALISÉ/ARCHITECTURE
 
{{Tip|Ou plus simplement si vous avez démarré sur le noyau en question :
 
<nowiki>dkms install vboxhost/$(pacman -Q virtualbox|awk '{print $2}'|sed 's/\-.\+//') -k $(uname -rm|sed 's/\ /\//')</nowiki>
 
}}
 
Pour automatiser cette méthode lors de la mise à jour du paquet {{pkg|virtualbox-host-dkms}}, vous pouvez activer le service {{codeline|dkms}} avec :
 
systemctl enable dkms.service
 
 
 
Une autre méthode consiste à installer le paquet {{pkg|vboxhost-hook}} puis d'ajouter au fichier {{filename|/etc/mkinitcpio.conf}} le HOOK '''{{codeline|vboxhost}}''', ce qui aura pour conséquence de recompiler automatiquement les modules lors de la commande {{codeline|mkinitcpio -p NOYAU_PERSONNALISÉ}}.
 
 
 
=== Module de base pour l'hôte ===
 
Vous pouvez charger manuellement le module {{codeline|vboxdrv}} :
 
modprobe vboxdrv
 
Ou bien pour le [[Kernel_modules#Chargement|charger automatiquement au démarrage]], rajoutez le module dans un fichier de {{filename|/etc/modules-load.d/}}:
 
{{File|name=/etc/modules-load.d/virtualbox.conf|content=
 
vboxdrv
 
 
}}
 
}}
  
 
=== Modules pour le réseau ===
 
=== Modules pour le réseau ===
Plusieurs modes sont disponibles :
+
Plusieurs modes réseau sont disponibles :
*[[#NAT|NAT]] : [[wikipedia:fr:Network address translation|Network Address Translation]]
+
*[[#NAT|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|Accès par pont]] : Permet d'être directement connecté à l'interface physique
+
*[[#Accès par pont|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
*[http://www.virtualbox.org/manual/ch06.html#network_internal Réseau interne (en)] : C'est un mode qui permet seulement de se connecter aux différentes machines virtuelles.
+
*[http://www.virtualbox.org/manual/ch06.html#network_internal 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|Réseau privé de l'hôte]] : Permet de se connecter aux différentes machines virtuelles ainsi qu'au système hôte.
+
*[[#Réseau privé de l'hôte|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====
 
====NAT====
 
Depuis la fenêtre des paramètres de la VM :
 
Depuis la fenêtre des paramètres de la VM :
Ligne 99 : Ligne 88 :
 
Pour démarrer VirtualBox, cliquez sur l'icône de l'application ou bien tapez la commande suivante pour démarrer l'interface graphique :
 
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
 
  VirtualBox
*Il suffit de cliquer dans la fenêtre du système invité pour captuer le clavier/souris
+
*Il suffit de cliquer dans la fenêtre du système invité pour capturer le clavier/souris
 
*Utilisez la touche ''Host'' ({{keypress|Ctrl}} droit par défaut) pour libérer le clavier/souris
 
*Utilisez la touche ''Host'' ({{keypress|Ctrl}} droit par défaut) pour libérer le clavier/souris
  
Ligne 111 : Ligne 100 :
  
 
=== Invité : Arch Linux ===
 
=== Invité : Arch Linux ===
Arch Linux propose son propre paquet qui contient les modules pour un système invité. Il suffit d'installer (dans la machine virtuelle) le paquet suivant :
+
Pour installer les [https://www.virtualbox.org/manual/ch04.html Guest Additions (en)] dans un système invité Arch Linux, il n'y a pas besoin d'utiliser l'ISO : des paquets sont fournis.
pacman -S virtualbox-guest-utils
+
* Pour le noyau {{pkg|linux}} : il faut installer {{pkg|virtualbox-guest-modules-arch}}
Ou bien si vous utilisez le noyau '''LTS''', installez {{pkg|virtualbox-guest-modules-lts}}, ou encore alors le noyau '''CK''', {{AUR|virtualbox-ck-guest-modules}} (AUR).
+
* Pour le noyau {{AUR|linux-ck}} (et dérivés) : il faut installer {{AUR|virtualbox-ck-guest-modules}}
 +
* Pour les autres noyaux (comme le noyau LTS) : il faut installer {{pkg|virtualbox-guest-dkms}} et penser à installer le paquet de headers correspondant (par exemple, {{pkg|linux-lts-headers}} pour le noyau LTS)
 +
 
 +
Ensuite, il faut installer un de ces deux paquets :
 +
* {{pkg|virtualbox-guest-utils}} : utilitaires pour VirtualBox '''avec''' le support de X
 +
* {{pkg|virtualbox-guest-utils-nox}} : utilitaires pour VirtualBox '''sans''' le support de X
 +
 
 +
Vous pouvez activer et démarrer le service {{codeline|vboxservice}} :
 +
systemctl enable vboxservice
 +
systemctl start vboxservice
  
 
Vous pouvez charger les modules manuellement :
 
Vous pouvez charger les modules manuellement :
 
  modprobe -a vboxguest vboxsf vboxvideo
 
  modprobe -a vboxguest vboxsf vboxvideo
  
Pour charger les modules automatiquement au démarrage, ajoutez un fichier de suffixe .conf dans le répertoire {{filename|/etc/modules-load.d/}}, tel :
+
{{Note|Depuis la version 5.0.16 du paquet VirtualBox, il est inutile de créer un fichier {{filename|/etc/modules-load.d/}} : il y a déjà un fichier similaire présent dans {{filename|/usr/lib/modules-load.d/}}, ce dernier étant utilisé par {{codeline|systemd-modules-load.service}}.
{{File|name=/etc/modules-load.d/virtualbox.conf|content=
 
vboxguest
 
vboxsf
 
vboxvideo
 
 
}}
 
}}
{{important|''Uniquement'' si vous utilisez un kernel '''personnalisé''' dans l'invité, installez {{AUR Search|vboxguest-hook}} dans l'invité. }}
 
  
 
=== Invité : Windows ===
 
=== Invité : Windows ===
Ligne 132 : Ligne 125 :
 
{{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'''.}}
 
{{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
 +
{{tip|Pour avoir le chemin d'un disque, vous pouvez ouvrir VirtualBox, allez dans '''Fichier''' puis dans '''Gestionnaire de médias''' (ou bien {{keypress|Ctrl}} + {{keypress|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 ==
 
== Ressources ==
 
[http://www.virtualbox.org/manual/UserManual.html Oracle VM VirtualBox® Manuel utilisateur (en)]
 
[http://www.virtualbox.org/manual/UserManual.html Oracle VM VirtualBox® Manuel utilisateur (en)]

Version actuelle datée du 18 avril 2019 à 19:58

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

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 capturer 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)