Hallo,
mein RaspberryPi mountet bei jedem Start einen USB Stick. Dazu habe ich
einen Eintrag in der fstab angelegt. Leider klappt das nicht jedes Mal,
ich vermute es liegt am USB Stick (NoName billig China Produkt).
Wenn ich Dateien in den Mountpoint speichern lasse, liegen diese
manchmal auf dem USB Stick und manchmal auf der SDKarte.
Ich suche deshalb nach einer automatischen Möglichkeit, zu
kontrollieren, ob das Mounten erfolgreich war und wenn nicht es zu
wiederholen solange bis es geklappt hat.
Manuell geht das ja über "df" bzw "df -h". Bevor ich mir jetzt was
zusammenbastele, irgendwelche zeichenketten zu vergleichen, frage ich
lieber mal: Geht das automatisch irgendwie eleganter?
Gruß und Dank,
Gerald
Peter II schrieb:> Gerald schrieb:>> Geht das automatisch irgendwie eleganter?>> einfach Mount aufrufen, dann sieht man doch was gemoutet ist.
Danke, sowas bekomme ich ja mit "df -h" auch. Es soll aber automatisch
überprüft werden (ohne meine Abfrage), zB. mittels cronjob direkt nach
dem start.
Gerald schrieb:> Wenn ich Dateien in den Mountpoint speichern lasse, liegen diese> manchmal auf dem USB Stick und manchmal auf der SDKarte
Dann stimmt generell etwas nicht! Wenn du auf den Stick speichern
willst, und der Stick nicht da ist, bekommst du eine Fehlermeldung. Was
aber mit sicherheit nicht passieren wird, ist, dass das OS die Daten
irgendwo anders (in diesem Falle die SD-Karte) hinschreibt! Da stimmt
was mit deinem Mountpoints nicht!
Kaj schrieb:> Dann stimmt generell etwas nicht!
das ist Linux. wenn ein Device nicht gemountet ist, dann werden die
Daten einfach in den mountpoint, der ja vorhanden ist, geschrieben.
Das ist es ganz normales verhalten.
Kaj schrieb:> Dann stimmt generell etwas nicht! Wenn du auf den Stick speichern> willst, und der Stick nicht da ist, bekommst du eine Fehlermeldung. Was> aber mit sicherheit nicht passieren wird, ist, dass das OS die Daten> irgendwo anders (in diesem Falle die SD-Karte) hinschreibt!
Warum nicht? Wen da nichts gemountet ist, existiert das Verzeichnis, das
eigentlich der Mountpoint sein sollte, ja trotzdem. Und wenn man dort
Schreibrechte hat, kann natürlich dorthin geschrieben werden.
Danke schonmal für die Tipps, ich gehe sie gerade durch.
Kaj schrieb:> Gerald schrieb:>> Wenn ich Dateien in den Mountpoint speichern lasse, liegen diese>> manchmal auf dem USB Stick und manchmal auf der SDKarte> Dann stimmt generell etwas nicht! Wenn du auf den Stick speichern> willst, und der Stick nicht da ist, bekommst du eine Fehlermeldung. Was> aber mit sicherheit nicht passieren wird, ist, dass das OS die Daten> irgendwo anders (in diesem Falle die SD-Karte) hinschreibt! Da stimmt> was mit deinem Mountpoints nicht!
Ich habe einen Ordner /home/gerald/USBStick erzeugt und diesen als
Mountpoint angegeben. Wenn der USBStick eingebunden ist, stellt dieser
Ordner den USBStick dar.
Wenn nicht, liegen die Daten in /home/gerald/USBStick.
Was ist daran falsch?
Gerald schrieb:> Ich habe einen Ordner /home/gerald/USBStick erzeugt und diesen als> Mountpoint angegeben. Wenn der USBStick eingebunden ist, stellt dieser> Ordner den USBStick dar.> Wenn nicht, liegen die Daten in /home/gerald/USBStick.>> Was ist daran falsch?
Kann es folgendes sein: ?
Deine Daten liegen in dem Ordner /home/gerald/USBStick
Wenn dein USBStick gemountest ist liegen dessen daten in
/home/gerald/USBStick/'NAME DES USB STICKS'
Du schreibs also die Daten in den Ordner USBStick, und in sem selben
Ordner wird der USBStick gemounted. Das sind dann immer noch ein Ordner
und ein USBStick, aber kopiert wird dabei von alleien nichts
automatisch.
lisefba schrieb:> Deine Daten liegen in dem Ordner /home/gerald/USBStick> Wenn dein USBStick gemountest ist liegen dessen daten in> /home/gerald/USBStick/'NAME DES USB STICKS'
Nee, "USBStick" dürfte schon der Name des Sticks sein.
Das klingt alles schon richtig so, der TO hat ein technisches Problem.
--
@TO:
Mal ne andere Frage: Kannst Du nicht im Mountpoint-Dir ein Verzeichnis
(oder eine Datei) anlegen? Diese wird normalerweise vom USB-Stick
verdeckt, könnte aber abgefragt werden?
Ansonsten müsste man mal /proc/mounts untersuchen.
Wie wäre es nicht direkt in das root Verzeichnis des USB Sticks zu
schreiben sondern in eine Unterordner also statt /mnt/USBstick so was
wie /mnt/USBstick/data, Das hätte den Vorteil, wenn der USB Stick nicht
gemountet gibt es das Verzeichnis data nicht und der Schreibe Prozess
bekommt einen Fehler.
Die Fehler Behandlung könnte das Mounten es Stick sein. Das Verzeichnis
data müsstest du dann halt einmal zu beginn auf den USBstick angelegt
haben.
Der Schreibprozess bzw. die fopen-Funktion gibt doch auch einen Fehler
wenn der Stick nicht gemountet ist und du direkt ins root von dem Stick
schreiben willst... also "/mnt/USBstick/bla.txt"
Ich setze die Permissions meiner Mountpoint einfach auf '000'.
Wenn ein Medium gemounted wird, aendern sich die Permissions
auf die auf dem Medium gesetzten Wert.
Damit kann zumindest jeder User > 0 nichts in nicht gemountete Ordner
schreiben.
Rene Schube schrieb:> Der Schreibprozess bzw. die fopen-Funktion gibt doch auch einen Fehler> wenn der Stick nicht gemountet ist und du direkt ins root von dem Stick> schreiben willst... also "/mnt/USBstick/bla.txt"
Warum sollte er das tun? Wenn mein User auf /mnt/USBstick/ schreiben
darf und der mountpoint /mnt/USBstick ist, wird fopen dort eine Datei
erstellen, welche im worst case verhindert das mounten danach noch geht
( Stichwort Mountpoint not empty).
Achim Hensel schrieb:> Mal ne andere Frage: Kannst Du nicht im Mountpoint-Dir ein Verzeichnis> (oder eine Datei) anlegen? Diese wird normalerweise vom USB-Stick> verdeckt, könnte aber abgefragt werden?>
...dies bzw. die Umkehrung, eine "feste" Datei auf dem einzubindenden
USB-Stick abfragen, ist die gängige Lösung für solche Geschichten.
Warum der Stick ab und zu nicht automatisch gemounted wird ist die eine
Frage, die man klären könnte, aber nie entgültig lösen wird, da zuviele
Einflussfaktoren die Ursache sein können.
Und man sollte vielleicht auch noch zwei andere Szenarien beachten und
mit obiger Lösung prüfen:
* falscher Stick...
* Stick im laufenden Betrieb einfach abgezogen...
Grüße Uwe