Gastsystem bei Virtualbox automatisch starten

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 05.12.2009 22:38:50

Hallo,

Ich habe auf meinem Debiansystem Virtualbox laufen. Nun möchte ich, dass beim Rechnerstart, automatisch mehrere Gastsysteme gestartet werden. Dazu muss der Befehl :

VBoxHeadless --startvm Gastsystem

im Verzeichnis /usr/bin

ausgeführt werden.

Wie oder wo muss ich denn das eintragen?

Danielx
Beiträge: 6419
Registriert: 14.08.2003 17:52:23

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von Danielx » 06.12.2009 00:02:41

gopper0815 hat geschrieben:Wie oder wo muss ich denn das eintragen?
Evtl. mal mit /etc/rc.local probieren.

Gruß,
Daniel

Benutzeravatar
hikaru
Moderator
Beiträge: 13955
Registriert: 09.04.2008 12:48:59

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von hikaru » 06.12.2009 00:05:15

Eine einfache Möglichkeit wäre, den Befehl in /etc/rc.local einzutragen.

Edit:
Zweiter! ;-)

gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 06.12.2009 08:56:06

ok, ich versteh die Beschreibung jetzt nicht so ganz in der rc.local:

#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exit 0


mit exit 0 wird das Script wieder verlassen, d.h. es muss immer dringstehen, oder? Und welche execution bits sind hier gemeint?
ich hab jetzt einfach mal über exit 0 den Befehl:

/usr/bin/VBoxHeadless --starvm Gastmaschine

eingetragen, aber die wurde nicht gestartet

FitzeFatze
Beiträge: 834
Registriert: 06.07.2004 10:08:21

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von FitzeFatze » 06.12.2009 09:26:28

nimm dir am Besten irgendein anderes Script aus dem Verzeichnis und schreibe es um.
dann hast du schon ein Gerüst und brauchst im Prinzip nurnoch die Befehle zu ändern

gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 06.12.2009 09:42:21

leider steht da ausser der Erklärung und

exit 0

nichts drin

FitzeFatze
Beiträge: 834
Registriert: 06.07.2004 10:08:21

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von FitzeFatze » 06.12.2009 09:55:38

achso sorry. ich war jetzt gedanklich irgendwie in /etc/init.d.

was spräche da gegen?

gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 06.12.2009 10:05:01

in die init.d zu speichern? hm, das ist ja ein verzeichnis. dazu müsste ich dann eine Datei anlegen in der dieser Befehl drin steht? Aber da muss doch, so wie ich Linux kenne, bestimmt noch mehr Code rein, oder? Sorry, meine Linuxkenntnisse sind noch recht beschränkt.

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von Saxman » 06.12.2009 10:31:59

Ja, er meint daß du dir ein initscript bastelst und dir das dann in rc2 verlinkst um es beim booten zu starten.

Das script kann ungefähr so aussehen

Code: Alles auswählen

#!/bin/bash
# VBox Startscript 
# Debianforum edition

NAME=Gastsystem
USER=Benutzer
DAEMON=/usr/bin/VBoxHeadless
DAEMON2=/usr/bin/VBoxManage 
DAEMON3=/bin/su

case "$1" in
        start)
        /bin/echo "Starte $NAME"
        DAEMON3 $USER -c "DAEMON -s $NAME &"
        /bin/echo -e
        ;;

        stop)
        /bin/echo "Beende $NAME"
        DAEMON3 $USER -c "DAEMON2 controlvm $NAME acpipowerbutton"
        ;;       
        *)
        /bin/echo "Usage: /etc/init.d/$NAME (start|stop)"
        ;;
esac

exit 0
Ich hab das jetzt nicht getestet, sollte aber so in der Art funktionieren.
Man könnte das aber noch ausbauen, oder beim beenden der Virtuellen Maschine auf poweroff setzen oder was weiß Ich noch alles

/Edit

