.titleBar { margin-bottom: 5px!important; }

/etc/hotplug/run_mount modifizieren

Dieses Thema im Forum "Freetz" wurde erstellt von hermann72pb, 4 Okt. 2009.

  1. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,611
    Zustimmungen:
    2
    Punkte für Erfolge:
    38
    Basierend auf diesen Ideen will ich nun hier ein neues Thema aufmachen, um zu diskutueren, wie wir am Besten mit der berühmten Datei run_mount vorgehen.
    Meine Analyse von unseren usbstorage-Patches hat gezeigt, dass dort im Großen und Ganzen zwei Sachen gepatcht werden, nämlich Funktion nicename() (kommt von AVM, wird aber von uns komplett überholt) und mount-fs() (kommt komplett und vollständig von uns und ersetzt die typischen mount-Befehle von AVM).
    Mein Vorschlag wäre:
    1. Irgendwo in fwmod bauen wir einen sed, der uns nach dieser nicename in der betreffenden Datei sucht, die Funktion komplett entfernt und stattdessen da eine Zeile anlegt, die in etwa wie folgt aussieht:
    Code:
    . /etc/hotplug/freetz_mount.sh
    
    2. In diese Datei "freetz_mount.sh" packen wir unsere nicename() und mount_fs() rein.
    3. Aus allen Patches fliegen die entsprechenden Passagen heraus. In den patches bleiben lediglich die Zeilen, die dann mount-Befehl gegen unsere mount_fs() ersetzen. Die Funktion selbst ist aber in unserer Datei.

    Somit schaffen wir uns einige Freiräume für zukünftige Änderungen. Das wäre damit z.B. möglich:

    1. In der freetz_mount.sh könnte man dann mit einem ähnlichen dot-Befehl die FREETZ-Variablen auslesen. Ob es die globalen Variablen sein sollen, oder ob wir dafür eine separate cfg-Datei schaffen, muss man noch sehen.
    2. Die nicename-Funktion könnte man darauf basierend frei konfigurierbar machen. Auch aus dem WebIF. Sodass man sich dafür frei entscheiden könnte, ob es denn "uStor" heißen soll oder "muellerschulze" oder eben nach dem LABEL.
    3. Man könnte auch mount_fs() etwas weiter entwickeln und zu so einer Art fstab, konfigurierbar aus WebIF langsam hochziehen. Dass z.B. eine Partition, die als uStor01 oder eben als SYS (nach dem LABEL) erkannt wird dann immer per see als RO gemounted wird. Oder wie auch immer. Hier sehe ich eine breite Spielwiese.

    Spricht was dagegen? Wer ist bei der Realisierung dabei? Wenn wir es machen, würde ich den sed-Part (s. oben) übernehmen. Patches durchforsten würde ich gerne jemanden anderen überlassen. Denn da bin ich kein guter Experte.

    MfG
     
  2. Silent-Tears

    Silent-Tears IPPF-Promi

    Registriert seit:
    3 Aug. 2007
    Beiträge:
    7,456
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BI
    Anmerkung am Rande: Die "Nicenames" gehören zu einem Patch, den man abwählen kann ;)
     
  3. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,611
    Zustimmungen:
    2
    Punkte für Erfolge:
    38
    ok, dann packt mein sed eben die AVM-eigene nicename beiseite und baut es nach Bedarf in die freetz_mount.sh wieder rein, wenn das denn nicht abgewählt ist. Oder alternativ wird dann eben die sed-Suche gar nicht gemacht. Dann nennen wir es "AVM-mount vs. FREETZ-mount" und jeder kann sich entscheiden, was er denn will.

    MfG
     
  4. colonia27

    colonia27 Guest

    Moin,
    find ich mal wieder ne sehr gute und vor allem sinnvolle Idee.
    Denke das könnte hier und da wirklich die Arbeit erleichtern.
    Wie immer bei deinen praktischen kleinen Patchen, kannst du mit meiner Hilfe rechnen... allerdings nur im Bereich Testen & Feedback, ne große Hilfe in Sachen Programmierung bin ich sicher nicht.

    Aber wo wir gerade bei meiner derzeitigen "lieblings Datei" run_mount sind, magst du vielleicht mal hier vorbeischauen.
    Vielleicht lässt sich das Festlegen des NEW_LINK ebenfalls irgendwie ins menuconfig integrieren.
    Sofern du genaueres zum wieso, weshalb, warum wissen möchtest, ...einfach fragen
     
  5. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,611
    Zustimmungen:
    2
    Punkte für Erfolge:
    38
    @colonia27: Dann hol doch bitte raus weshalb und warum oder gib wenigstens einen Link darauf, wo es durchgekaut wurde (wenns bereits geschehen). Soweit ich das verstanden hatte, wird NEW_LINK auf die letzte gemountete Partition gelegt, weil es einfach dort irgendwo in der Schleife steht und ständig neu verlinkt wird, bis das komplette Einbinden durch ist.
    Klar kann man es hier im Züge dieser Operation auch "mitnehmen", wenn es denn sinnvoll ist.

    MfG
     
  6. colonia27

    colonia27 Guest

    Sorry, den link hatt ich beim ersten Abschicken des posts wie üblich vergessen. Keine 30 Sekundenspäter war er aber da.
    Der Grund/Sinn ist relativ einfach: Ich möchte schlicht und einfach selbst bestimmen wo dieser Link hinzeigt. Dieser bestimmt schließlich wo der FRITZ-Ordner bzw. diedarin enthaltenen faxbox- und voicebox-ordner angelegt werden.
    In meinem fall ist es so, daß meine HDD 4 Partitionen hat, wovon ich aber nur die erste und zweite (uStor01+uStor02) für freetz-Sachen und alles dazugehörige nutze / nutzen will.
    Ohne nach zuhelfen, zeigt der Link natürlich immer auf uStor04 und erstellt mir den Ordner wo er nicht hinsoll.
     
  7. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,611
    Zustimmungen:
    2
    Punkte für Erfolge:
    38
    @colonia27: Mit dem NEW_LINK an sich hat es nichts zu tun. Bei mir zeigt er zwar auf uStor06, trotzdem liegen alle meine Faxe/AB-Sachen auf uStor02. Es hat damit zu tun, dass AVM wie immer nur an sich selbst denkt und die absoluten Pfade vollständig und mehrfach in den Konfigurationen vom AB oder FAX abspeichert. Geh doch einfach in den AB-Ordner und schau dir dort sowohl config als auch alle meta-Dateien. Dort findest du die absoluten Pfade mehrfach vorkommend. Bei dir würde da wahrscheinlich NEW_LINK stehen, weil du alle deinen AB/FAXe vor dem FREETZ konfiguriert hast, oder wenigstens bevor deine Partitionen als uStorXX gemounted wurden.
    Um das Problem zu umgehen sind Arbeiten in zwei Richtungen notwendig:
    1. NEW_LINK frei konfigurierbar machen, wie du vorschlägst. Am besten sogar über WebIF. Menuconfig hilft da herzlich wenig, wenn man es vernünftig machen will.
    2. Ein Import/Export/Rekonfigurations-Programm für AB und FAX schreiben. Ich glaube Richtung Import/Export hat sogar AVM irgendwas. Oder täusche ich mich da?
    Aber so ein Rekonfigurationsskript, der dann alle AB/FAX-Dateien durchforstet und die Pfade umändert kann sicherlich auch nicht schaden. Ist im Prinzip auch nicht allzuschwer zu schreiben, wenn man sich mit sed auskennt.

    MfG
     
  8. poruid

    poruid Neuer User

    Registriert seit:
    5 Aug. 2007
    Beiträge:
    95
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Zunderdorp
    and MDEV?

    Please consider the MDEV hotplug chain as a possible means to implement your ideas. Its better structure and design seems well suited for your plans.

    The current mdev implementation has a special directory, /lib/mdev/interface, that is to contains scripts that provide a AVM compatible interface, and it allready contains some scripts to interface with the AVM way of doing things.
    Where AVM has hardcoded pathnames, (configured) usage of symbolic links may also, besides patching such paths in the AVM products, provide a compatible interface towards the AVM stuff.

    BTW. have a look at showpost.php?p=1303270&postcount=39
    Good luck.
     
  9. Silent-Tears

    Silent-Tears IPPF-Promi

    Registriert seit:
    3 Aug. 2007
    Beiträge:
    7,456
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    BI
    I think hermans intention is to modify the "AVM-way" in a way that doesn't need as deep changes in the system as this neasrly unsupportet mdev-packet, where the author has stopped working before it has been really finished.
     
  10. mandy28

    mandy28 Neuer User

    Registriert seit:
    15 Dez. 2008
    Beiträge:
    187
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Hallo zusammen ,

    kann mir denn jemand sagen ob es jetzt bal einen patch gibt der den USB Stick nur noch als ustor01 erkennen läßt .

    wie muß denn die run_mount genau aussehen
    momentan
    Code:
    ## Generate a frontend'able 'nice name' to be used as mount point:
    nicename () {
    local NICE=""
    NICE="uStor`echo $1|sed 's/^..//;s/a/0/;s/b/1/;s/c/2/;s/d/3/;s/e/4/;s/f/5/;s/g/6/;s/h/7/;s/i/8/;s/j/9/'`$3"
    echo $NICE
    
    reicht es wenn ich diesen Eintrag nehme ?
    Code:
    ## Generate a frontend'able 'nice name' to be used as mount point:
    nicename () {
    local NICE=""
    NICE="uStor$2$3"
    echo $NICE
    
    oder fehlt da noch was undmuß noch ein patch aktiviert sein ?


    danke schonmal
     
  11. cuma

    cuma Aktives Mitglied

    Registriert seit:
    16 Dez. 2006
    Beiträge:
    2,747
    Zustimmungen:
    6
    Punkte für Erfolge:
    38
    so:

    Code:
    ## Generate a frontend'able 'nice name' to be used as mount point:
    nicename () {
    local NICE=""
    NICE="ustor01"
    echo $NICE
    
     
  12. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ob es geschickt ist, das zu tun, ist dann die andere Frage.
     
  13. mandy28

    mandy28 Neuer User

    Registriert seit:
    15 Dez. 2008
    Beiträge:
    187
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    wie meinst Du das jetzt genau ?
     
  14. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Es könnte Probleme geben, wenn der alte Mount-Punkt noch aktiv ist. Es könnte sinnvoll sein, das zuerst mit einem USB-Speicher zu versuchen, der keine wichtigen Daten enthält.
     
  15. mandy28

    mandy28 Neuer User

    Registriert seit:
    15 Dez. 2008
    Beiträge:
    187
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    Okay danke dann erstmal.

    Oder gibt es da noch eine bessere Lösung ?
     
  16. cuma

    cuma Aktives Mitglied

    Registriert seit:
    16 Dez. 2006
    Beiträge:
    2,747
    Zustimmungen:
    6
    Punkte für Erfolge:
    38
    @mandy28: Eine Lösung kann man nur zu einem Problem finden.

    Nicht unbedingt.
     
  17. mandy28

    mandy28 Neuer User

    Registriert seit:
    15 Dez. 2008
    Beiträge:
    187
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    #17 mandy28, 15 Okt. 2009
    Zuletzt bearbeitet: 15 Okt. 2009
    habs jetzt hiermit versucht
    Code:
    ## Generate a frontend'able 'nice name' to be used as mount point:
    nicename () {
    local NICE=""
    NICE="u[COLOR="Red"]s[/COLOR]tor01"
    echo $NICE
    
    der USB Stick wird aber immer noch als uStor00 erkannt und nicht als uStor01.
    Ich suche eine Möglichkeit den USB Stick immer als uStor01 erkennen zu lassen , auch die Sticks die sonst nur als z.B. uStor00 oder uStor05 ect erkannt werden

    hiermit hats geklappt aber leider erst nachdem der Zugriff auf dem Stick erfolgen sollte:

    rc.custom
    Code:
    umount /var/media/ftp/uStor00                                                   
    sleep 5                                                                         
    rmdir /var/media/ftp/uStor00                                                    
    mkdir /var/media/ftp/uStor01                                                    
    sleep 10                                                                        
    chmod 777 /var/media/ftp/uStor01                                                
    mount -rw /dev/sda1 /var/media/ftp/uStor01/
    
    sorry Fehler gefunden ustor01 statt uStor01 -- also Tippfehler,
    werds mal testen
     
  18. mandy28

    mandy28 Neuer User

    Registriert seit:
    15 Dez. 2008
    Beiträge:
    187
    Zustimmungen:
    0
    Punkte für Erfolge:
    16
    klappt leider doch nicht
     
  19. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,611
    Zustimmungen:
    2
    Punkte für Erfolge:
    38
    #19 hermann72pb, 31 Okt. 2009
    Zuletzt bearbeitet: 1 Nov. 2009
    automount. Version 1.0

    Wie bereits angekündigt, hatte ich es nun vollbracht: Die erste Version von meinem automount ist da.
    1. Ich habe nicename() und fs_mount() in eine separate Datei /usr/lib/libmodmount.sh ausgelagert. (@Silent-Tears: bitte Ausführungsrechte nicht vergessen, wenn du es eincheckst!!!)
    2. Als Folge muss man ganz viele usbstorage-Patches anpassen. Ich habe nicht alle geschafft, nur für 7170, 7270v1/2, 7270v3. Wer Lust hat, andere anzupassen, immer willkommen.
    3. Wenn man blkid von e2fsprogs im Image hat, kann man seine Partitionen nach ihrem Volumen-Label anstatt uStorXY mounten (Hacken bei den Einstellungen). Diese Geschichte ist in Zusammenhang mit der alten uStor11-Problematik besonders interessant, denn man bekommt somit immer die Gleichen mountpoints. blkid kann man nachher in menuconfig als Unterpunkt zum usbstorage-Patch reinnehmen. Momentan muss es noch manuell unter e2fsprogs ausgewählt werden. Silent-Tears hatte es extra dafür als separate Option dort vorgesehen.

    Ich bitte alle diese Neuerung ausgiebig zu testen. Im default-Fall dürfte dieses Automount sich zunächst mal genau so wie früher verhalten. Erst wenn man die blkid-Erkennung aktiviert, wird man etwas aufpassen müssen.
    Und zwar in folgenden Punkten:
    a) Ich warne hier alle schon mal im Voraus, dass es Probleme mit AVM-AB auftreten können, wodurch die Box eventuell alle 5 Minuten rebootet. Abhilfe schafft das Abziehen des externen Mediums und die Umstellung auf die alte uStorXY-Methode. Ich mache mich hierbei auf den Weg, die AB-Datei mit ein Paar sed-Zeilen zu korrigieren. Alternativ kann man seinen AB natürlich löschen und neu anlegen.
    b) external sollte ebenfalls von uStorXY auf Label umgestellt werden. Dafür ist allerdings ein neues Flashen erforderlich. Denn external legt seine symlinks so, wie man es in menuconfig definiert hat. Und per default steht da uStor01.
    c) Eventuell kriegt ihr Probleme bereits beim kompilieren. Leider wird run_mount bis zu drei mal gepatcht. Dadurch kommt es dazu, dass die patches nicht 100% passen und mit einer Verschiebung eingesetzt werden. Ich musste mein Patch sogar so anpassen, dass da eine AVM-Kommentarzeile drin blieb, obwohl ich sie gerne löschen würde. Letzteres ging allerdings nicht, weil das Rumpatchen dann an einer Stelle mit dem Abbruch von fwmod in die Hose ging. Deswegen bitte testen und melden.


    Edit: Irgendwie ist es zu ruhig hier: Nur zwei Downloads seit gestern abend... Nachdem das Ding fertig war, sind mir da noch ein Paar mögliche Ideen in dem Zusammenhang aufgefallen. Zu einem ist es die Sache mit Partition-Check vor dem Einbinden der Partitionen (vorgeschlagen von Silent-Tears). Da man es lieber nicht beim jeden mount machen sollte, wird es noch eine größere Baustelle werden, die ich allerdings irgendwann mal auch in Anspruch nehme. Zum Anderen, wäre es nicht schlecht die alte uStorXY-Behandlung aus Kompatibilitätsgründen zu behalten. Es würde sich relativ leicht realisieren, in dem nicename() neben dem Ausspucken vom neuartigen Namen an run_mount beim Aufruf parallel noch einen symlink uStorXY->LABEL anlegt. Ich hatte es bei mir gestern rein handisch ausprobiert: Es bewirkt wunder. Danach lief mein ausgelagerter MC, den ich natürlich external-mäßig aus /usr/bin zu uStorXY kommandiert hatte. Zum dritten ließe sich vielleicht die bekannte AVM-artige NEW_LINK-Bemountung irgendwie steuern. Aber in diesem Fall muss man vermutlich erstmal bei AVM die Stelle rauspatchen, die den NEW_LINK anlegt. Es wird eine etwas längere Entwicklungsgeschichte werden.
    Hierzu hätte ich gerne eure Rückmeldungen und Wünsche, damit ich priorisieren kann.

    MfG
     

    Anhänge:

  20. hermann72pb

    hermann72pb IPPF-Promi

    Registriert seit:
    6 Nov. 2005
    Beiträge:
    3,611
    Zustimmungen:
    2
    Punkte für Erfolge:
    38
    Hallo zusammen. Ich hatte gesehen, das heute wieder viele usbstorage-Patches nach der alten Manier upgedatet wurden. Heißt es, wir vergessen diese Geschichte hier? Oder machen wir alles nochmal? Ich hatte doch vorgeschlagen, alle nicename() und fs_mount() auszulagern. Hätte man doch gleich in dem Züge machen können. So wäre der Pflegeaufwand nachher deutlich einfacher. Außerdem geht es mir darum, eine Basis für weitere Modifikationen am mount-Prozess zu verschaffen, die zur Zeit meinerseits daran scheitern, dass ich keine Lust habe 20 Patches dafür anzufassen und damit zu riskieren, dass die patches nachher nicht sauber durchlaufen.

    MfG