Skript für immer gleiche Mountpoints (auch nach Verlust des Mounts)

henfri

Mitglied
Mitglied seit
21 Sep 2005
Beiträge
441
Punkte für Reaktionen
2
Punkte
18
Hallo,

wie viele habe ich das Problem, dass die FB manchmal die Verbindung zur USB-Platte verliert. Danach ist dann z.B. uStor05 unter uStor15 zu finden.
Das ist natürlich nicht toll, wenn man die Daten von uStor05 als Samba/NFS/FTP bereitstellen möchte.

Deshalb nutze ich folgendes Autrorun.sh Skript auf jeder Partition:
Code:
#!/bin/sh
log=log_automount.txt
date > $log
mount >> $log
echo --------------found---------------- >> $log
#folgende Zeilen anpassen (die 5 ggf ersetzen):
mount |grep 5 | tail -n1 >> $log
mountpoint=`mount |grep -E 'uStor05|uStor15' | tail -n1 | cut -d " " -f 3`

echo mountpoint is $mountpoint >> $log
ln -s -f $mountpoint

Damit wird diese Partition immer als ext_5 bereitgestellt.

Das Skript könnte man sicher noch verallgemeinern, so dass die '5' nur einmal angepasst werden muss. Soviele Partitionen hab ich aber garnicht, deshalb war es mir die Arbeit nicht wert ;-)

Das ganze läuft jetzt schon eine ganze weile zuverlässig hier.

Gruß,
Hendrik
 
Hey Henfri,

hübsches Script, ich habe mir mal vor langer langer Zeit mal etwas allgemeinere Variante gebaut.

Code:
#!/bin/sh
pfad=$(echo "$0" | sed "s/\/autorun.sh//")
mount | grep "/var/media/ftp/disk" >> /dev/null
mounted=$?
if [ "$mounted" ]
	then umount "/var/media/ftp/disk/"
fi
mkdir /var/media/ftp/disk/
echo "disk  -   $(date)" >> /tmp/mounttimes
mount -o bind $pfad /var/media/ftp/disk/

Das ganze kann man natürlich auch über links machen, wie du
Code:
#!/bin/sh
pfad=$(echo "$0" | sed "s/\/autorun.sh//")
echo "disk  -   $(date)" >> /tmp/mounttimes
ln -s -f $pfad /var/media/ftp/disk/

Es muss nur für jede Partition der Name (bei mir disk) angepasst werden. Habe das script erfolgreich seit mit mehreren Platten gleichzeitig im Einsatz.

Bei dem mount-script wird zwar ein mount -o bind benutzt, aber die Platte direkt unter dem Divice gemounted, nicht über den bind.

Matze
 
Darf ich kurz fragen:

Ich muss dafür beim freetz erstellen das Autorun bei den packeten installieren und dann einfach eine datei namens "autorun.sh" ins rootverzeichnis des sticks, der platte legen?

hmm. klappt irgendwie nicht. muss ich autorun erst irgendwo aktivieren?
 
Zuletzt bearbeitet:
Ist die Datei ausführbar ("x") ?
 
ja.
hab sie dann sogar mal auf 777 gestellt.

aber ich bin nicht sicher, ob das skirpt stimmt.
müsste nicht der stick von seinem mountpunkt entfernt werden? sprich müsste nicht irgendwo ein umount uStorxy stehen?

hatte matze's erstes benutzt und ALLE "disk" darin ersetzt mit dem späteren namen.
 
Hast du das script mal per hand aufgerufen? (mit kompletten pfad)

hast du automount unter patches aktiviert?
 
hatte es mal von hand aufgerufen und da wurde garnichts angezeigt. kein fehler aber auch sonst nix.

habs einfach per
cd /var/media/ftp/uStor01/
./autoru.sh
aufgerufen.

ich hatte autorun aktiviert aber kann ich irgendwie sehen, ob es auch läuft? müsste das mit irgendeinem aufruf sichtbar sein oder in irgendeiner config/skript?

nebenbei: überschreibt eventuell diese uStorxy geschichte den namen wieder oder hat das damit nix zu tun?

hier mal ein auszug aus dem image erstellprotokoll:

applying patch file ./patches/450-autorun_autoend.sh
patching run_mount and storage: autorun/autoend
applying patch file ./patches/cond/450-autorun-run_mount.patch
patching file etc/hotplug/run_mount
----------------------------------------------------------------------
applying patch file ./patches/cond/450-autoend-storage.patch
patching file etc/hotplug/storage
Hunk #1 succeeded at 68 with fuzz 2 (offset 5 lines).
----------------------------------------------------------------------
applying patch file ./patches/460-MAXDEVCOUNT.sh
sollte stimmen, oder nicht?
 
Du musst es, wie das hotplugscript auch mit
"/var/media/ftp/uStor11/autorun.sh"
aufrufen, sehen kannst du es mit "mount", da ein weiterer mountpoint angelegt wird.
Poste doch mal dein script. Und ein
"ls -la /var/media/ftp/uStor11/autorun.sh"
 
also, nach einem halben dutzend versuchen hats nun geklappt, AAAABER nicht so richtig.

Also es werden zwei Devices gemeldet, der ursprüngliche name und der von mir vergebene.

Das eigentliche Problem sit aber, dass wenn ich einen reboot via Freetz auslöse, garkeine Partition mehr gefunden wird. Kann noch so oft rebooten, bringt nix. Via telnet einen reboot eingeben führt zum gleichen problem.

