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/
Die Anweisung macht einen guten Eindruck! Aber wenn ich "sudo systemctl enable --now vboxautostart-service" ausführe, kommt Failed to enable unit: Unit file vboxautostart-service.service does not exist. Woran könnte das liegen?
Der Dienst ist vorhanden und sieht wie folgt aus:
systemctl status vboxautostart-service.service ● vboxautostart-service.service Loaded: loaded (/usr/lib/virtualbox/vboxautostart-service.sh; enabled; preset: disabled) Active: active (exited) since Mon 2024-05-13 11:40:53 CEST; 1 day 19h ago Process: 2796 ExecStart=/usr/lib/virtualbox/vboxautostart-service.sh start (code=exited, status=0/SUCCESS) CPU: 25ms
Mai 13 11:40:47 lib519.intern.ethz.ch systemd[1]: Starting vboxautostart-service.service... Mai 13 11:40:47 lib519.intern.ethz.ch vboxautostart-service.sh[2796]: vboxautostart-service.sh: Starting VirtualBox VMs configured for auto> Mai 13 11:40:47 lib519.intern.ethz.ch vboxautostart-service.sh[2801]: Starting VirtualBox VMs configured for autostart. Mai 13 11:40:47 lib519.intern.ethz.ch su[2812]: (to moelleli) root on none Mai 13 11:40:53 lib519.intern.ethz.ch systemd[1]: Started vboxautostart-service.service.
Warum das bei dir nicht geht, hängt mit deinem spezifischen System zusammen. Nutzt du zum Beispiel eine Distribution wie MX Linux, dann kommt dort gar kein systemd zum Einsatz und somit müsstest du dich für weitere Hilfe an den Support deiner Distro wenden.
Vielen Dank für diese großartige Anleitung! Eine perfekte Ergänzung zu der sehr knappen Ausführung im Handbuch (siehe https://docs.oracle.com/en/virtualization/virtualbox/6.0/admin/autostart.html).