Ich habe die Frage von @SwisherSweet zum schnellsten und sichersten Weg zum Kopieren massiver Daten von einem externen Laufwerk auf ein anderes gelesen, zusammen mit der hervorragenden Antwort von @GrahamMiln .
Ich befinde mich in einer ähnlichen Situation, in der ich Daten von einer über Firewire 800 angeschlossenen externen Festplatte auf Drobo 5N kopieren möchte, das mit dem Router verbunden ist, mit dem der iMac verbunden ist: ExternalHd – iMac – Router –
Drobo5N
Ich habe den Befehl ( ) ausgeführt sudo rsync -vaE --progress /Volumes/SourceName /Volumes/DestinationName
und er funktioniert teilweise, aber gelegentlich erhalte ich die folgende Fehlermeldung (ich habe zur besseren Lesbarkeit einige Zeilenumbrüche eingefügt):
Boxx:~ Alex$ sudo rsync -vaE --progress /Volumes/ExternalHd/path/to/MyDirectory /Volumes/Drobo5N/path/to/
building file list ...
6 files to consider
._MyDirectory
1104 100% 0.00kB/s 0:00:00 (xfer#1, to-check=5/6)
MyDirectory/._file1.dmg
1430 100% 34.06kB/s 0:00:00 (xfer#2, to-check=3/6)
MyDirectory/._file2.dmg
1430 100% 27.38kB/s 0:00:00 (xfer#3, to-check=2/6)
copyfile(.._MyDirectory.drJHX3,./MyDirectory, COPYFILE_UNPACK) failed:45
copyfile(MyDirectory/.._file1.dmg.PQTcsU,MyDirectory/file1.dmg, COPYFILE_UNPACK) failed:45
rsync: rename "/Volumes/Drobo5N/path/to/MyDirectory/.._file1.dmg.PQTcsU" -> "MyDirectory/._file1.dmg": No such file or directory (2)
copyfile(MyDirectory/.._file2.dmg.gx7VTP,MyDirectory/file2.dmg, COPYFILE_UNPACK) failed:45
rsync: rename "/Volumes/Drobo5N/path/to/MyDirectory/.._file2.dmg.gx7VTP" -> "MyDirectory/._file2.dmg": No such file or directory (2)
sent 4369 bytes received 86 bytes 8910.00 bytes/sec
total size is 48176733 speedup is 10814.08
rsync error: some files could not be transferred (code 23) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/main.c(992) [sender=2.6.9]
Einige Fragen:
Warum erhalte ich diese copyfile(...) failed:45
Fehler?
Ich habe den Quellcode für copyfile.c gefunden , konnte aber nicht herausfinden, was den Fehler auslöst. Dort steht über COPYFILE_UNPACK:
COPYFILE_UNPACK ist offensichtlich das Rückgängigmachen von COPYFILE_PACK. Das Ziel dort ist es, eine Apple Double-Datei zu nehmen und sie in eine normale Datei umzuwandeln (mit Data Fork, Resource Fork, Modi, erweiterten Attributen, ACLs usw.).
Meine Fehlermeldung sagt etwas über aus COPYFILE_UNPACK
, aber was bedeutet das und wie kann ich den Fehler beheben?
rsync
erstellt der Befehl die Punktdatei wie ._file1.dmg
? rsync
erfolgreichem Abschluss sehe ich immer noch die Punktdatei im synchronisierten Zielverzeichnis (/Volumes/Drobo5N/path/to/) zusätzlich zur eigentlichen synchronisierten Datei. Warum das?rsync
erstellt man Erweiterungen wie .drJHX3
? Ist das ein temporärer Name?PS: Entschuldigung, falls die Frage woanders gestellt wurde. Ich habe mit rsync nach diesem Fehler gesucht, konnte aber keinen finden.
Ich habe die Option -E verwendet, um Aliasdateien unter macOS zu kopieren (da Aliasdateien ohne die Option -E als ausführbare Dateien kopiert werden). Die -E-Optionen funktionierten beim Kopieren der Alias-Dateien, verursachten aber den gleichen Fehler wie hier bei anderen Dateien ( COPYFILE_UNPACK failed:45
). Daher wird der Fehler wahrscheinlich durch die Verwendung der Option -E in macOS verursacht.
Glücklicherweise wurde das Problem behoben , indem Homebrew verwendet und ausgeführt wurde brew install rsync
, um eine neuere Version von zu installieren .rsync
Quelle: https://bayton.org/2018/07/how-to-update-rsync-on-mac-os-high-sierra/
Copyfile ist dafür verantwortlich, eine HFS+-Datei in zwei Dateien aufzuteilen. Der Data Fork- file
und ein Metadata Fork- ._file
. Das passiert, wenn Sie die -E
von Apple mitgelieferte Option verwenden rsync
. Ich habe keine Ahnung, warum es fehlschlägt. rsync
erstellt temporäre Dateien und verschiebt sie dann an ihren Platz.
mmmmmm
Alex Ixeras
Alex Ixeras
Alex Ixeras
fd0
/usr/include/sys/errno.h
-#define ENOTSUP 45 /* Operation not supported */
Swisher Süß