Leí la pregunta de @SwisherSweet sobre la manera más rápida y segura de copiar datos masivos de una unidad externa a otra , junto con la excelente respuesta de @GrahamMiln .
Estoy en una situación similar en la que quiero copiar datos de un HD externo conectado Firewire 800 a Drobo 5N, que está conectado al enrutador al que está conectado el iMac: ExternalHd — iMac — Router —
Drobo5N
Ejecuté el comando ( sudo rsync -vaE --progress /Volumes/SourceName /Volumes/DestinationName
) y funciona en parte, pero en ocasiones aparece el siguiente error (inserté algunos saltos de línea para una mejor legibilidad):
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]
Algunas preguntas:
¿ Por qué recibo estos copyfile(...) failed:45
errores?
Encontré el código fuente de copyfile.c , pero no pude averiguar qué desencadena el error. Allí dice sobre COPYFILE_UNPACK:
COPYFILE_UNPACK es la anulación de COPYFILE_PACK, obviamente. El objetivo allí es tomar un archivo Apple Double y convertirlo en un archivo normal (con bifurcación de datos, bifurcación de recursos, modos, atributos extendidos, ACL, etc.).
Mi mensaje de error dice algo sobre COPYFILE_UNPACK
, pero ¿qué significa y cómo puedo solucionar el error?
rsync
comando crea el archivo de puntos como ._file1.dmg
? rsync
se completa con éxito, sigo viendo el archivo de puntos en el directorio de destino sincronizado (/Volumes/Drobo5N/path/to/) además del archivo sincronizado real. ¿Porqué es eso?rsync
crea extensiones como .drJHX3
? ¿Es ese un nombre temporal?PD: Lo siento si esto se ha preguntado en otro lugar. Busqué este error usando rsync, pero no pude encontrar ninguno.
Estaba usando la opción -E para copiar archivos de alias en macOS (como sin la opción -E, los archivos de alias se copian como archivos ejecutables). Las Opciones -E funcionaron para copiar los archivos Alias, pero causaron el mismo error que aquí en otros archivos ( COPYFILE_UNPACK failed:45
). Por lo tanto, el error probablemente se deba al uso de la opción -E en macOS.
Afortunadamente, usar Homebrew y ejecutar brew install rsync
para instalar una versión más reciente de rsync
solucionó el problema.
Fuente: https://bayton.org/2018/07/how-to-update-rsync-on-mac-os-high-sierra/
Copyfile es responsable de dividir un archivo HFS+ en dos archivos. La bifurcación de datos file
y una bifurcación de metadatos ._file
. Eso sucede cuando usas la -E
opción con el Apple suministrado rsync
. No tengo idea de por qué está fallando. rsync
crea archivos temporales y luego los mueve a su lugar.
mmmmmm
Alex Ixeras
Alex Ixeras
Alex Ixeras
fd0
/usr/include/sys/errno.h
-#define ENOTSUP 45 /* Operation not supported */
dulce dulce