Hallo, ich habe ein Messgerät gebaut, dass für die GUI und Messdatenauswertung einen Raspberry Pi mit Touchscreen verwendet. Nun würde ich gerne die Messergebnisse auf einen USB Stick speichern können. Das ganze soll von der GUI aus passieren können. Ich habe mittlerweile gelesen, dass es usbmount gibt und dies automatisch einen Stick mounten kann, sobald er eingesteckt wird. Aber was passiert dann, nachdem ich die Datei geschrieben habe? Muss ich den Stick unmounten, damit die Daten auch sicher auf dem Stick sind oder gibt es irgendwelche Konfigurationen, die jegliches Caches für den Stick abschalten?
Braucht umount nicht root rechte?
Sven schrieb: > Braucht umount nicht root rechte? Ja, arbeitest du nicht als root auf dem Pi? Als mountoptionen bieten sich "sync" bzw. "flush" an, die dafür sorgen dass Daten sofort geschrieben werden. Aber woher weißt du, dass nicht gerade geschrieben wird wenn der Stick herausgezogen wird? Ich würde ein kleines Script schreiben welches den Stick mountet, die Daten schreibt, den Stick unmountet und anschließend anzeigt dass dieser entfernt werden kann.
Schreiben kann ja nur ich gerade mit meiner Software auf den Stick. Jemand anders ist da ja nicht. Darum hätte ich halt in der Software gemeldet, wenn die fertig ist mit dem Schreiben. Aber wirklich unmounten ist wohl die sauberste Lösung. PS: Nein, die Python Software läuft nicht als root
Dann sollte der USB Stick mit der Option "user" in /etc/fstab eingetragen sein, damit auch der normale Benutzer mount und umount nutzen darf.
Vielen Dank für diesen Hinweis! Dann werde ich es so machen.
Sven schrieb: > Ich habe mittlerweile gelesen, dass es usbmount gibt und dies > automatisch einen Stick mounten kann, sobald er eingesteckt wird. Aber > was passiert dann, nachdem ich die Datei geschrieben habe? Muss ich den > Stick unmounten, damit die Daten auch sicher auf dem Stick sind oder > gibt es irgendwelche Konfigurationen, die jegliches Caches für den Stick > abschalten? Wenn Du den Stick abziehen möchtest, dann solltest Du ihn unmounten. Wenn der Stick eingesteckt bleiben soll, reicht es, den Systembefehl fsync(2) für Deine Datei aufzurufen. Unter Python wird der Befehl in os.fsync angeboten, auf ein Python-file() f wird das dann mit os.fsync(f.fileno()) aufgerufen. Das Mounten und Unmounten kann übrigens auch ein leider in Vergessenheit geratenes Programm namens automounter bzw. autofs durchführen. Das mountet den USB-Stick beim Zugriff auf den konfigurierten Mountpoint und unmountet ihn wieder, wenn für eine bestimmte Zeit kein Zugriff mehr stattgefunden hat.
Sven schrieb: > Braucht umount nicht root rechte? Das hängt von den Mountoptionen des betreffenden Dateisystems ab. Und wer ein Programm als User mit root-Rechten ausführen möchte, dann das explizit mit der NOPASSWD-Option für sudo freischalten. Achtung: die /etc/sudoers immer mit "visudo" bearbyten, dann wird eine Fehlerprüfung gemacht bevor die Datei geschrieben wird; den gewünschten Editor kann man dabei über die Umgebungsvariable EDITOR einstellen:
1 | sudo EDITOR='emacs -nw' visudo |
Man könnte auch einfach pmount verwenden. Das ist extra für Wechseldatenträger gemacht und braucht keine root-Rechte.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.