¿Existe una forma más rápida de copiar archivos de máquina del tiempo de un disco a otro?

15

Estoy tratando de mover mis archivos de copia de seguridad de la máquina del tiempo en Backups.backupdb a otra unidad. Inicié una copia de archivo durante la noche (b / c vi que OSX tardó una eternidad en prepararse para la copia ... básicamente estaba contando los archivos durante horas). Por la mañana vi que solo se copiaron ciertas copias de seguridad (carpetas con fechas). Luego intenté copiar sobre los que no se copiaron ... pero el sistema operativo no me permitió hacer eso. Obtuve el error "No se puede completar la operación porque los elementos de copia de seguridad no se pueden modificar". Por lo tanto, mi plan es eliminar la copia incompleta en la nueva unidad y luego intentar copiar nuevamente sobre la carpeta Backups.backupdb.

Bastante frustrante ¿Existe una forma más rápida de copiar estos archivos a través de un comando de terminal para que no realice toda la preparación de conteo de archivos?

Probablemente pueda cargar toda la carpeta y luego hacer una copia, pero ¿eso interferirá con alguno de los permisos del archivo, etc.? Lo único con este enfoque es que no tengo más espacio en mi volumen de origen para el tar.

ACTUALIZAR

He probado algunos de los métodos que la gente ha sugerido a continuación, específicamente usando la función de restauración de la Utilidad de Discos y me está dando algunos mensajes de error y resultados inesperados (al menos para mí). He intentado hacer la restauración de dos maneras:

  • Con "Borrar destino" marcado: cada vez (lo he intentado dos veces), cuando finaliza la restauración, aparece el mensaje "No se pudo restaurar - Operación no válida" y "No se pudo restaurar - Argumento no válido". Sin embargo, mi disco de destino obtiene una copia de mis archivos TM. Lo extraño es que mi disco de destino es EXACTAMENTE como mi disco de origen ... incluso el tamaño. Mi disco de destino es en realidad 1 TB, pero después de la restauración, se muestra como 200 GB cuando obtengo información del buscador. ¡Pero en Disk Utility, muestra una partición de 1 TB!

Luego intenté verificar / reparar el disco y obtuve:

    Tamaño de nodo de árbol B no válido
    Comprobación del volumen de HFS Plus registrado.
    Tamaño de nodo de árbol B no válido
    Reparación de volumen completa.
    Actualización de particiones de soporte de arranque para el volumen según sea necesario.
    Error: Disk Utility no puede reparar este disco. Haga una copia de seguridad de la mayor cantidad posible de sus archivos, vuelva a formatear el disco y restaure sus archivos respaldados.

No sé si se supone que debo verificar / reparar un disco TM ...

  • Con "Borrar destino" desmarcado: la restauración nunca comienza y obtengo:
    No se pudo restaurar: operación no permitida
Milesmeow
fuente
2
Creo que esto funciona bien: la otra pregunta aborda la carga de E / S de copiar los enlaces duros, pero está envuelta en la red y el recinto de la cápsula del tiempo, por lo que es un caso especial del problema general que se pregunta aquí.
bmike
Si puede actualizar a MacOS 10.13.4+, se ha solucionado el error que impedía que los alias / enlaces duros se copiaran en Finder. Lo intenté yo mismo para copiar un disco de Time Machine de respaldo a otro y funcionó perfectamente (y también fue bastante rápido). Más información aquí: apple.stackexchange.com/a/323691/261070 .
youngrrrr

Respuestas:

13

Una copia normal (o copia a través de rsync o ídem) no replicará una máquina del tiempo por completo, ya que convertirá dos directorios vinculados (como ocurre en las copias de seguridad de TM sucesivas sin cambios) en dos directorios separados.

La mejor manera es copiar todo el disco usando la Utilidad de Discos o la parte de copia en bloque de Carbon Copy Cloner y probablemente similar en SuperDuper .

usuario151019
fuente
1
Desde la página de manual de ditto: "ditto conserva los enlaces duros de archivos (pero no los enlaces duros de directorio) presentes en los directorios de origen", por lo que no hay ayuda aquí. Es Disk Utility o una herramienta como SuperDuper o CCC.
nohillside
@patrix Gracias - la página web man no dice nada al respecto - CCC usa ditto o rsync para copiar, así que solo hará esto si hace una copia en bloque help.bombich.com/kb/troubleshooting/…
user151019
Mi disco de origen solo contiene la copia de seguridad de Time Machine. Mi disco de destino contiene otros archivos. No quiero un clon de mi disco de origen. Solo quiero copiar los archivos de Time Machine en el disco de destino.
milesmeow el
3
Después de muchos intentos de copiar mis archivos TM a un nuevo disco, Disk Utility y Carbon Copy Cloner NO hicieron el truco. ¡SuperDuper lo hizo perfectamente en la primera ejecución y no redujo el tamaño de mi partición de destino!
milesmeow
2
¡Otra votación para SuperDuper! aquí. v3.2.4 copió con éxito una gran carpeta de copia de seguridad de Time Machine a un nuevo disco, en macOS 10.14.2 Mojave, sin que ocupara más espacio. (Lo que Finder no pudo hacer ...) Time Machine felizmente sigue usando el nuevo disco como si fuera el anterior.
gidds
5

