6 votos

errores de copyfile y archivos de puntos usando rsync

He leído la pregunta de @SwisherSweet del La forma más rápida y segura de copiar datos masivos de un disco externo a otro junto con la de @GrahamMiln excelente respuesta .

Estoy en una situación similar en la que quiero copiar datos de un hd externo conectado por Firewire 800 al Drobo 5N, que está conectado al router al que está conectado el iMac:
ExternalHd - iMac - Router - Drobo5N

He ejecutado el comando ( sudo rsync -vaE --progress /Volumes/SourceName /Volumes/DestinationName ) y funciona en parte, pero en ocasiones me sale el siguiente error (he insertado algunos saltos de línea para mejorar la 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:

  1. ¿Por qué me salen estos copyfile(...) failed:45 ¿errores?
    Encontré el código fuente de copyfile.c pero no he podido encontrar lo que provoca el error. Allí se habla de COPYFILE_UNPACK:

    COPYFILE_UNPACK es la anulación de COPYFILE_PACK, obviamente. El objetivo es tomar un archivo doble de Apple, y convertirlo en un archivo normal (con fork de datos, fork de recursos, modos atributos extendidos, ACLs, etc.).

    Mi mensaje de error dice algo así como COPYFILE_UNPACK pero, ¿qué significa significa y cómo puedo solucionar el error?

  2. ¿Por qué el rsync crear el archivo de puntos como ._file1.dmg ?
    Cuando rsync completa con éxito sigo viendo el archivo punto en el directorio de destino sincronizado (/Volúmenes/Drobo5N/ruta/a/) además del archivo real sincronizado. ¿A qué se debe esto?

  3. ¿Por qué rsync crear extensiones como .drJHX3 ? ¿Es un nombre temporal?


P.D.: Perdona si esto ya se ha preguntado en otro sitio. He buscado este error usando rsync, pero no he podido encontrar ninguno.

4voto

lt8480 Puntos 21

Estaba utilizando la opción -E para copiar los archivos de alias en MacOS (ya que sin la opción -E los archivos de alias se copian como archivos ejecutables). La opción -E funcionó para copiar los archivos Alias, pero causó el mismo error que aquí en otros archivos ( COPYFILE_UNPACK failed:45 ). Por lo tanto, parece que el error es probablemente causado por el uso de la opción -E en MacOS.

Afortunadamente utilizando Homebrew y corriendo brew install rsync para instalar una versión más reciente de rsync arregló el problema.

Fuente: https://bayton.org/2018/07/how-to-update-rsync-on-mac-os-high-sierra/

2voto

Michael Zhou Puntos 167

Copyfile se encarga de dividir un archivo HFS+ en dos archivos. El tenedor de datos file y un tenedor de metadatos- ._file . Eso ocurre cuando se utiliza el -E con la opción suministrada por Apple rsync . No tengo ni idea de por qué está fallando. rsync sí crea archivos temporales y luego los mueve a su lugar.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X