Debian Chroot QEMU Startscript

Status
Für weitere Antworten geschlossen.

rauppe31

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
2.734
Punkte für Reaktionen
0
Punkte
82
Hallo

Ich habe mir nun einen Debian-Chroot und QEMU installiert.
Der Chroot befindet sich unter /volume1/debian/debian/
QEMU starte ich mit dem Befehl (im Chroot):
qemu -hda ubuntu.img -cdrom /ubuntu/ubuntu.iso -boot d -vnc :1

Ich habe versucht, ein Startscript dazu zu erstellen, bringe es aber nicht hin. Könnt ihr mir da ein bisschen unter die Arme greiffen?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
was hast du denn bis jetzt versucht und v.a. wo hast du probiert das Startscript abzulegen?
 

rauppe31

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
2.734
Punkte für Reaktionen
0
Punkte
82
Mein momentanes Startscript:

#!/bin/sh

if [ "$*" = 'start' ]*; then
mount -t proc none /volume1/debian/debian/proc
chroot /volume1/debian/debian qemu -hda ubuntu.img -cdrom /ubuntu/ubuntu.iso -boot d -vnc :1
else
exit
fi



Es befindet sich unter /opt/etc/init.d/
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Chmod = x?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
was passiert wenn du das Script manuell aufrufst? Musst du es mittels sh /pfad/script start aufrufen damit er läuft oder geht es auch so /pfad/script start
Wenn nur ersteres geht dann musst du das Script mittels chmod +x /pfad/script noch ausführbar machen.
Zudem du musst unbedingt im stop alle Dienste (hier qemu) stoppen und alle mounts für den chroot wieder auflösen. sonst bleibt dir die DS mit (ziemlicher) Sicherheit beim Shutdown hängen. Schau erstmal dass der start geht, beim shutdown schauen wir nachher. Der ist etwas tricky
 

rauppe31

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
2.734
Punkte für Reaktionen
0
Punkte
82
Jetzt gehts, aber es kommt eine Fehlermeldung:
sh: missing ]
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ups habe ich übersehen das geht ned
Code:
[COLOR=#333333]if [ "$*" = 'start' ]*; then
#sondern
if [ "$*" = 'start' ] ; then
wieso hinten noch einen * ?[/COLOR]
 

rauppe31

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
2.734
Punkte für Reaktionen
0
Punkte
82
Da kommt immernoch die gleiche Meldung.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
dann poste doch nochmals das ganze aktuelle Script. Eigentlich müsste es so gehen, der Stern hinterdran war definitiv falsch. Gerade wenn du immer denselben Parameter prüfen willst bietet sich eigentlich case an
Code:
#!/bin/sh

case "$*" in
 'start')
  #Code fuer Start
 ;;
 'stop')
  #Code fuer Stop
 ;;
 *)
  echo "Usage $0 start|stop"
 ;;
esac
 

rauppe31

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
2.734
Punkte für Reaktionen
0
Punkte
82
Ich hab den Fehler num gefunden.

Also, jetzt zum Stopscript:)
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
das Problem ist nicht der Stopteil des Scriptes an sich, sondern dessen zuverlässigen Aufruf beim Shutdown. Wenn Synology nicht grundsätzlich etwas geändert hat mit aktuellen Firmwaren, dann ist das einzige Script das beim Shutdown mit stop aufgerufen wird /usr/syno/etc.defaults/rc.d/SXXfindhost.sh So zumindest war es als ich damals mit dem Debian chroot rumgespielt habe (weiss aber nicht mehr welche Firmware Version es war)
Du solltest also den stop Aufruf für dein opt-Script im Stopteil von SXXfindhost.sh platzieren, damit es zuverlässig funzt. Im Stopteil deines Scriptes musst du erst alle laufenden Sachen des chroot stoppen, bei dir also wohl qemu und dann den mount auflösen
 