Es funktioniert, wenn ich die FB komplett vom Netz nehme, aber das ist natürlich nicht Sinn der Sache. Geht ja drum, dass nach einem Crash die Partitionen bleiben wie sie waren.

Ne Ahnung, was das sein könnte?


EDIT:
Jetzt habe ich das Skript einfach vom Stick gelöscht aber nach einem Reboot findet er trotzdem keinen Stick! Weder mit noch ohne Skript. Das kann doch nicht sein.
Hätte das Skript irgendwie manuell deaktiviert werden müssen oder müsste man irgendwo irgendwas ändern?

Es funktioniert wunderbar, wenn ich das Gerät vom Netz nehme und wieder einstecke. Aber es wird kein Stick/HDD gefunden nach einem reboot.
 
Zuletzt bearbeitet:
Das er den Stick nicht findet kann nicht an dem script liegen, da ist dann was im USB-System kaputt, kann mir aber nicht vorstellen was.

Ist dir das vorher mal aufgefallen?

Das ist recht komisch.
 
nö. manchmal funktionierts auch. mittlerweile sind alle sticks und hdds betroffen. scheint auch nix mit dem skript zu tun zu haben, aber irgendwa stimmt nicht.

verstehs aber nicht, denn ist mir nicht aufgefallen bevor ich nicht das erste mal das autorun benutzt habe. muss doch eine lösung geben!

EDIT:
problem gefunden: der usb adapter. der usb adapter mit druckeranschluss etc. funktioniert wunderbar und bislang konnte ich dort auch geräte anschliessen, aber seltsamerweise geht dies scheinbar nur, wenn kein gerät in der box direkt steckt UND nur, wenn kein software reboot durchgeführt wird. sieht so aus als müsste ich alle platten direkt an die box hängen und denusb drucker-hub dan hinten dran.

ich kanns mir nicht erklären, aber es ist zumindest "lösbar"
 
Zuletzt bearbeitet:
Um nochmal auf das Skript zurück zu kommen:

Es erstellt einen zusätzlichen(!) Punkt, mit dem du auf die Platte zugreifen kannst. Dieser ist dann immer gleich. Der von der FB erstellte ist immer unterschiedlich.

Um zu sehen, ob die autorun.sh ausgeführt ist reicht eine autorun.sh mit folgendem Inhalt:

echo "Hallo Welt" > log.txt

Wenn du nun nach dem Einstecken eine log.txt mit dem Inhalt "Hallo Welt" auf der Platte hast, weißt du Bescheid.

Gruß,
Hendrik
 
stimmt, wäre ein einfacher test gewesen. wie gesagt, funktioniert nun. problem beim "reboot" war die nutzung des usb hubs mit druckeranschluss. keine ahnung wieso.
 
Wenn du die möglichkeit hast, versuch mal nen anderen hub, dass macht bei mir keine probleme.
 
hab alles ans laufen gebracht. wunderbar.

bis vor ner stunde. seitdem wird der EINE USBStick nicht mehr angenommen. Die LED des Sticks blinkt nur noch ohne aufzuhören. Keine Ahnung wieso.

Hab den Stick nun schon mit Ext2 und Fat32 neu formatiert, den Stick mit Acronis komplett geplättet und neu eingerichtet, chkdsk ausgeführt und mit H2WTest die Integrität geprüft. Nicht ein Fehler. Nirgens.

Aber die Fritzbox nimmt ihn nicht mehr. Der Stick hört nicht auf zu blinken.
 
Hast du deine Box derweil mal neu gestartet? Was für Meldungen tauchen beim Einstecken auf der Box auf? Syslog-Auszüge vom Einstecken? Irgendwas?
 
netzstecker gezogen und alles.

welches log (name und verzeichnis) soll ich posten?

"mount" bringt folgendes nach neustart:
/var/mod/root # mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro)
dev on /dev type tmpfs (rw,nosuid)
proc on /proc type proc (rw,nodiratime,nosuid,nodev,noexec)
tmpfs on /var type tmpfs (rw)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)
/dev/mtdblock6 on /data type jffs2 (rw,noatime)
tmpfs on /data/tam/rec type tmpfs (rw)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda1 on /var/media/ftp/uStor01 type vfat (ro,nodiratime,fmask=0000,dmask=00
00,codepage=cp437,iocharset=iso8859-1)
/dev/sda1 on /var/media/ftp/TrekStor type vfat (ro,nodiratime,fmask=0000,dmask=0
000,codepage=cp437,iocharset=iso8859-1)
/var/mod/root #

umount -a bringt:
/var/mod/root # umount -a
umount: cannot umount /var: Device or resource busy
umount: cannot umount /dev: Device or resource busy
/var/mod/root #

P.S.: Im Ordner /var/log/ gibts nur die beiden dateien mog.log und mod_load.log
 
Er meinte wohl nen auszug aus dem syslog.
Was ist denn da eingebunden, ist das nicht dein stick?
 
nein, das ist die fat32 formatiere 1TB festplatte.

das problem ist offenbar , dass die Frtizbox plötzlich ein Problem damit hat DIESEN stick korrekt einzustufen. Er wird als USB 2.0 angesprochen (wie alle anderen auch), ist es abe nicht, und irgendwie kapiert die fritzbox das nicht.

ist nur die frage wie man das ding nun drosselt.

jetzt wüsste ich nur zu gerne woran dies liegt und ob dies behebbar ist. und wieso um himmels willen dies erst jetzt ganz plötzlich auftritt.
 
Kannst du mal nen auszug vom syslog posten?
Und vielleicht auch ein
"cat /proc/partitions"
nach dem anstecken.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.