Virtualization · 6 min read · Dec 26, 2025

VBoxHeadless - Exécution de machines virtuelles avec VirtualBox 4.1 sur un serveur CentOS 6.2 sans interface graphique

VBoxHeadless - Exécution de machines virtuelles avec VirtualBox 4.1 sur un serveur CentOS 6.2 sans interface graphique

Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter

Ce guide explique comment vous pouvez exécuter des machines virtuelles avec VirtualBox 4.1 sur un serveur CentOS 6.2 sans interface graphique. Normalement, vous utilisez l’interface graphique de VirtualBox pour gérer vos machines virtuelles, mais un serveur n’a pas d’environnement de bureau. Heureusement, VirtualBox est livré avec un outil appelé VBoxHeadless qui vous permet de vous connecter aux machines virtuelles via une connexion de bureau à distance, donc il n’est pas nécessaire d’utiliser l’interface graphique de VirtualBox.

Je ne donne aucune garantie que cela fonctionnera pour vous !

1 Remarque préliminaire

J’ai testé cela sur un serveur CentOS 6.2 (système hôte) avec l’adresse IP 192.168.0.100 où je suis connecté en tant qu’utilisateur normal (nom d’utilisateur admin dans cet exemple) au lieu de root.

Si vous n’avez qu’un compte root, mais pas de compte utilisateur normal, créez-en un comme suit (utilisateur admin, groupe admin)…

… créez un mot de passe pour le nouvel utilisateur…

# passwd admin

… et connectez-vous en tant que cet utilisateur.

2 Installation de VirtualBox

Pour installer VirtualBox 4.1 sur notre serveur CentOS 6.2, nous avons besoin de privilèges root, donc nous exécutons

$ su

Ensuite, nous installons les dépendances pour VirtualBox 4.1 comme suit :

# yum groupinstall 'Development Tools'
# yum install SDL kernel-devel kernel-headers dkms

Avec la dernière commande, nous avons installé les en-têtes du noyau de notre noyau actuellement utilisé. Les en-têtes se trouvent dans le répertoire /usr/src/kernels/, mais il est probable que son répertoire ne soit pas nommé -, mais ait un nom différent afin que le module noyau de VirtualBox ne puisse pas être construit plus tard parce que le répertoire d’en-têtes de noyau attendu ne peut pas être trouvé. Nous allons corriger cela maintenant :

Vérifiez votre version de noyau…

# uname -r

[root@server1 ~]# uname -r
2.6.32-220.el6.x86_64
[root@server1 ~]#

Cela signifie qu’il devrait y avoir un répertoire appelé 2.6.32-220.el6.x86_64 dans le répertoire /usr/src/kernels/. Nous pouvons vérifier cela maintenant :

[root@server1 kernels]# ls -l
total 4
drwxr-xr-x 22 root root 4096 Jun 25 17:30 2.6.32-220.23.1.el6.x86_64
[root@server1 kernels]#

Comme vous le voyez, j’ai le répertoire 2.6.32-220.23.1.el6.x86_64, mais pas 2.6.32-220.el6.x86_64. Par conséquent, nous créons un lien symbolique appelé 2.6.18-238.el5-x86_64 qui pointe vers 2.6.18-238.9.1.el5-x86_64 :

# ln -s 2.6.32-220.23.1.el6.x86_64 `uname -r`

Ensuite, téléchargez et enregistrez la clé publique rpm de VirtualBox :

Maintenant, nous activons le dépôt CentOS de VirtualBox sur notre système :

Nous pouvons maintenant simplement installer VirtualBox 4.1 comme suit :

# yum install VirtualBox-4.1

Si l’installation est réussie, la sortie devrait se terminer comme suit :

[…]
Exécution de la transaction
Installation : VirtualBox-4.1-4.1.18_78361_rhel6-1.x86_64

Création du groupe ‘vboxusers’. Les utilisateurs de VM doivent être membres de ce groupe !

Aucun module précompilé pour ce noyau trouvé – tentative de construction d’un. Les messages
émis lors de la compilation du module seront enregistrés dans /var/log/vbox-install.log.

Arrêt des modules noyau de VirtualBox [ OK ]
Désinstallation des anciens modules noyau VirtualBox DKMS [ OK ]
Tentative d’enregistrement des modules noyau VirtualBox en utilisant DKMS [ OK ]
Démarrage des modules noyau de VirtualBox [ OK ]

Installé :
VirtualBox-4.1.x86_64 0:4.1.18_78361_rhel6-1

Terminé !
[root@server1 kernels]#

(Si l’installation échoue parce que le répertoire d’en-têtes de noyau correct ne peut pas être trouvé, la sortie se terminera comme suit :

[…]
Exécution de la transaction
Installation : VirtualBox-4.1-4.1.18_78361_rhel6-1.x86_64

Création du groupe ‘vboxusers’. Les utilisateurs de VM doivent être membres de ce groupe !

Aucun module précompilé pour ce noyau trouvé – tentative de construction d’un. Les messages
émis lors de la compilation du module seront enregistrés dans /var/log/vbox-install.log.

Arrêt des modules noyau de VirtualBox [ OK ]
Désinstallation des anciens modules noyau VirtualBox DKMS [ OK ]
Tentative d’enregistrement des modules noyau VirtualBox en utilisant DKMS
Erreur ! Votre source de noyau pour le noyau 2.6.32-220.el6.x86_64 ne peut pas être trouvée à
/lib/modules/2.6.32-220.el6.x86_64/build ou /lib/modules/2.6.32-220.el6.x86_64/source.
[ÉCHOUÉ]
(Échoué, tentative sans DKMS)
Recompilation des modules noyau VirtualBox [ÉCHOUÉ]
(Voyez /var/log/vbox-install.log pour découvrir ce qui a mal tourné)

Installé :
VirtualBox-4.1.x86_64 0:4.1.18_78361_rhel6-1

Terminé !
[root@server1 kernels]#

Dans ce cas, essayez de créer le lien symbolique de noyau correct (comme montré précédemment) et ensuite exécutez

# /etc/init.d/vboxdrv setup

pour créer le module noyau de VirtualBox.)