rauppe31

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
2.734
Punkte für Reaktionen
0
Punkte
82
Das Problem ist, ich weiss nicht, wie ich QEMU stoppe.
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
killall qemu
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
wenn alle vituellen Systeme gestoppt sind kannst du wahrscheinlich einfach qemu killen. Oder du guckst auf der Konsole mal mit qemu --help was qemu an Parametern kennt. villeicht ist ja ein stop mitdabei.
Wenn du einen Prozess killen willst geht das entweder über den Namen des Prozesses oder über die PID (ProccessID) des Prozesses
Code:
#Namen
killall qemu
#PID
kill -9 $(pidof qemu)
bevor du aber den Prozess killst solltest du gucken ob es nicht einen stop beim Kommando selber gibt
 

rauppe31

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
2.734
Punkte für Reaktionen
0
Punkte
82
Ich hab jetzt noch ein Problem beim Startscript. Es sieht jetzt so aus:
Rich (BBCode):
#!/bin/sh

if [ "$*" = 'start' ] ; then
mount -t proc none /volume1/debian/debian/proc
chroot /volume1/debian/debian qemu -hda ubuntu.img -cdrom /ubuntu/ubuntu.iso -boot d -vnc :0
fi
Wenn ich es aufruffe, gibt es auch keine Fehlermeldung, aber QEMU wird nicht gestartet. Das sehe ich an der CPU auslastung.
Was könnte noch falsch sein?
 

ubuntulinux

Benutzer
Mitglied seit
23. Jan 2010
Beiträge
2.063
Punkte für Reaktionen
0
Punkte
82
Schon belegter VNC-Port, nicht existierendes CD. Andere Frage: Warum willst du bei jedem Start von QEMU von der CD booten?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
geh in den chroot rein und rufe den Start für qemu manuell auf so wie er im Script steht. von aussen wirst du kaum jemals eine Fehlermeldung sehen, denn der Start wird ja im chroot ausgeführt. Also landen Fehler auch auf stderr vom chroot und nicht der Firmware. Das einzige was du ausserhalb des chroots von einem Fehler merken könntest wäre es wenn der Rückgabewert deines chroot Kommandos ungleich 0 ist
 

rauppe31

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
2.734
Punkte für Reaktionen
0
Punkte
82
geh in den chroot rein und rufe den Start für qemu manuell auf so wie er im Script steht. von aussen wirst du kaum jemals eine Fehlermeldung sehen, denn der Start wird ja im chroot ausgeführt. Also landen Fehler auch auf stderr vom chroot und nicht der Firmware. Das einzige was du ausserhalb des chroots von einem Fehler merken könntest wäre es wenn der Rückgabewert deines chroot Kommandos ungleich 0 ist

Wenn ich qemu im Chroot starte, funktioniert es.
 

rauppe31

Benutzer
Mitglied seit
06. Jun 2011
Beiträge
2.734
Punkte für Reaktionen
0
Punkte
82
Schon belegter VNC-Port, nicht existierendes CD. Andere Frage: Warum willst du bei jedem Start von QEMU von der CD booten?

Port ist noch nicht belegt und das ISO ist vorhanden. Das booten von CD werde ich dann rausnehmen, wenn es auf dem Image installiert ist.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
chroot /volume1/debian/debian qemu -hda ubuntu.img -cdrom /ubuntu/ubuntu.iso -boot d -vnc :0

sicher dass du zweimal debian im Pfad hast?
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat 

 
 
  AdBlocker gefunden!

Du bist nicht hier, um Support für Adblocker zu erhalten. Dein Adblocker funktioniert bereits ;-)

Klar machen Adblocker einen guten Job, aber sie blockieren auch nützliche Funktionen.

Das Forum wird mit hohem technischen, zeitlichen und finanziellen Aufwand kostenfrei zur Verfügung gestellt. Wir zeigen keine offensive Werbung und bemühen uns um eine dezente Integration.

Bitte unterstütze dieses Forum, in dem du deinen Adblocker für diese Seite deaktivierst.

Du kannst uns auch über unseren Kaffeautomat einen Kaffe ausgeben oder ein PUR Abo abschließen und das Forum so werbefrei nutzen.

Vielen Dank für Deine Unterstützung!