VirtualBox VMs automatisch starten
Do, 25. Mai 2023, Lioh Möller
Zum automatischen Start von VMs beim Systemstart, stellt VirtualBox einen Dienst namens vboxautostart-service zur Verfügung.
Dieser kann in der Datei /etc/default/virtualbox aktiviert werden.
Die folgenden zwei Variablen können dort definiert werden:
VBOXAUTOSTART_DB - gibt den absoluten Pfad zum Autostart-Datenbankverzeichnis an, üblicherweise ist dies das Verzeichnis /etc/vbox.
VBOXAUTOSTART_CONFIG - definiert den Pfad zur Autostart-Konfiguration an.
In diesem Beispiel gehen wir von folgender Konfiguration aus:
sudo vim /etc/default/virtualbox
VBOXAUTOSTART_DB=/etc/vbox
VBOXAUTOSTART_CONFIG=/etc/vbox/autostart.cfg
Daraufhin kann die zuvor angegebene Autostart-Konfigurationsdatei erstellt werden:
sudo vim /etc/vbox/autostart.cfg
default_policy = deny
lioh = {
allow = true
startup_delay = 10
}
Der Benutzername (hier lioh) muss an die eigenen Gegebenheiten angepasst werden. Es handelt sich dabei um den Benutzer, unter dessen Kontext die VMs gestartet werden sollen.
default_policy - legt fest, ob der Autostart der virtuellen Maschine standardmässig erlaubt oder verweigert werden soll. Im obigen Beispiel wird ein automatischer Start von VMs allen Benutzern verweigert und nur dem Konto lioh ausdrücklich erlaubt.
startup_delay - ermöglicht die Angabe von Sekunden, um die der Start verzögert werden soll.
Der angegebene Benutzer sollte zur Gruppe vboxusers hinzugefügt werden:
sudo usermod -aG vboxusers lioh
Daraufhin können die Berechtigungen auf das Verzeichnis entsprechend angepasst werden:
sudo chgrp vboxusers /etc/vbox
sudo chmod 1775 /etc/vbox
Nach einer erneuten Anmeldung können die Einstellungen an den VMs vorgenommen werden. Zuvor sollte jedoch einmalig der Pfad zum Autostart-Datenbankverzeichnis konfiguriert werden:
VBoxManage setproperty autostartdbpath /etc/vbox/
VBoxManage modifyvm SpaceFun --autostart-enabled on
Wobei SpaceFun der Name der VM ist, die automatisch gestartet werden soll. Mit folgendem Befehl können alle aktiven virtuellen Maschinen aufgelistet werden:
vboxmanage list vms
Abschliessend kann der vboxautostart-service Dienst aktiviert und gestartet werden:
sudo systemctl enable --now vboxautostart-service
Deaktivieren lässt sich ein automatischer Start einer VM wie folgt:
vboxmanage modifyvm Fedora --autostart-enabled off
Hinweis: Sofern SELinux aktiv ist, muss folgende Policy erstellt werden:
#============= init_t ==============
allow init_t self:passwd rootok;
allow init_t su_exec_t:file { execute execute_no_trans map open read };
Quelle: https://mcgilldevtech.com/2020/04/auto-start-virtual-box-vms-on-linux/