Al migrar una unidad cifrada completa de Time Machine de 3 TB a una nueva de 8 TB en macOS 10.14, me encontré con todo tipo de problemas. Intentando hacer una restauración en la Utilidad de Discos con errores como "no se puede validar la fuente" o "Operación no permitida". Al intentar otras sugerencias en esta publicación y en otras, pude obtener nuevos y emocionantes mensajes de error como "El archivo de catálogo en la imagen / volumen está demasiado fragmentado", pero no hay copia.

Lo que funcionó al final, en la terminal:

  1. Borre el nuevo disco con la Utilidad de Discos, que coincida con el formato de la unidad de origen: MacOS Extendido (Registrado, Encriptado)
  2. Uso diskutil cs listen la terminal para obtener el tamaño exacto de bytes del volumen lógico en la unidad de edad, y el GUID del nuevo volumen lógico, así como los números de los discos de ambos, por ejemplo, disk4.
  3. Use el tamaño de byte exacto del paso 2 como el tamaño del nuevo volumen. En mi caso con una unidad de 3TB fue de 2,999,772,905,472 bytes:

    sudo diskutil cs resizeVolume $new_lv_guid 2999772905472
    
  4. Usando el pvcomando de homebrew, haga una copia en bloque de bajo nivel de los discos. Esto es muy parecido a usar dd, excepto que obtienes un medidor de progreso con ETA.

    Necesita obtener los números de disco de la diskutil cs listsalida. Ten cuidado. Es muy fácil sobrescribir accidentalmente su unidad de copia de seguridad completa con la nueva en blanco aquí.

    sudo sh -c "$(which pv) --buffer-size 50M -s 2999772905472 < /dev/rdisk${source} > /dev/rdisk${target}"
    

    Si obtiene un permiso denegado / error de operación no permitida aquí, vaya a Preferencias de seguridad y privacidad y agregue Acceso a disco completo para Terminal.app.

    Para mí, esto tomó alrededor de 10 horas, lo dejé correr durante la noche, pero pv, al menos, obtienes un medidor de progreso con un ETA.

  5. Ahora, expanda el volumen para ocupar todo el espacio restante en la unidad:

    sudo diskutil cs resizeVolume $new_lv_guid 0
    

    Esto me llevó ~ 3 horas, con aproximadamente 5 años de copias de seguridad. MacOS fscking pasó la mayor parte de ese tiempo .

Ahora puede disfrutar de su nueva y más espaciosa unidad Time Machine. Puede reutilizar el antiguo o guardarlo en un lugar seguro en caso de que le pase algo al nuevo disco.


Los pasos de cambio de tamaño parecen ser importantes; omitirlos dio como resultado una copia de archivo de 10 horas que produjo un volumen de 8TB que contenía un sistema de archivos de 3TB que no pude averiguar cómo cambiar el tamaño.


ACTUALIZACIÓN Una posible desventaja de este enfoque es que, debido a que es una copia bit por bit, los identificadores son los mismos entre el disco antiguo y el disco nuevo. Si conecto el disco completo anterior, Time Machine cree que es el disco nuevo, intenta realizar una copia de seguridad y comienza a eliminar las copias de seguridad antiguas para dejar espacio para las nuevas. Parece un buen enfoque para mover datos a un disco más grande donde luego se borrará el disco más viejo.

Andrés
fuente
¡Hola Andrew! Gracias por tomarse el tiempo para escribir esta guía paso a paso (y espero usarla para transferir mi copia de seguridad de 1TB a un disco de 4TB, que hasta ahora no ha tenido éxito porque Finder copió carpetas y archivos ocupa mucho más espacio en el nuevo disco que el original). Mi pregunta para usted es: ¿puedo hacer estos pasos sin el cs corestorage habilitado? Habilitar el almacenamiento central parece ser un PITA potencialmente innecesario , pero puede ser necesario debido al paso guid 3.
Michael Dautermann
@MichaelDautermann Core Storage es necesario para FileVault, que es extremadamente recomendable para las unidades de respaldo, con el fin de proteger su privacidad en caso de pérdida, robo o eliminación inadecuada.
Andrew
Me gustaría agregar que no pude copiar con el método mencionado. La razón fue que el sistema provocó que esta "operación no esté permitida". Después de una breve búsqueda, descubrí que necesito desactivar todas las funcionalidades SIP. Esto se puede hacer reiniciando macOS manteniendo presionado el comando + R y abriendo un terminal. Aquí debe deshabilitar escribiendo "csrutil disable". Con el siguiente reinicio pude copiar la copia de seguridad de TM
Oliver Koehler
@ Andrew mi versión es 10.14.6 y entiendo completamente el riesgo que ha mencionado. Sin embargo, no pude hacer dd o pv en mi TimeMachine - copia de seguridad sin desactivar SIP. Si hay otra forma, me encantaría saberlo.
Oliver Koehler el
Sigo recibiendo "pv: error de escritura: error de entrada / salida" al 99% (después de 30 horas, 3 intentos, así que realmente 90 horas). Los discos están desmontados. Las funciones SIP están deshabilitadas. Buscar en Google el error no viene con nada. Similar a la situación original (3 TB -> 8 TB). sudo sh -c "$(which pv) --buffer-size 50M -s 3000249008128 < /dev/rdisk3 > /dev/rdisk5"- el tamaño de 8tb se redimensionó previamente con éxitoResized Core Storage Logical Volume to 3,000,249,008,128 bytes
ks
2

