Ich kann meine VM beim Start nicht zum Laufen bringen.
Ich habe die "Start-Anwendungen" und update-rc.d ohne Glück ausprobiert.
sudo update-rc.d startvms defaults 99 10
Dadurch wurden alle entsprechenden symbolischen Links für die verschiedenen Ausführungsebenen erstellt, aber die VM wird immer noch nicht gestartet.
Hier ist mein Startvms-Skript:
#!/bin/bash
### BEGIN INIT INFO
# Provides: startvms
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start my VMs at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
case "$1" in
start)
echo "Starting"
nohup VBoxHeadless --startvm "UbuntuServer" &
;;
stop)
echo "Stopping $DESC"
VBoxManage controlvm "UbuntuServer" poweroff
;;
restart|force-reload)
echo "Restarting $DESC"
VBoxManage controlvm "UbuntuServer" poweroff
nohup VBoxHeadless --startvm "UbuntuServer" &
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
Was mache ich falsch?
virtualbox
startup
Capdragon
quelle
quelle
VBoxManage startvm --type headless "UbuntuServer"
anstelle desVBoxHeadless
Befehls versuchen würden ?su -c 'VBoxHeadless --startvm <MACHINE>'
.Antworten:
DAS hat endlich geklappt!
1) Erstellen Sie die Startskriptdatei
in /etc/init.d -
sudo nano /etc/init.d/StartVM
.Kopieren Fügen Sie Folgendes in die Datei ein und ersetzen Sie "My VM Name" für Ihren VM-Namen:
2) Erteilen Sie dem Skript die ausführbare Berechtigung
mit
sudo chmod +x /etc/init.d/StartVM
.3) Das Skript soll beim Start ausgeführt werden.
Sagen Sie dem Skript, dass es als erstes heruntergefahren und als letztes gestartet werden soll.
sudo update-rc.d StartVM defaults 99 01
quelle
VBoxManage startvm --type headless
nicht besser?Zu Ihrer Information, dies funktioniert auf Opensuse ohne nohup.
quelle
Dies funktioniert einwandfrei mit Ubuntu Server 12.04 und VirtualBox 4.2.20.
Und
und
wie in einer vorherigen Antwort angegeben.
quelle
Da Sie erwähnen, dass VBoxHeadless einwandfrei funktioniert, wenn Sie es über die Befehlszeile eines Terminals eingeben , aber beim Starten über ein Init-Skript keine VM starten, wird nach einer Umgebungsvariablen gesucht, die beim Ausführen einer Shell definiert wird in Ihrem Terminal, aber undefiniert in der Init-Skript-Umgebung (die im Grunde genommen leer ist, mit Ausnahme der in der Kernel-Befehlszeile angegebenen Parameter).
Können Sie versuchen, die VBoxHeadless-Aufrufe im Skript durch diese zu ersetzen?
Hier sollten "Benutzername" und der Pfad des Basisverzeichnisses so geändert werden, dass sie mit denen des Benutzers übereinstimmen, den Sie zum Starten der VM verwenden.
Wenn das funktioniert, möchten Sie vielleicht su -l verwenden , um VBoxHeadless anstelle dieses env- Hacks auszuführen .
quelle
su -l
- das ist ein guter Punkt!In neueren Versionen von Virtualbox (ab 4.2.0) müssen Sie kein eigenes Skript erstellen, um eine VM automatisch zu starten. Es sind jedoch einige Konfigurationsschritte erforderlich. Siehe Abschnitt 9.24 des Virtualbox-Handbuchs " Starten virtueller Maschinen während des Systemstarts ".
Leider enthält das Handbuch nur eine Kurzanleitung und wurde seit Jahren nicht mehr aktualisiert. Ich habe diesen Beitrag in den Virtualbox-Foren mit einigen zusätzlichen Details gefunden.
Sie könnten einfach eine Zeile in rc.local einfügen, um Ihren Server zu starten. Wenn Sie dies jedoch auf "offizielle" Weise tun möchten, lesen Sie weiter.
Fügen Sie diese Zeilen zu / etc / default / virtualbox hinzu:
Bearbeiten Sie /etc/vbox/vboxautostart.cfg (in diesem Beispiel wird die Autostart-Berechtigung für alle Benutzer mit Ausnahme des Benutzers "Bob" verweigert):
Fügen Sie die Gruppe vboxusers zu / etc / vbox und Sticky Bit hinzu:
Fügen Sie alle Benutzer, die virtualbox verwenden, zur Gruppe "vboxusers" hinzu, z. B .:
Jeder Benutzer, der den Autostart für einzelne Computer aktivieren möchte, muss den Pfad zum Autostart-Datenbankverzeichnis wie folgt festlegen:
Benutzer können dann VMs so einstellen, dass sie automatisch gestartet werden, und konfigurieren, wie sie angehalten werden (z. B. Speichern, Herunterfahren), mit:
Das Obige funktionierte für mich mit Virtualbox 5, das aus dem virtualbox.org-Repository installiert wurde.
quelle
Möglicherweise möchten Sie auch den Port direkt festlegen, wenn Sie vrdp verwenden
quelle
Wow .. Ich sehe all diese Lösungen, die ein bisschen komplex erscheinen, aber dies ist mein dritter Laptop, auf dem ich einfach geschrieben habe:
VBoxHeadless -s "Ubuntu Server"
in meiner rc.local Datei im / etc / Verzeichnis und das hat ziemlich gut funktioniert. Führt die virtuelle Maschine beim Neustart automatisch aus.
quelle