VirtualBox VMs automatisch starten

  Lioh Möller   Lesezeit: 3 Minuten  🗪 3 Kommentare

VirtualBox VMs lassen sich mit einfachen Mitteln beim Systemstart automatisch starten.

virtualbox vms automatisch starten

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/

Tags

VirtualBox, Autostart, VM

thomas
Geschrieben von thomas am 23. Februar 2024 um 18:18

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?

Lioh Möller
Geschrieben von Lioh Möller am 15. Mai 2024 um 07:14

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.

Jochen
Geschrieben von Jochen am 18. September 2024 um 11:34

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).