Ich habe viele Virtual Box-Maschinen in meinem Ubuntu 12.04, jedes Mal, wenn ich herunterfahre oder neu starte, muss ich sie einzeln starten.
Ich möchte eine Hilfe beim Schreiben eines Skripts für den automatischen Autostart der VBox-Maschinen beim Booten.
boot
scripts
virtualbox
autostart
Maythux
quelle
quelle
Antworten:
Sie können den VirtualBox-Autostartdienst verwenden. Ein gutes Tutorial, das beschreibt, wie das geht, finden Sie im Blog "Life of a Geek Admin" .
Die folgenden Schritte werden aus dem verlinkten Blog-Beitrag angepasst:
Zuerst müssen Sie die Datei erstellen
/etc/default/virtualbox
und einige Variablen hinzufügen.VBOXAUTOSTART_DB, der einen absoluten Pfad zum Autostart-Datenbankverzeichnis enthält, und
VBOXAUTOSTART_CONFIG, der den Speicherort der Autostart-Konfigurationseinstellungen enthält. Die Datei sollte ungefähr so aussehen:
Jetzt müssen wir die
/etc/vbox/vbox.cfg
Datei erstellen und hinzufügenHinweis: Wenn der Dateiname
vbox.cfg
oben nicht funktioniert, versuchen Sie ihn zu benennenautostart.cfg
.Wenn Sie der einzige Benutzer sind, können Sie die Zeile einfach
default_policy = allow
zurvbox.cfg
Datei hinzufügen .Legen Sie die Berechtigungen für das Verzeichnis für die vboxuser-Gruppe fest und stellen Sie sicher, dass Benutzer sowohl in das Verzeichnis als auch in das Sticky-Bit schreiben können.
Fügen Sie jeden Benutzer der
vboxusers
Gruppe hinzu.(durch
USERNAME
den Benutzernamen ersetzen )HINWEIS : Wenn Sie die Gruppenberechtigungen für den aktuellen Benutzer geändert haben, melden Sie sich ab und wieder an, um die Berechtigungen zu aktualisieren. (credit @ kR105)
Jeder Benutzer, der den Autostart für einzelne Computer aktivieren möchte, muss den Pfad zum Autostart-Datenbankverzeichnis mit festlegen
und aktivieren Sie den Autostart für eine einzelne VM mit
Dadurch wird eine
myuserid.start
Datei im/etc/vbox
Verzeichnis erstelltStarten Sie nun den vboxautostart-Dienst neu, um die Änderungen einzulesen.
Starten Sie Ihr System neu und Ihre VM sollte starten
quelle
Ich hatte ähnliche unglückliche Zwischenfälle, als ich diese Operation an der Vanilla LTS versuchte.
In dieser Version wurde die Schlüsseldatei /etc/init.d/vboxautostart-service nicht installiert.
Soweit ich weiß, wurden alle VitualBoxen und Anforderungen von apt-get eingegeben, daher kann ich nicht sagen, warum die Datei 'vboxautostart-service' nicht ebenfalls bereitgestellt wurde. Aber um darüber hinwegzukommen, hier ist mein Update zu kdmurrays Post.
1) / etc / default / virtualbox Datei existierte für mich. Also muss man vars hinzufügen:
2) Es muss /etc/vbox/autostart.cfg wie von OP angegeben erstellt werden.
6b) Sie müssen ein vboxautostart-service-Skript abrufen und es ausführbar machen.
6c) Alarmiere den rc.d Controller, aber ich habe 24 als Startzeit verwendet. Putting nur 20 und es hat nicht angefangen. Vielleicht lief es noch bevor virtualbox funktionierte.
Nach dem Neustart wurde die VM korrekt gestartet.
quelle
vboxdrv
in den# Required Start
/# Required Stop
Zeilen durch ersetzenvirtualbox
. Es scheint, dass sie den Dienst umbenannt haben, sodass das Betriebssystem die Start- / Stopp-Prioritäten nicht richtig erkennen kann. Ich denke, Sie brauchen Schritt 6c nicht, wenn Sie diese Zeilen ersetzt haben.Sie können
vboxmanage startvm "my virtual machine" --type=headless|gui|sdl
(eine davon) verwenden. Verwenden Sie "headless", wenn es sich um Server handelt, zu denen Sie eine andere Verbindung als über die GUI herstellen.Um diese Befehle während des Startvorgangs zum richtigen Zeitpunkt auszuführen, sollten Sie Upstart lesen.
quelle
Nach vielen unglücklichen Stunden, die versuchten, die Prozeduren von kdmurray oben zur Arbeit zu bringen, fand ich schließlich ohne Erfolg eine Methode, die einfach funktionierte.
Zuerst wurde mein Linux-Host (Mint 17) beim Booten so eingerichtet, dass er sich automatisch bei meinem Hauptkonto anmeldet.
Zweitens habe ich die Funktionen in VirtualBox GUI (v4.3.12) verwendet, um eine Verknüpfung für jede virtuelle Maschine auf dem Desktop zu erstellen. {Klicken Sie mit der rechten Maustaste auf die VM in der linken Spalte und wählen Sie "Verknüpfung auf dem Desktop erstellen".}
Als Nächstes: Ich hatte bereits festgestellt, dass das Aufrufen von Menü-> Kontrollzentrum -> Startanwendungen -> Hinzufügen und Hinzufügen der Desktop-Verknüpfungen Dateien ergab, die nicht funktionierten. Aus einer anderen Antwort auf dieser Seite ging hervor, dass der Speicherort der Starts / home ist /USERNAME/.config/autostart, also habe ich mit der rechten Maustaste auf die Verknüpfungen der Desktop-VM geklickt und sie dann in diesen Ordner eingefügt und die früheren Mistdateien überschrieben. Jetzt haben sie die 'hübschen' VirtualBox-Icons entwickelt.
Und beim Neustart des Host-Computers wurden die 3 VMs automatisch gestartet.
:-)
Bill Williams
PS: Leider fehlt noch etwas, da die virtuellen Maschinen häufig nicht beim Booten gestartet werden. Stattdessen wird ein Fehlerdialogfeld generiert, in dem angegeben wird, dass sie gesperrt sind, auch wenn ich sie angewiesen habe, herunterzufahren, bevor der Host neu gestartet wurde.
quelle
Zusätzlich zu der guten Beschreibung des obigen vboxautostart-Dienstes können Sie dies tun
um den Gast beim Herunterfahren automatisch zu stoppen. Für Ubuntu 14.04 musste ich dem Abschnitt vboxautostart-service stop einen sleep 30 hinzufügen , damit dieser wartet, bis der Gast vollständig gespeichert wurde.
quelle
Ich habe einen einfacheren Weg unter Ubuntu 16.04 gefunden, auf dem VBox 5.1.34 läuft.
Klicken Sie in VBox mit der rechten Maustaste auf die aktive oder inaktive VM in der Liste und wählen Sie "Verknüpfung auf dem Desktop erstellen". Sobald Sie das Symbol auf Ihrem Desktop sehen, öffnen Sie es mit einem beliebigen Tool, mit dem Sie den zugrunde liegenden Befehl VBox erstellt sehen können (auf my System, ich rechtsklicke und wähle "Eigenschaften") Kopieren Sie diese in die Zwischenablage.
Öffnen Sie das Programm, um "Startanwendungen" zu aktualisieren und eine neue Anwendung zu erstellen, die beim Start gestartet wird. Fügen Sie dazu den Befehl ein, den Sie von der von VirtualBox erstellten Desktop-Verknüpfung kopiert haben.
quelle
Um eine VM beim Anmelden an unserer Sitzung zu starten, möchten wir möglicherweise eine .desktop-Datei definieren:
Wenn diese Datei in unser Autostart-Verzeichnis kopiert oder verschoben wurde, wird sie ausgeführt, nachdem wir uns angemeldet haben:
Das Ausführen von Virtual Box im Benutzerbereich kann helfen, unerwünschte Nebeneffekte beim Starten während des Startvorgangs zu vermeiden (z. B. die VM wird als Root ausgeführt, die Startzeit verlängert sich erheblich usw.).
quelle
Dies kann über die VirtualBox Command Line Management Interface erfolgen. Führen Sie einfach das folgende Skript beim Start aus.
Es gibt ein nettes Tutorial für mehr Infos.
quelle
Addon zu @kdmurray Antwort.
Wenn Sie eine Fehlermeldung erhalten über:
Um dies zu lösen, musste ich manuell die Dateien "username" .start und "username" .stop erstellen mit:
Und ändern Sie den Besitzer mit:
Wiederholung:
dann starte den Dienst neu:
Überprüfen Sie, ob alles in Ordnung ist mit:
und Sie sollten "VBox ..." in einer Liste sehen, wenn die virtuelle Maschine läuft
quelle
Sie können sich auch den hier beschriebenen Gnome Session Manager besorgen. Gnome Session Manager Es befindet sich im Software-Center oder Sie können einfach zu einem Terminal gehen und etwas eingeben
sudo apt-get install gnome-session-common
Als nächstes können Sie ein kleines Skript erstellen, das ausgeführt werden soll, und den Gnome-Sitzungsmanager verwenden, um es zu starten. Hier ist ein kleines Beispielskript, um Sie zum Laufen zu bringen ...
quelle
So starte ich meinen Centos (Name meiner virtuellen Maschine), wenn meine Host-Maschine neu startet. Ich benutze Crontab für diesen Job. Hier ist mein Crontab-Eintrag:
quelle
Für Ubuntu Server 16.04.1 LTS löste ich das folgendermaßen:
Aktivieren Sie zuerst den rc-local.service
Fügen Sie die folgende Zeile hinzu
/etc/rc.local
Beachten Sie, dass der Benutzer virtual_box_user derjenige ist, der die virtuelle Maschine (die Sie starten möchten) sehen kann, die den Befehl ausführt:
Beispiel:
Die modifizierte
/etc/rc.local
sollte so aussehenWenn Sie nicht den richtigen Besitzer von virtualbox auswählen, sollte der Fehler bei der Eingabe des Befehls auftreten:
Ich hoffe das kann helfen
quelle
1 - Erstellen Sie eine Datei:
Fügen Sie dies ein:
/bin/su validuser -c "/usr/bin/vboxmanage startvm MACHINENAME2--type headless" /bin/sleep 1
2 - Machen Sie die Datei vm-start ausführbar:
3 - Bearbeiten Sie rc.local
Füge das hinzu:
4 - Neustart.
quelle