Ich glaube als root sollte man das nicht starten, deswegen hab Ich das Script nochmal angepasst.
Der Benutzer und der Name der virtuellen Maschine müssen je nach Bedarf angepasst werden.
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 06.12.2009 11:23:25

hm, ich hab den Code jetzt folgendermaßen geschrieben und in die Datei vbox in init.d abgespeichert. Den Part mit stop hab ich weggelassen, da die vituelle Maschine über cron automatisch um 00.00 runtergefahren werden.

Anschließend hab ich einen Link auf die Datei in rc2.d gesetzt. Allerdings startet die VM nicht.

Code: Alles auswählen

#!/bin/bash
# VBox Startscript

NAME=Gastsystem
DAEMON=/usr/bin/VBoxHeadless
DAEMON2= /usr/bin/VBoxManage

case "$1" in
        start)
        /bin/echo "--startvm $NAME"
        DAEMON -s $NAME &
        /bin/echo -e
        ;;

      
esac

exit 0

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von Saxman » 06.12.2009 11:29:06

Ich hab das Script oben noch einmal angepasst und von einem freundlichen Helfer testen lassen und es tut. (Danke c0re :) )
Wo hängt es denn bei dir?
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

Benutzeravatar
hikaru
Moderator
Beiträge: 13955
Registriert: 09.04.2008 12:48:59

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von hikaru » 06.12.2009 11:51:13

Ich denke das Problem ist ein Missverständnis dessen, wofür VBoxHeadless da ist. "Headless" bedeutet nämlich soviel wie "ohne GUI starten". Wenn man dann als einziges Indiz für eine laufende VM nach einem VM-Fenster sucht wird man keines finden. Die VM läuft aber.

Was du suchst ist wohl eher:

Code: Alles auswählen

VBoxManage startvm [Gastsystem]
[Gastsystem] ist hierbei der Name den du der VM gegeben hast.

gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 06.12.2009 12:09:05

hm, ich hab nach dem start des hosts versucht via ssh auf das gastsystem zuzugreifen, was aber nicht geklappt hat. (auf dem Gastsystem läuft auch ein Debian). Wenn die Maschine laufen würde, müsste ich aber doch zugreifen können.

Ich hab das Script jetzt testweise mal abgeändert mit den VBoxManage-Parametern, aber da ist das gleiche Resultat: Die Gastmaschine startet nicht beim Start des Hostsystems

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von Saxman » 06.12.2009 15:25:19

Du musst wie schon oben beschrieben das script anpassen und zwar folgene beiden Zeilen

Code: Alles auswählen

NAME=Gastsystem
USER=Benutzer
Das script nach /etc./init.d/ kopieren und mit

Code: Alles auswählen

chmod +x scriptname 
ausführbar machen.
Dannach noch in den richtigen runlevel verlinken. z.B mit

Code: Alles auswählen

update-rc.d scriptname start 99 2 3 4 5 . stop 99 0 1 6 .
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 06.12.2009 16:28:06

so, ich hab das script jetzt wieder so von dir übernommen und nach deinen Angaben unten ausführbar gemacht.

mir ist der folgenden Code noch unklar:

Code: Alles auswählen

case "$1" in
        start)
        /bin/echo "Starte $NAME"
        DAEMON3 $USER -c "DAEMON -s $NAME &"
        /bin/echo -e
        ;;
Überhalb diese Codeschnipsels werden die Variablen gesetzt. soweit klar.

Aber was passiert hier, hier wird sozusagen automatisch eine Art Benutzereingabe generiert die folgendes aussagt:

/bin/VBoxHeadless Starte Gastsystem

Hab ich das soweit richtig interpretiert?

Aber aber auch wenn ich die Variablen anpassen, startet das System nicht bei mir.

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von Saxman » 06.12.2009 18:06:45

Der für dich interessante Teil ist

Code: Alles auswählen

 DAEMON3 $USER -c "DAEMON -s $NAME &"
$USER ist eben der oben definierte user als der die virtuelle Maschine ausgeführt wird und $NAME eben der Name der virtuellen Maschine.