Maintenant, nous devons ajouter l’utilisateur qui exécutera VirtualBox (admin dans cet exemple) au groupe vboxusers :

# /usr/sbin/usermod -G vboxusers admin

VirtualBox est maintenant installé et prêt à être utilisé.

À partir de la version 4.0, VirtualBox a introduit ce qu’on appelle des “packs d’extension” et a externalisé certaines fonctionnalités comme le support de connexion de bureau à distance (VRDP) qui faisaient partie des paquets VirtualBox avant la version 4.0 dans ces packs d’extension. Comme nous avons besoin de connexions de bureau à distance pour contrôler nos machines virtuelles, nous devons maintenant installer le pack d’extension approprié. Allez sur http://www.virtualbox.org/wiki/Downloads, et vous trouverez un lien vers le pack d’extension suivant :

VirtualBox 4.1.18 Oracle VM VirtualBox Extension Pack
Support pour les appareils USB 2.0, VirtualBox RDP et démarrage PXE pour les cartes Intel.

Téléchargez et installez le pack d’extension comme suit :

(Veuillez vous assurer de récupérer la dernière version sur le site Web de VirtualBox.)

Tapez

# exit

pour quitter le compte root et redevenir un utilisateur normal (admin) à nouveau.

3 Utilisation de VirtualBox en ligne de commande

3.1 Création d’une VM

Pour créer une VM en ligne de commande, nous pouvons utiliser la commande VBoxManage. Voir

$ VBoxManage --help

pour une liste des options disponibles et (très recommandé !) jetez un œil à http://www.virtualbox.org/manual/ch08.html.

Je vais maintenant créer une VM Ubuntu 12.04 Server avec 1024 Mo de mémoire et un disque dur de 10 Go à partir de l’image iso d’Ubuntu 12.04 Server (que j’ai stockée dans /home/ubuntu-12.04-server-amd64.iso) :

$ VBoxManage createvm –name “Ubuntu 12.04 Server” –register
$ VBoxManage modifyvm “Ubuntu 12.04 Server” –memory 1024 –acpi on –boot1 dvd –nic1 bridged –bridgeadapter1 eth0
$ VBoxManage createhd –filename Ubuntu_12_04_Server.vdi –size 10000
$ VBoxManage storagectl “Ubuntu 12.04 Server” –name “IDE Controller” –add ide
$ VBoxManage storageattach “Ubuntu 12.04 Server” –storagectl “IDE Controller” –port 0 –device 0 –type hdd –medium Ubuntu_12_04_Server.vdi
$ VBoxManage storageattach “Ubuntu 12.04 Server” –storagectl “IDE Controller” –port 1 –device 0 –type dvddrive –medium /home/ubuntu-12.04-server-amd64.iso

3.2 Importation d’une VM existante

Supposons que vous ayez une VM appelée examplevm que vous souhaitez réutiliser sur cet hôte. Sur l’ancien hôte, vous devriez avoir un répertoire Machines/examplevm dans le répertoire VirtualBox ; Machines/examplevm devrait contenir le fichier examplevm.xml. Copiez le répertoire examplevm (y compris le fichier examplevm.xml) dans votre nouveau répertoire Machines (si votre nom d’utilisateur est admin, c’est /home/admin/.VirtualBox/Machines - le résultat devrait être /home/admin/.VirtualBox/Machines/examplevm/examplevm.xml).

En plus de cela, copiez le fichier examplevm.vdi de l’ancien répertoire VDI vers le nouveau (par exemple /home/admin/.VirtualBox/VDI/examplevm.vdi).

Ensuite, vous devez enregistrer la VM importée :

$ VBoxManage registervm Machines/examplevm/examplevm.xml

3.3 Démarrage d’une VM avec VBoxHeadless

Que vous créiez une nouvelle VM ou importiez une ancienne, vous pouvez la démarrer avec la commande :

$ VBoxHeadless --startvm "Ubuntu 12.04 Server"

(Remplacez Ubuntu 12.04 Server par le nom de votre VM.)

VBoxHeadless démarrera la VM et un serveur VRDP (VirtualBox Remote Desktop Protocol) qui vous permet de voir la sortie de la VM à distance sur une autre machine.

Pour arrêter une VM, exécutez

 $ VBoxManage controlvm "Ubuntu 12.04 Server" poweroff

Pour mettre en pause une VM, exécutez

$ VBoxManage controlvm "Ubuntu 12.04 Server" pause

Pour réinitialiser une VM, exécutez

$ VBoxManage controlvm "Ubuntu 12.04 Server" reset

Pour en savoir plus sur VBoxHeadless, jetez un œil à

$ VBoxHeadless --help

et à http://www.virtualbox.org/manual/ch07.html#vboxheadless.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.