Fortschrittsbalkenfehler in Linux

750
Sidahmed

Wenn ich eine große Datei auf ein Flash-Laufwerk kopiere, ist der Fortschrittsbalken sehr schnell am Ende, aber es bleibt so, bis die Datei wirklich auf das Flash-Laufwerk kopiert wird.

Ich habe im Web nach diesem Problem gesucht und es scheint kein Datei-Explorer-Fehler zu sein, aber es scheint ein Linux-Fehler zu sein. Meine Frage ist also: Wie ist es möglich, dass solch ein erstaunlicher Kernel solch einen nervigen Fehler enthält? und niemand hat das jahrelang behoben (auch jetzt noch tritt der Fehler auf).

PS: Ich verwende Ubuntu 15.10 und 16.04 mit dem Standard-Dateimanager (Nautilus).

2
Welchen Dateimanager oder Desktop-Umgebung verwenden Sie? welche distro TheInitializer vor 7 Jahren 1
Ich habe gerade den Beitrag bearbeitet und diese Informationen enthüllt. Das Problem liegt nicht im Dateimanager, da ich "rsync -arvh --info = progress2" verwendet habe und immer noch dasselbe Problem habe. Sidahmed vor 7 Jahren 0

1 Antwort auf die Frage

1
Sidahmed

Ich habe das Problem gefunden und es liegt nicht im Dateimanager.

Vorübergehende Lösung

Führen Sie diesen Befehl bei jedem Start aus:

cat 15728640 > /proc/sys/vm/dirty_bytes

Permanente Lösung

Fügen Sie diese Zeile am Ende der Datei hinzu /etc/sysctl.conf:

vm.dirty_bytes=15728640

Erläuterung

Es passiert, dass der Kernel den Dateiinhalt in einem gepufferten Bereich im Hauptspeicher (RAM) überträgt, und dieser Speicherplatz ist extrem schnell.

Der Dateimanager glaubt also, dass der Dateiinhalt vollständig in das Ziel kopiert wurde, und versucht, die Dateikopie zu beenden. In diesem Moment bleibt der Dateimanager hängen, weil der Kernel die Datei jetzt wirklich auf das Zielmedium (Festplatte, Flashlaufwerk ...) kopiert. Es bleibt hängen, bis die Datei vollständig auf das Zielmedium kopiert wurde.

Die Lösung besteht darin, den Speicherplatz dieses gepufferten Speicherplatzes zu beschränken, sagen wir 15Mb, den Kernel zu zwingen, den Inhalt des gepufferten Speicherplatzes bei jedem 15MbErreichen des Speicherplatzlimits auf das Zielmedium zu leeren . Auf diese Weise erhält der Dateimanager keine falschen Fortschrittsinformationen.