mount Skript Problem

Status
Für weitere Antworten geschlossen.

Hannibal7777

Benutzer
Mitglied seit
24. Jan 2010
Beiträge
180
Punkte für Reaktionen
0
Punkte
0
Hallo,

habe das bekannte Bootproblem.
Habe folgendes Skript erstellt, nach der Vorlage von thedude
Rich (BBCode):
#!bin/sh
# mount/bind some folders

case $1 in
start)
      mount -o bind /volume1 /volume1/N
      mount -o bind /usr /volume1/test/usr
      echo `date "+%d.%m.%Y %H:%M:%S"` "Start" >> /volume1/mount.log
      ;;
stop)
      umount /volume1/N
      umount /volume1/test/usr
       
      echo `date "+%d.%m.%Y %H:%M:%S"` "Stop" >> /volume1/mount.log  
      ;;
*)
      echo "Usages: $0 [start|stop]"
      ;;
esac

Die Datei habe ich über vi erstellt und über die Konsole lässt es sich auch starten bzw. stoppen.
Rich (BBCode):
DS210j> mount
/dev/md0 on / type ext3 (rw,data=ordered)
/tmp on /tmp type tmpfs (rw)
/sys on /sys type sysfs (rw)
/proc/bus/usb on /proc/bus/usb type usbfs (rw)
/dev/md2 on /volume1 type ext3 (usrquota,grpquota)
/volume1/@optware on /opt type --bind (rw)
DS210j> sh S99mount.sh start
DS210j> mount
/dev/md0 on / type ext3 (rw,data=ordered)
/tmp on /tmp type tmpfs (rw)
/sys on /sys type sysfs (rw)
/proc/bus/usb on /proc/bus/usb type usbfs (rw)
/dev/md2 on /volume1 type ext3 (usrquota,grpquota)
/volume1/@optware on /opt type --bind (rw)
/volume1 on /volume1/N type --bind (rw)
/usr on /volume1/test/usr type --bind (rw)
DS210j> sh S99mount.sh stop
DS210j> mount
/dev/md0 on / type ext3 (rw,data=ordered)
/tmp on /tmp type tmpfs (rw)
/sys on /sys type sysfs (rw)
/proc/bus/usb on /proc/bus/usb type usbfs (rw)
/dev/md2 on /volume1 type ext3 (usrquota,grpquota)
/volume1/@optware on /opt type --bind (rw)

Die Datei liegt in Verzeichnis /usr/syno/etc.defaults/rc.d, mit diesen Rechten
Rich (BBCode):
-rwxr-xr-x    1 root     root         1159 Feb 14 22:47 S99mount.sh
Hatte das Skript aber auch schon unter /usr/local/etc/rc.d gespeichert und es lief genauso wenig.

Beim hochfahren wird die Datei auch immer brav ausgeführt aber eben beim ausschalten passiert anscheinend der umount nicht, im log steht anschließend auch
nur, dass das Skript gestartet wurden aber nicht gestoppt

Was zum quotacheck/filecheck führt.
Rich (BBCode):
Ds210j> dmesg | grep recover
EXT3-fs: recovery complete.

Weis nicht mehr weiter, da ich auch garnicht weiß welche Ordner/Skripte beim Starten/Herunterfahren aufgeführt werden.

Hannibal
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
1. Zeile deines Codes: Probier mal den korrekten Pfad zur Shell
 

thedude

Benutzer
Mitglied seit
30. Nov 2009
Beiträge
2.244
Punkte für Reaktionen
2
Punkte
84
In dem Script ist am Anfang ein Fehler! Ersetze:

Rich (BBCode):
#!bin/sh

durch

Rich (BBCode):
#!/bin/sh

Da fehlt quasi ein "/"....

gruss
dude
 

Hannibal7777

Benutzer
Mitglied seit
24. Jan 2010
Beiträge
180
Punkte für Reaktionen
0
Punkte
0
Ihr seit zu schnell!!:D
Muss doch ein Problem geben das nicht schon nach 2 Beiträgen gelöst ist.
Aber trotzdem noch eine kleine Frage,
was bewirkt #!/bin/sh am Anfang genau und warum wird diese Zeile nicht durch # auskommentiert?
Habe soetwas ähnliches(weis den Beitrag leider nicht mehr) schon mal hier gelesen, aber da wurde demjenigen dazu geraten den slash weg zulassen.
Trotzem schon mal danke, läuft jetzt tadellos.

Hannibal
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
#!/path/to/shell gibt die zu verwendende Shell an. Afaik gilt das aber nur als erste Zeile des Codes. Danach ist #! ein normaler Kommentar
 

thedude

Benutzer
Mitglied seit
30. Nov 2009
Beiträge
2.244
Punkte für Reaktionen
2
Punkte
84
#! ist das sog. Shebang.

Kurzerklärung: "Shebang (auch Magic Line) bezeichnet bei unixoiden Betriebssystemen die Zeichenkombination #! am Anfang eines Skript-Programms. Die Markierung führt dazu, dass das folgende Kommando mitsamt aller angegebenen Argumente beim Aufruf des Programms ausgeführt wird. Der Dateiname wird dann als weiteres Argument übergeben."

Heisst "#!/bin/sh" in der Datei mein.script bewirkt eigentlich ein "/bin/sh mein.script". Rest siehe wikipedia link oben. :)

gruss
dude
 

Hannibal7777

Benutzer
Mitglied seit
24. Jan 2010
Beiträge
180
Punkte für Reaktionen
0
Punkte
0
So hatte nun nach einiger Zeit in der es funktioniert hatte wieder das Problem, dass die mounts sich nicht ausgeklinken.
Konnte Sie auch nicht mehr in der Konsole ausklinken.
Rich (BBCode):
DS210j> umount /volume1/N
umount: Couldn't umount /volume1/N: Inappropriate ioctl for device
Aber anscheinend macht ja mount/umount öfters Probleme, an was kann das liegen?
Habe jetzt den umount mit
Rich (BBCode):
DS210j> umount -l /volume1/N
erzwungen.
Was bewirkt -l genau und kann dadurch etwas unerwartetes(Schaden?) passieren?

Hannibal
 
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