Ausgeschrieben in etwa so

Code: Alles auswählen

/bin/su gopper0815 -c "/usr/bin/VBoxHeadless -s DeineVirtuelleDebianMaschine &"
starte das script mal mit

Code: Alles auswählen

/etc/init.d/scriptname start
Dann weißt du ob es überhaupt läuft und du nicht schon beim Anlegen des Scriptes einen Fehler gemacht hast.
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 06.12.2009 18:26:11

Komisch dann kommt

command not found.

Ich hab das Script jetzt so:

Code: Alles auswählen

#!/bin/bash
#VBox Startscript
#Debianforum version

NAME=debian-webserver
USER= mike
DAEMON=/usr/bin/VBoxHeadless
DAEMON2=/usr/bin/VBoxManage
DAEMON3=/bin/su

case "$1" in
     start)
     /bin/echo "Starte $NAME"
     DAEMON3 $USER -c "DAEMON -s $NAME &"
    /bin/echo -e
    ;;

    stop)
    /bin/echo "Beende $NAME"
   DAEMON3 $USER -c "DAEMON2 contrlvm $NAME acipowerbutton"
    ;;
   /bin/echo "Usage; /etc/init.d/$NAME (start|stop)"
   ;;

esac

exit 0


Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von Saxman » 06.12.2009 18:36:32

Code: Alles auswählen

/bin/su mike -c "/usr/bin/VBoxHeadless -s debian-webserver &"
Funktioniert dieser Aufruf?

Und check mal die Pfade bei dir

Code: Alles auswählen

which VBoxHeadless VBoxManage su
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 06.12.2009 18:45:43

wenn ich den ersten Befehl ausführe, startet das VirtualBox Interface und es folgt die Meldung :

Listening on Port 3389

und wartet auf Eingabe

dann kann ich mich auch via ssh anmelden und drauf arbeiten.

beim zweiten Befehl kommt:

/usr/bin/VBoxHeadless
/usr/bin/VBoxManage
/bin/su

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von Saxman » 06.12.2009 18:48:31

ist das script ausführbar?

Code: Alles auswählen

ls -al /etc/init.d/debian-webserver
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 06.12.2009 18:53:01

Du meinst das script welches du oben gepostet hast? Das hast bei mir vbox.

Wenn ich

Code: Alles auswählen

ls -al /etc/init.d/debian-webserver
ausführe,

kommt

-rwxr-xr-x 1 root root 414 6.Dez 16.21 /etc/init.d/vbox

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von Saxman » 06.12.2009 20:10:33

Benenne das Script doch mal Testweise in debian-webserver um und versuch dann nochmal.

Code: Alles auswählen

mv /etc/init.d/vbox /etc/init.d/debian-webserver
Wäre zwar seltsam aber einen Versuch ist es Wert.
Ansonsten müsste Ich hier mal vbox installieren um das nachvollziehen zu können.
ich mach das alles quasi "Blind". Das schaffe Ich heute dann aber nicht mehr.
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 06.12.2009 20:19:48

So hab das mal jetzt umbenannt und den Host neu gestartet, aber das Gastsystem hat nicht gestartet.

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von Saxman » 06.12.2009 20:21:10

Versuch das Script erst mal direkt zu starten.
Die rc links lauten ja alle auf den falschen Namen wenn du die nicht angepasst hast.
Das kann nicht funktionieren.
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

gopper0815
Beiträge: 25
Registriert: 25.10.2009 13:13:08

Re: Gastsystem bei Virtualbox automatisch starten

Beitrag von gopper0815 » 06.12.2009 20:26:02

sodala, wenn ich das manuell starte kommt folgende Antwort:

Code: Alles auswählen

-startvm debian-webserver
/etc/init.d/debian-webserver: line 14: DAEMON3: command not found
aber hochfahren tut die Kisten nicht, wobei DAEMON3 doch der Befehl zum runterfahren ist, oder?

Antworten