¿Por qué no solo usar terminal?

cp -RnpP Backups.backupdb
  • -R recursivo
  • -n no sobrescribir (si quedan restos de copias existentes del intento anterior)
  • -p preservar ACL, permisos, fechas de creación / modificación, etc.
  • -P preservar los enlaces duros, no siga los enlaces duros o simbólicos.
Chaseholden
fuente
Esto no es verdad. Leer man cppara macOS. El cpcomando regular enviado con macOS no copia enlaces duros con -P. La página de manual en realidad dice "Tenga en cuenta que cp copia los archivos vinculados como archivos separados. Si necesita preservar los enlaces rígidos, considere usar tar (1), cpio (1) o pax (1) en su lugar".
chmac
0

Esta respuesta no se hará más rápido, pero descubrí que es una forma de copiar los datos correctamente mientras se preserva la desduplicación (enlaces duros) y los permisos. Como una ventaja adicional, uso esto para hacer un dmg comprimido del producto final para archivar.

  1. Con Disk Utilities, cree una imagen de disco que sea más grande que su directorio Backups.backupdb. También le sugiero que utilice una imagen de disco de paquete disperso para el formato de imagen y el disco duro para particiones. Después de montar esta imagen, obtenga información sobre ella y desmarque Ignorar propiedad en este volumen.

  2. Ahora apague Time Machine y, utilizando el buscador, copie la carpeta Backups.backupdb en la imagen montada. El buscador le pedirá permisos de superusuario para copiar los datos. Tome un trago o haga otra cosa por un tiempo.

  3. Cuando finalice la copia, asegúrese de que todo esté bien y desmonte la imagen. Desde la Utilidad de Discos, seleccione Convertir y convertir la imagen de paquete dispersa en una imagen comprimida. De nuevo, esto puede llevar un tiempo.

Debes terminar con dos copias de tu copia de seguridad de Time Machine, puedes eliminar la versión escasa del paquete y colocar el dmg en un lugar seguro como un archivo a tiempo.

Una cosa que no he probado con esto es hacer una restauración del sistema desde el dmg, pero sospecho que debería funcionar, mi objetivo era más para archivar los cambios incrementales de la máquina del tiempo y mantener la estructura de enlace duro.

También probé rsync y cp, pero no parecían mantener la estructura de enlace duro que terminaría haciendo x veces el tamaño, x siendo la cantidad de fechas que tenía en el pasado. Este método funcionó bien, pero nuevamente puede no obtener la velocidad de una solución de copia en bloque.

hanz
fuente
0

Apple tiene un tutorial oficial para esto: " Time Machine: Cómo transferir copias de seguridad de una unidad de copia de seguridad actual a una nueva unidad de copia de seguridad ".

Los pasos de alto nivel de esa página:

  1. Verifique el formato de su nueva unidad de respaldo
  2. Establezca permisos en su nueva unidad de respaldo
  3. Apague temporalmente Time Machine
  4. Copie sus datos de respaldo de su unidad original a su nueva unidad
  5. Configure Time Machine para usar su nuevo disco

Así es como la página recomienda hacer el paso de copia:

Copie sus datos de respaldo de su unidad original a su nueva unidad

  1. Abre una nueva ventana del Finder. En la barra lateral del Finder, haga clic en el icono de la unidad de copia de seguridad original.
  2. Abre una nueva ventana del Finder. En la barra lateral del Finder, haga clic en el icono de la nueva unidad de copia de seguridad.
  3. Arrastre la carpeta "Backups.backupdb" desde la unidad de copia de seguridad original al nivel superior de la nueva unidad de copia de seguridad.
  4. Ingrese un nombre de administrador y una contraseña, luego haga clic en Aceptar para comenzar el proceso de copia.

