Wie kann ich rsync mit einem FAT-Dateisystem verwenden?

27

Ich möchte ein einfaches Sicherungsskript schreiben, das einige Daten auf einem FAT-Laufwerk speichert. Sollte ich das Laufwerk neu formatieren und ein besseres Dateisystem verwenden oder kann rsync mit FAT verwendet werden? Wenn ja, auf welche Probleme könnte ich stoßen? Wäre die Leistung viel schlechter?

EDIT: Dies ist unter Linux, wusste nicht einmal, dass es einen Rsync für Windows gibt. Die Quellen sind verschiedene Dateisysteme (es ist ein Durcheinander), und das Ziel ist derzeit mit FAT32 formatiert.

Vielen Dank für Ihre Antworten, ich werde wahrscheinlich eine Neuformatierung vornehmen, da ich nicht ganz sicher bin, welche Dateigrößen wir haben werden.

Kim
quelle

Antworten:

10

Ich würde eine Neuformatierung auf ein Linux-Fs empfehlen, wenn Sie können. Wie bereits erwähnt, hat FAT relativ niedrige Dateigrößenbeschränkungen und behandelt Berechtigungen und Eigentumsrechte möglicherweise nicht richtig. Noch wichtiger ist, dass FAT die Änderungszeiten von Dateien nicht so genau verfolgt wie beispielsweise ext3 (FAT ist nur innerhalb eines Fensters von 2 Sekunden genau). Dies führt zu einem besonders unangenehmen Verhalten bei rsync, da manchmal festgestellt wird, dass die ursprünglichen Dateien neuer oder älter sind als die Sicherungsdatei, sodass die Daten erneut kopiert oder zumindest die Hashes überprüft werden müssen. Alles in allem führt dies zu einer sehr schlechten Leistung bei Sicherungen. Wenn Sie muss mit FAT, Blick in rsync --size-only und --modify-Fenster Flaggen als Abhilfen bleiben.

thraxil
quelle
36

Ich verwende rsync, um meine Fotos zu sichern, die ich auf einem Laptop mit Linux (Ubuntu 10.4) speichere und verarbeite. Ich sichere sie auf einem sehr einfachen NAS mit 1 TB Festplatte, die als FAT32 formatiert ist. Das NAS-Gehäuse und die Firmware sind sehr einfach, sodass das Laufwerk nicht neu formatiert werden kann.

Der Befehl, den ich benutze, ist:

$ rsync --progress --modify-window=1 --update --recursive --times \
  /home/mloskot/Pictures /mnt/nas/Pictures

Um einen korrekten Zeitvergleich zu ermöglichen, wird die Option --modify-window = 1 verwendet, da FAT32 Dateizeitstempel mit einer Auflösung von 2 Sekunden aufzeichnet, die sich von den unter Linux verwendeten Dateisystemen unterscheidet. Das --Update, um unnötiges Kopieren vorhandener Dateien zu vermeiden - verhält sich wie eine Teilsicherung.

Um einen größenbasierten Vergleich durchzuführen, können Sie die Option --size-only angeben.

mloskot
quelle
Vielen Dank für die Freigabe, ich werde Ihre Kombination von Flags überprüfen :-) Das Rsync-Handbuch ist ein bisschen sperrig ...
DutchUncle
3
Das --modify-Fenster = 1 macht einen großen Unterschied. Es löste das Problem - ich bin jetzt in Millisekunden anstatt in Minuten erledigt.
Wolfgang Fahl
4
Aus irgendeinem Grund muss ich verwenden --modify-window=2. Bei der Verwendung werden 1trotzdem alle Dateien kopiert. Kopieren von NTFS nach FAT32.
Luc
Gelegentlich bestand --modify-windowrsync sogar darauf, alle meine Dateien zu kopieren. Ich benutze die --size-onlyOption jetzt und das funktioniert in Ordnung. Das war von Mac OS Extended (Groß- und Kleinschreibung beachten, Journaled) bis FAT32.
Diachedelic
Es ist wahrscheinlich eine gute Idee, '--ignore-errors --max-size = 4GB' hinzuzufügen, um einen Absturz bei Dateien zu vermeiden, die nicht in FAT32 passen.
Maksym
2

Ist dies Rsync unter Linux auf / von einem FAT-Datenträger (welche Version von FAT?) Oder verwenden Sie die Windows-Version cwRsync?

In beiden Fällen funktionieren FAT16 und 32 mit beiden Versionen (ich habe FAT12 nicht selbst ausprobiert). Wenn Sie auf einem Linux-System arbeiten, würde ich erwarten, dass die Leistung eines FAT-Dateisystems etwas schlechter ist als die eines Dateisystems im Linux-Format, da es im Allgemeinen etwas langsamer ist (ich bin froh, wenn mich jemand dazu bringt, wenn ich es richtig mache) falsch).

Chopper3
quelle
1

Ja neu formatieren! Sie sollten immer ein besseres Dateisystem als FAT verwenden, es sei denn, Sie müssen dies aus Kompatibilitätsgründen tun!

Ich würde vorschlagen, dass Sie das Laufwerk mit demselben Dateisystem formatieren, mit dem Sie eine Synchronisierung durchführen. Andernfalls verlieren Sie möglicherweise Berechtigungen und Attribute, die für Ihre Dateien und Verzeichnisse festgelegt sind.

FAT (vermutlich FAT32) kann aufgrund von maximaler Dateigröße (4 GB), maximaler Datenträgergröße (2 TB - trotzdem ein Tag!), Fragmentierung usw. problematisch sein.

Wenn dies jedoch keine Rolle spielt und Sie nur ein einfaches, schnelles und maximal kompatibles Dateisystem wünschen, ist FAT in Ordnung. In Bezug auf die Geschwindigkeit könnte FAT aufgrund des Fehlens von Journalen, Berechtigungen usw. möglicherweise die Alternativen übertreffen - NTFS / Ext3 / HFS ...

Jon Rhoades
quelle
1

Gibt es einen Grund, warum Sie das FAT-Laufwerk verwenden? Rsync sollte funktionieren, um Daten zu speichern, aber Sie verlieren Metainformationen über Dateien ... Eigentumsrechte, Berechtigungen usw. ... und riskieren Probleme, wenn Sie große Dateien rsynchronsieren, da FAT eine maximale Dateigröße von 2 GB hat.

Leistung, die ich nicht beurteilen kann. Ich habe noch nie Vergleiche mit anderen gemacht. Ich stelle mir vor, dass dies auch viel mit den Laufwerksspezifikationen und dem Dateisystem zu tun hat.

Wenn Sie könnten , würde ich auf das native Format umformatieren, das Sie mit dem Computer verwenden möchten (OS X? Linux?), Und wenn nichts anderes als die Metadaten beizubehalten und den Schlag auf die Stirn in ein paar Monaten zu verlieren, wenn ich fertig bin Synchronisieren von Fehlern aufgrund von Dateisystembeschränkungen. Die Freigabe mit anderen Systemen kann häufig über die Freigabe von Exporten erfolgen. Wenn Sie NTFS verwenden, können Sie einige Metadaten beibehalten, erhalten jedoch weiterhin die größtmögliche systemübergreifende Kompatibilität, da Mac, NT und Linux jetzt alle NTFS-R / W-Funktionen unterstützen.

Bart Silverstrim
quelle