Table des matières
VirtualBox sur Debian
Cette fiche traite de Debian en tant que système hôte et système invité.
Résumé d'installation
- Sur la machine hôtesse :
- vérifier les prérequis
- installer l'application Virtualbox
- installer le pack d'extension (Extension Pack) - optionnel -
- déclarer l'utilisatrice comme membre du groupe vboxusers
- Sur chaque machine invitée - optionnel - :
- installer les compléments pour invitée ou (Guest Additions)
- déclarer l'utilisatrice comme membre du groupe vboxsf
Installer VirtualBox
Prérequis
En cas de première installation de VirtualBox, il convient de s'assurer que le système est déjà équipé de tout ce dont l'application aura besoin pour fonctionner. On installe, si nécessaire, les paquetages suivants : dkms, build-essential, libvirt-daemon-driver-vbox et tous les packetages linux-headers correspondant aux noyaux1) sur lesquels on veut que virtualbox fonctionne.
uname -a apt install dkms, libvirt-daemon-driver-vbox linux-headers-5.18.0-0.deb11.3-amd64 linux-headers-5.18.0-0.bpo.1-amd64
Depuis les dépôts Debian
La disponibilité des paquetages nécessaires étant variable selon les versions de Debian, il faut se renseigner sur la page dédiée du wiki de Debian : VirtualBox.
Pour des raisons de licence, VirtualBox et l'extension “Guest Additions” sont dans deux paquetages différents.
Depuis le dépôt d'Oracle
Oracle3) propose également des versions packagées pour Debian. On dispose ainsi de versions plus récentes. Attention : ces paquetages ne bénéficient d'aucune garantie de la part de Debian ! Les informations nécessaires à la configuration des dépôts et à l'installation sont disponibles sur la page dédiée d'Oracle : Download VirtualBox for Linux Hosts.
Ajout du dépôt Oracle
Il est vivement recommandé de suivre les instructions de vérification des clés et signatures applicables tout ajout de dépôts hors Debian.
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian bullseye contrib" | tee -a /etc/apt/sources.list.d/virtualbox.list cd /tmp wget https://www.virtualbox.org/download/oracle_vbox_2016.asc gpg --show-keys oracle_vbox_2016.asc gpg --dearmor --yes --output /usr/share/keyrings/oracle-virtualbox-2016.gpg oracle_vbox_2016.asc
Installation du paquetage
Pour l'installer, il faut impérativement indiquer la version souhaitée, par exemple :
apt update apt install virtualbox-6.0
Une fois la version installée, les mises à jour se font automatiquement, suivant la politique que vous avez définies pour votre système hôte.
Autorisation
VirtualBox est lancé par une utilisatrice et tourne sous les droits de cette utilisatrice. Il en va de même des machines virtuelles. L'utilisation de VirtualBox requiert donc l'octroi d'une autorisation spécifique. Cela se fait en ajoutant l'utilisatrice voulue au groupe vboxusers :
# usermod -a -G vboxusers <user>
Lors de la première installation du paquetage virtualbox-M.m, le groupe vboxusers sera créé s'il n'existait pas déjà.
Pack d'extension
Ce pack apporte aux VM la possibilité d'accéder à certaines ressources de la machine hôtesse, tels les périphériques USB 2 et USB 3. Il doit être installé même si on ne l'exploite que sur une seule VM.
Lors d'une première installation4), on doit télécharger la version de l'extension qui correspond exactement à la version de VirtualBox que l'on vient d'installer. Le pack d'extension est identique pour tous les systèmes. L'URL de téléchargement est indiquée sur le site d'Oracle (copier l'URL attachée à l'ancre “All supported platforms”).
Une fois l'URL récupérée, on procède à l'installation proprement dite.
Principe :
cd tmp
wget <URL récupérée>
VBoxManage extpack install --replace <fichier téléchargé>
Exemple :
cd tmp wget https://download.virtualbox.org/virtualbox/6.1.36/Oracle_VM_VirtualBox_Extension_Pack-6.1.36a-152435.vbox-extpack VBoxManage extpack install --replace Oracle_VM_VirtualBox_Extension_Pack-6.1.36a-152435.vbox-extpack
Bien sûr, on remplacera l'URL et le nom du fichier par les valeurs obtenues, le jour où l'opération sera effectuée.
Vérification
Avant d'aller plus loin, il est conseillé de faire un test qui a défaut d'être complet est à la fois informatique et particulièrement simple à réaliser :
/sbin/vboxconfig
En cas de problème6), les informations fournies seront bien plus complètes, lisibles et précises que si on tente bêtement de lancer l'application graphique.
VirtualBox Guest Additions en ligne de commande
Sur la machine hôtesse
On s'assure qu'on a installé l'Extension pack et que l'extension est reconnue par VirtualBox (Fichier > Paramètres > Extensions).
Sur chaque machine invitée
Les compléments pour invitées (Guest Additions) sont disponibles sur une image iso, installée sur la machine hôtesse : /usr/share/virtualbox/VBoxGuestADDitions.iso
Dans la configuration de la machine invitée, on ajoute cette image iso aux stockages disponibles, comme on le ferait pour n'importe quel CD/DVD virtuel.
Sur chaque système invité concerné
Une machine virtuelle pouvant héberger plusieurs systèmes, l'opération est à répéter sur chaque système que l'on souhaite faire bénéficier de Guest Additions.
# apt-get update # apt-get install build-essential dkms # cd /media //// on devrait trouver un répertoire dont le nom ressemble à VBOXADDITIONS_4.2.12_84980, sinon explorer les répertoires présents (cdrom, cdrom0, cdrom1, etc.)//// //// si tous les répertoires /media/* sont vides, procéder à un montage manuel de l'image iso : # mount /dev/cdrom /media/cdrom //// # cd VBOXADDITIONS <TAB> pour faire jouer l'autocomplétion # sh VBoxLinuxAdditions.run
En cas de montage manuel de l'image du CD, il est normal que le système indique un montage en lecture seule puisqu'il s'agit de l'image iso d'un CD ;)
Déclarer l'utilisatrice souhaitant utiliser les guest additions comme membre du groupe vboxsf.
# usermod -a -G vboxsf <user>
Mises à jour
Chaque mise à jour de VirtualBox s'accompagne d'une mise à jour des Guest Additions.
Sur le système hôte, ces mises à jour sont gérées automatiquement par le gestionnaire de paquetages suivant la politique que l'on a définie.
Au lancement de VirtualBox, l'utilisatrice sera avertie de l'existence d'une nouvelle version des Guest Additions et l'ajout de cette mise à jour lui sera proposé.
Mais rien n'est répercuté sur les systèmes des machines invitées puisque ce sont des systèmes indépendants… Sur chaque machine invitée exploitant les Guest Additions, il faudra relancer le script d'installation, comme indiqué précédemment :
# sh VBoxLinuxAdditions.run
Redimensionner un disque
Sources : VBoxManage manual, parted command examples.
Nous partons du principe que l'on veut agrandir un disque devenu trop petit.
Il va falloir :
- redimensionner le disque
- réorganiser les partitions
Redimensionner le disque
Vérifier dans la documentation quel type disque est redimentionnable et quel type d'opération est permis.
$ VBoxManage modifyhd <fichier_disque> --resize <taille en Mo>
Réorganiser les partitions
Dans une VM de test basique, on a une seule partition. Mais en réalité, cela signifie 2 partitions :
- la racine
- le swap
De plus ces deux partitions seront souvent organisées comme suit :
- partition physique racine
- partition étendue
- partition logique swap
Cela signifie qu'il va falloir :
- étendre la partition étendue “sur la droite”
- déplacer la partition de swap “sur la droite”
- réduire la partition étendue “par la gauche”
- étendre la partition racine “sur le droite”
Ces opération doivent nécessairement être réalisée en bootant sur un autre système. Si la machine hôtesse est munie d'une interface graphique, je suggère de démarrer la machine invitée avec un CD (virtuel) de dépannage disposant de gparted (par ex. une image Ubuntu pour desktop).
Au secours !
Quelques astuces pour se sortir de mauvaises situations.
Changer de terminal virtuel
Pour changer de terminal virtuel, dans une VM Linux, il suffit d'utiliser la touche “host” (HostKey) qui est, par défaut, assignée à la touche Ctrl située à droite du clavier. HostKey+Fn fait basculer sur le terminal virtuel n de la VM. Tout se passe comme si HostKey insérait un Crtl+Alt.
Forcer la VM à rendre la souris/clavier
Pour une raison ou une autre, la VM a capturé la souris (et le clavier) ne veut plus la rendre… Une pression sur la touche HostKey est censée la libérer. Si la VM est complètement partie dans le décor7), il faudra peut-être envisager que l'éteindre en ligne de commande.
Mais comment ouvrir un terminal si on a perdu tout contrôle ? La première option et de basculer la machine hôtesse sur un autre terminal virtuel, par ex. Ctrl+Alt+Fn. Si cela ne fonctionne pas et si la machine hôtesse est joignable en ssh, on y accède depuis un autre ordi.
Quitter une VM en ligne de commande
Depuis la machine hôtesse, on commence par vérifier les noms des VM en fonction :
$ VBoxManage list runningvms
puis on arrête celle que l'on cible :
$ VBoxManage controlvm VM-ciblée poweroff
Une variante effectue une sauvegarde de l'état de la VM puis l'arrête.
$ VBoxManage controlvm VM-ciblée savestate