VirtualBox – Start auto des VM

Démarrage automatique des VM

Lancez vos VM automatiquement lors d'un redémarrage du système Windows ou Debian.

1 - Sous Windows 11

VirtualBox est installé par défaut dans :

C:\Program Files\Oracle\VirtualBox\

et son fichier de configuration VirtualBox.xml est dans :

C:\Utilisateurs\nom-du-user\.VirtualBox\

1.1 - Fichier autostart.properties

Créez un fichier de nom autostart.properties dans le dossier \Utilisateurs\nom-du-user\.VirtualBox\ et remplissez-le avec le contenu suivant :

# La politique par défaut est de refuser le démarrage   
# d'une machine virtuelle "deny", l'autre option
# est de l'autoriser "allow".
default_policy = deny

# L'utilisateur ci-dessous est autorisé à
# démarrer les machines virtuelles mais ceci 
# après un délai de 30 secondes
nom-du-user = {
     allow = true
     startup_delay = 30
}
# Saut de ligne obligatoire après l'acollade

Le service qui exploitera ce fichier s'appelle VirtualBox Autostart Service (VBoxAutostartSvc).

1.2 - Service VBoxAutostartSvc

Créez au préalable une variable d'environnement Windows de nom VBOXAUTOSTART_CONFIG.

La Cde ci-dessous peut être utilisée depuis le Terminal(administrateur) de Windows pour créer temporairement celle-ci :

> set VBOXAUTOSTART_CONFIG=C:\Users\nom-du-user\.VirtualBox\autostart.properties

Pour rendre cette variable permanente, utilisez l'application sysdm.cpl qui peut être lancée depuis le champ Exécuter du menu Windows.

Une fenêtre Propriétés système s'ouvre :
-> Onglet Paramètres système avancés
-> Bouton Variables d'environnement
-> Zone Variables système
-> Bouton Nouvelle...

-> Champ Nom de la variable, entrez :
VBOXAUTOSTART_CONFIG.

-> Champ Valeur de la variable, entrez :
C:\Users\nom-du-user\.VirtualBox\autostart.properties.

-> Bouton OK

La création de la variable VBOXAUTOSTART_CONFIG peut être vérifiée depuis l'application regedit en accédant à la clé Environment ci-dessous :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Ensuite, activez le service de démarrage auto des VM depuis le Terminal(administrateur) de Windows comme ceci :

> cd "C:\Program Files\Oracle\VirtualBox"
> .\VBoxAutostartSvc.exe install --user=nom-du-user

Le MDP de l'utilisateur nom-du-user sera demandé.

Pour info, le service peut être désactivé ainsi :

> .\VBoxAutostartSvc.exe delete --user=nom-du-user

Finir en autorisant le démarrage automatique de chacune des VM (VM arrêtée) :

> cd "C:\Program Files\Oracle\VirtualBox"

> .\VBoxManage.exe modifyvm "nom-de-la-vm" --autostart-enabled on --defaultfrontend headless --autostart-delay 30

L'option --defaultfrontend headless implique un mode de démarrage sans fenêtre d'affichage graphique, ceci dans le cas par exemple d'une utilisation d'un accès à distance sur la VM de type RDP ou VNC.

Ajoutez quelques secondes d'écart entre chaque autostart-delay.

Une VM déclarée en autostart voit son fichier de configuration *.vbox situé dans le dossier de celle-ci contenir la ligne suivante :

<Autostart enabled="true" delay="30" autostop="Disabled"/>

1.3 - Service VBoxSVC

VirtualBox prend en charge l'exécution du service VBoxSVC dans la session 0 (zéro) de Windows.

VBoxSVC fonctionne alors comme un service Windows normal et permet aux VM headless de continuer à fonctionner même si l'utilisateur nom-du-user ferme sa session Windows.

Pour activer le service, démarrez l'application regedit de Windows, puis :

-> HKEY_LOCAL_MACHINE\Software\Oracle\VirtualBox

Créez une clé REG_DWORD de nom VBoxSDS avec la valeur 1 et redémarrez Windows.

C'est terminé pour Windows.

2 - Sous Debian 12

2.1 - Fichier autostartvm.cfg

Créez le fichier /etc/default/virtualbox :

sudo nano /etc/default/virtualbox

et ajoutez le contenu suivant :

VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/autostartvm.cfg

Créez ensuite le fichier autostartvm.cfg :

sudo nano /etc/vbox/autostartvm.cfg

et entrez l'un des 2 contenus suivants :

default_policy = deny
nom-du-user = {
allow = true
startup_delay = 10
}
default_policy=deny
nom-du-user={allow=true startup_delau=10}

Nota: VirtualBox 7.1.x semble accepter uniquement la syntaxe du deuxième contenu.

Ajoutez l'utilisateur nom-du-user au groupe vboxusers :

sudo usermod -aG vboxusers nom-du-user

Affectez le dossier /etc/vbox/ au groupe vboxusers :

sudo chgrp vboxusers /etc/vbox

et autorisez le groupe à écrire dans le dossier :

sudo chmod g+w /etc/vbox

Redémarrez l'hôte Debian pour la prise en compte des permissions.

2.2 - Service vboxautostart-service

Virtualbox fournit dans le dossier /lib/systemd/system/ un service appelé vboxautostart-service qui se chargera de lancer les VM paramétrées en démarrage auto.

Commencez par autoriser le démarrage auto des VM :

VBoxManage setproperty autostartdbpath /etc/vbox

Puis stoppez les VM et listez les noms de celles-ci :

VBoxManage list vms

Enfin, accédez aux dossiers des VM et entrez pour chacune de celles-ci la Cde suivante :

VBoxManage modifyvm "nom-de-la-vm" --autostart-enabled on --defaultfrontend headless --autostart-delay 30

Ajoutez quelques secondes d'écart entre chaque autostart-delay.

Relancez le système, vérifiez le bon démarrage automatique des VM et l'ajout dans le dossier /etc/vbox/ du fichier nom-du-user.start.

C'est terminé pour Debian.

---------- Fin ----------

Laisser un commentaire