La copia de los datos de la copia de seguridad puede tardar un tiempo en completarse, dependiendo del tamaño de la copia de seguridad.

David Andreoletti
fuente
55
Por mi parte, estoy mirando esta pregunta porque después de ese tutorial (que sugiere copiar la carpeta de copia de seguridad con Finder) y dejarlo ejecutándose durante la noche, terminó con un problema de permiso con aproximadamente 500/940 gb copiados. Luego hice una sudo rsyncúltima noche, pero esta mañana encontré ERROR: out of memory in flist_expand [sender]y mi copia ahora es de ~ 600 gb. No he decidido qué hacer a continuación, pero sospecho que la mayoría de las personas que leen ya conocen el tutorial oficial.
PeterT
@PeterT Acabo de probar el tuto también y obtuve el mismo problema que tú. No estoy seguro de que alguien supiera sobre el tutorial, de lo contrario, alguien lo habría mencionado aquí y el resultado que lo siguió. Ahora, la gente sabe que no vale la pena intentarlo.
David Andreoletti
1
Usar el buscador para copiar la carpeta toma una edad para construir la lista de archivos y luego falla de todos modos con suficiente espacio en disco, por lo que debe calcularse mal.
malhal
1
Ese es exactamente mi problema. El volumen TM original es de 550 GB, el nuevo era de 600 GB. Aún así, Mojave se quejó de espacio insuficiente en el volumen. Estoy usando ahora SuperDuper! en modo "Copia de seguridad - todos los archivos".
Markus Rudel
1
El tutorial de Apple falló para mí, en macOS Mojave 10.14.2. Traté de copiar un archivo de respaldo de 3TB a una unidad de 8TB; Finder pasó casi 5 días copiando (diciendo "faltan 5 segundos" para la mayor parte de eso), antes de darse por vencido y quejarse de que la unidad estaba llena. Y lo fue, a pesar de que solo había copiado aproximadamente 2/3 de las copias de seguridad. Claramente, no está preservando los enlaces duros sino creando nuevas copias de cada uno. Entonces esta respuesta no es actualmente correcta.
Gidds
0

+1 para utilidades de disco, demasiado largo para comentarios:

12.250.329 archivos evaluados, 10.408.594 archivos copiados. Velocidad efectiva de copia 8,68 MB / s.

para clonar una unidad de copia de seguridad magnética de 2 TB con varios años de copias de seguridad a través de SuperDuper! este año.

Esto tardó 63 horas en total (SuperDuper restablecería su reloj cada 24 horas, por lo que mostró 15:04:43 al final) en lugar de una copia del Finder que cancelé después de aproximadamente 4 días y una cuarta parte de los archivos.

Obviamente, el disco magnético no fue la razón de este tiempo. La razón por la que Finder copia el bloqueo en discos de copia de seguridad de larga duración es la gran cantidad de enlaces simbólicos en cascada en archivos sin cambios, especialmente para muchos archivos pequeños como los índices Git.

Paracetamol
fuente
0

rsync es una gran utilidad para cosas como esta. Generalmente lo uso para cosas como esta. En este caso, podría usar las banderas -aP. Creo que parte de -a ("archivo") también es para preservar permisos, ACL y similares, pero no estoy seguro.

IIRC, también hay una opción --delete que le permite eliminar el archivo fuente una vez que se ha copiado con éxito en el destino. Sin embargo, desconfiaría de usar eso, generalmente hago un espejo completo sin la opción --delete, luego volveré a ejecutar el comando con las opciones -c y --delete. -c es una suma de verificación, por lo que verifica todos los archivos que ha descargado con todos los que están en la fuente a través de la suma de verificación, luego elimina la fuente si hay una coincidencia, de lo contrario, vuelve a copiar o reanuda la copia según sea el caso.

EDITAR: utilice la bandera -H en este caso según los comentarios, para preservar los enlaces duros.

Harv
fuente
55
rsync no mantiene enlaces duros en los directorios. Copiar una copia de seguridad de TM duplicará muchos directorios
nohillside
1
@patrix: puedo confirmar esto. Lo he intentado Los enlaces duros del directorio son casi exclusivos de HFS +, y rsync no los entiende.
Nombre falso el
3
-H, --hard-links conserva enlaces duros
Pete Ashdown
-2

Con los discos duros, cuando mueve múltiples archivos de una unidad, el lector se mueve hacia adelante y hacia atrás haciendo un ruido de clic aterrador, y disminuye la velocidad de transferencia significativamente, por ejemplo, un archivo con usb 2.0 se mueve a 30 mbps en mi computadora desde 2 discos duros externos, pero 2 archivos se mueven a 11 mbps. y 3 archivos se mueven a 6 mbps. etc. Los archivos zip se moverán más rápido que los archivos.

Jake Thomas
fuente
2
¿Cómo responde esto a la pregunta del OP?
fsb