Wie stelle ich den Schreibcache für USB-Laufwerke unter Ubuntu (Mate) 16.04 ab? Folgendes Problem: Bei externen USB-Sticks und SSDs die mit EXT3 formatiert sind, werden noch Daten geschrieben, auch wenn ich das USB-Medium aushänge oder auf "Sicher entfernen" klicke. Mit einer Status-LED kein Problem, da sehe ich ja, dass sie noch blinkt. Aber einige Sticks und SSDs haben keine. Ich hab versucht den Schreibcache in der hdparm.conf zu deaktivieren. write_cache = off Das hat aber anscheinend keine Wirkung auf USB-Laufwerke. Auch nicht wenn ich den Schreibcache für alle Laufwerke abstelle. Ich bin auch der Meinung, dass man das woanders abstellt. Unter Debian Stretch als reine Konsoleninstallation nutze ich z.B. pmount und deaktiviere den Schreibcache in der /usr/local/bin/automount. Bei meiner Desktop-Installation ist das aber anders gelöst und ich hab noch nicht herausgefunden wie.
soviel ich weiß geht das nur in der /etc/fstab. Ich hab Kubuntu (aber eben auch der *buntu Unterbau darunter) Ich habe so ein Problem nur bei einer Handvoll Laufwerke, speziell sind das Laufwerke die von Geräten bereitgestellt werden um darüber Firmwareupdates durchzuführen, zum Beispiel STM32-Controller im Bootloadermodus wie zum Beispiel meine Modellbau-Funkfernsteuerung oder dergleichen, die erscheint beim Anstöpseln als zwei Laufwerke zum Datenaustausch dort MUSS man ZWINGEND den Schreibcache deaktivieren damit es sich verhält wie Windows sonst geht es überhaupt nicht. Ich mache das dann so daß ich für derartige problematische Laufwerke je einen fstab-Eintrag anlege (zweckmäßigerweise über /dev/disk/by-label/WHATEVER so daß es egal ist welchen Gerätenamen das Laufwerk zufällig bekommt) und gebe dann dort die gewünschten mount-optionen an und auch ein festes Verzeichnis wo es hingemountet werden soll. Zumindest bei mir unter KDE bewirkt das daß der Automounter beim Anstöpseln zwar immer noch funktioniert wie gewohnt, er aber stets die Einstellungen aus der fstab verwendet. Um den cache auszuschelten muss die option sync hinzugefügt werden. Bei allen anderen unproblematischen Laufwerken ist mir das aber egal und ich verwende einfach ganz normal den "Laufwerk auswerfen" Button da schreibt er den Cache weg und anschließend zeigt er an daß er fertig ist und ich es entfernen kann.
:
Bearbeitet durch User
Reicht folgendes nicht aus? :
1 | sync ; umount /dev/sdX ; sleep 1 ; eject /dev/sdX |
:
Bearbeitet durch User
Eigentlich sollten umount und sync erst zurückkehren/sich beenden, wenn alles fertig geschrieben wurde. Bei einigen Dateisystementwicklern ist die Message aber wohl noch nicht angekommen (ZFS, btrfs,...). Es gibt schon ein paar Stellschrauben das Daten schneller zurückgeschrieben werden. Pro Device ist das nicht so viel: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-bdi Eventuell könnte man /sys/class/bdi/*/max_ratio auf ne niedrigere Zahl oder gar 0 setzen. Und dann gibt es noch die allgemeinen Stellschrauben: https://lonesysadmin.net/2013/12/22/better-linux-disk-caching-performance-vm-dirty_ratio/ btw. https://www.kernel.org/doc/Documentation/sysctl/vm.txt Man könnte auch versuchen mit "mount -o sync ..." dinge zu mounten. Eventuell kann man ja auch als sync remounten "mount -o remount,sync /existierender/mountpoint", aber das hab ich noch nicht getestet. Eventuell könnte man das dann auch in ein periodisch laufendes Skript packen oder so. All das macht aber vermutlich vieles langsamer.
Bernd K. schrieb: > soviel ich weiß geht das nur in der /etc/fstab. Ich versuch's mal in der fstab, der Ansatz ist gut. > ...ich verwende einfach ganz normal den "Laufwerk auswerfen" Button da > schreibt er den Cache weg und anschließend zeigt er an daß er fertig ist > und ich es entfernen kann. Das tat es mit Scientific Linux 6.2 immer super. Aber in Ubuntu 16.04 wird das Laufwerk angeblich sicher ausgeworfen und kann entnommen werden, obwohl der Schreibvorgang noch nicht fertig ist. Da frage ich mich wozu das "Sicher entfernen" im Kontextmenü dienen soll. Mutluit M. schrieb: > Reicht folgendes nicht aus? > sync ; umount /dev/sdX ; sleep 1 ; eject /dev/sdX Sicher könnte ich mir mein eigenes Auswurfscript schreiben. Das wird dann aber doch aufwändiger, da die externen Medien nicht immer den selben "Laufwerkbuchstaben" haben.
Dietmar S. schrieb: > Ich hab versucht den Schreibcache in der hdparm.conf zu deaktivieren. > write_cache = off Das dürfte den Cache der Disk betreffen. Der ist aber nicht dein Problem. Sondern die Arbeitsweise des Betriebssystems. Du wirst allerdings feststellen, dass es einen Grund dafür gibt, weshalb Windows im Umgang mit leicht entfernbaren Datenträgern grässlich langsam ist, wenn es viele kleine schreibende Transaktionen gibt. Windows geht nämlich davon aus, dass der Esel vor dem Bildschirm gerne mal den Stick mittendrin rauszieht. Linux normalerweise nicht.
Wobei man dazu sagen muss die Default-Option für Wechseldatenträger (bei Ubuntu?) ist "flush", das sorgt dafür daß er zwar immer noch cached aber das Wegschreiben im Anschluss daran mehr oder weniger sofort beginnt, der Druck den Cache so schnell wie möglich sauber zu bekommen ist bei "flush" wesentlich höher, wenn er bei "flush" aufhört zu blinken ist der Cache definitiv sauber und man müsste es unbeschadet rausziehen können. Das nutzt natürlich nichts wenn der Stick keine LED zum Blinken hat. Du könntest in der Konsole ein sync absetzen, wenn das zurückkommt sollte der cache auf jeden Fall clean sein.
Bernd K. schrieb: > Du könntest in der Konsole ein sync absetzen, wenn das zurückkommt > sollte der cache auf jeden Fall clean sein. Super, das funktioniert prima! Ein einfaches sync genügt mir vollkommen. War gerade schon dabei den fstab-Eintrag zu gestalten. Dann hätten aber alle Sticks und SSDs dasselbe Label oder dieselbe UUID haben müssen. Mutluit M. schrieb: > Reicht folgendes nicht aus? > sync ; umount /dev/sdX ; sleep 1 ; eject /dev/sdX Vorschlag war gut, hab gestern nur mal wieder zu kompliziert gedacht.
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.