Gibt es eine Möglichkeit, nur eine Partition zu synchronisieren?


Antworten:


10

Sie können mit der Synchronisierungsoption erneut einhängen und diese dann mit async erneut einhängen:

mount -o remount,sync /mountpoint
mount -o remount,async /mountpoint

Die Verwendung der Remount-Option führt nicht zu Problemen mit Prozessen, die ein remountetes Dateisystem verwenden.


2
Warum denkst du, dass 2 Remounts notwendig sind? In mindestens 2.6.32 kernel do_remount_sb führt sync_filesystem die die gleiche Funktion , die in syncfs Systemaufruf aufgerufen wird eingeführt in lwn.net/Articles/433384 .
Yuriy Nazarov

5

Es ist eine Standardfunktion zu synchronisieren Daten (und Metadaten) einer Datei: fsync. Es gibt keinen Standard- oder allgemeinen Shell-Befehl, um darauf zuzugreifen, aber Sie können die Perl- syncMethode verwenden in IO::Handle:

perl -MIO::File -e 'new IO::File($ARGV[0], "r+")->sync()' filename

Es gibt keine Standard- oder allgemeine Funktion oder keinen Shell-Befehl, um nur eine Partition zu synchronisieren.

Auf neueren Linux-Systemen gibt es den syncfsSystemaufruf (eingeführt in Kernel 2.6.39 und verfügbar seit Glibc 2.14 ). Ich glaube nicht, dass dieser Systemaufruf in coreutils oder util-linux verfügbar ist.


1
Der letzte Satz über syncfsist der relevanteste Teil.
Poolie

3

Die Montage der Trennwand mit der syncOption kann eine Lösung sein.


2

Wenn Sie das syncDienstprogramm meinen, das Daten aus dem Speicher auf die Festplatte schreibt, lautet die Antwort nein. Dies liegt an der Tatsache, dass syncnormalerweise während eines Herunterfahrens oder Neustarts Daten sicher auf die Festplatte geschrieben werden sollen. Das eigentliche Ziel des Vorgangs ist der Arbeitsspeicher, nicht die Festplatten, und das Abrufen dieser gepufferten Daten aus dem RAM an einen sicheren Ort. Auf den Festplatten landen die Daten.


0

Wenn btrfs:

btrfs filesystem sync /path/under/mountpoint
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.