16 votos

Heredando la copia de seguridad de Time Machine: Objetivo no válido

Así que me he hecho con un nuevo y brillante Mac Mini, finalmente he transferido todo desde mi antigua máquina, y quiero reanudar las copias de seguridad utilizando mi disco de Time Machine existente y el historial de copias de seguridad (ya que básicamente he trasplantado la vieja máquina muerta a la nueva).

Sin embargo no consigo que Time Machine herede la copia de seguridad.

Cada vez que he hecho esto en el pasado, simplemente elegía el volumen como disco de copia de seguridad, y Time Machine me preguntaba automáticamente si quería heredar la copia de seguridad, pero esta vez no lo hace.

Así que probé a ejecutar el siguiente comando en su lugar:

sudo tmutil inheritbackup /Volumes/Backup/Backups.backupdb/Haravikks\ Mac

Pero me sale el siguiente error:

sudo tmutil inheritbackup /Volumes/Backup/Backups.backupdb/Haravikks\ Mac
Usage: tmutil inheritbackup machine_directory
       tmutil inheritbackup sparse_bundle
/Volumes/Backup/Backups.backupdb/Haravikks Mac: Invalid target

El sistema más antiguo ejecutaba Mojave, mientras que el nuevo es Catalina.

He probado a asociar todos mis discos en su lugar (usando tmutil associatedisk /path/to/volume /path/to/snapshot_volume Pero si inicio una copia de seguridad, Time Machine sigue empeñado en empezar de cero (para lo que no tengo espacio) y crea un nuevo directorio de máquina (Haravikks Mac 2), aunque el nombre de la máquina de mi nuevo ordenador sea idéntico.

También le he dado a Terminal acceso total al disco (porque de otra manera es básicamente inútil, gracias Apple) ya que eso suele ser el culpable de otras misteriosas operaciones inválidas, pero tmutil inheritbackup todavía no se lleva.

¿Hay alguna forma de averiguar por qué Time Machine/ tmutil ¿considerar inválido el directorio de mi antigua máquina? No hay nada en los registros, y tmutil no parece tener una bandera para dar una salida más verbosa (¿a menos que me lo haya perdido?).

En su defecto, ¿hay alguna forma de forzar a Time Machine a heredar un directorio de máquina?

Actualización : Por si sirve de ayuda, he estado notando que hay un montón de Spotlight relacionados ( mdworker ) en el disco, lo cual es extraño ya que no se está añadiendo nada a él. ¿Podría estar esto relacionado? De nuevo, esto no ocurría bajo Mojave (el disco se dormía entre las copias de seguridad).

Actualización 2 : Muchas gracias a klanomath por la explicación de dónde más almacena los datos Time Machine, aquí está el xattr -l listado de mi directorio de máquinas:

xattr -l /Volumes/Backup/Backups.backupdb/Haravikks\ Mac
LastModTime: 1574418303756056852
com.apple.backupd.BackupMachineAddress:
00000000  63 38 3A 62 63 3A 63 38 3A 61 33 3A 33 33 3A 31  |c8:bc:c8:a3:33:1|
00000010  31 00                                            |1.|
00000012
com.apple.backupd.HasRecoverySet: YES
com.apple.backupd.HostUUID:
00000000  39 31 31 42 33 43 37 46 2D 35 42 36 36 2D 35 39  |911B3C7F-5B66-59|
00000010  45 30 2D 39 36 41 43 2D 39 31 42 37 35 38 38 43  |E0-96AC-91B7588C|
00000020  44 43 38 46 00                                   |DC8F.|
00000025
com.apple.backupd.ModelID: Macmini4,1
com.apple.backupd.RecoverySetName: 0

0 votos

¿Y ni una palabra sobre cuál es el disco en el que se hace la copia de seguridad? ¿Es una unidad de disco completamente independiente? ¿Qué sistema de archivos está utilizando?

0 votos

@poige: He estado usando este disco para hacer copias de seguridad en Mojave sin problemas; es un Seagate Backup+ de 8tb, formateado HFS+ con el cifrado Core Storage activado. El problema claramente no es el disco o el sistema de archivos, ya que Catalina hará la copia de seguridad en él, simplemente no heredará el historial de copias de seguridad existente (6tb).

0 votos

@klanomath: Ese es exactamente el comando que utilicé (¿hay otra forma de hacerlo?); aunque no parece importar, ya que asociar un volumen de instantáneas con un volumen de origen no hace nada sin poder heredar el directorio de la máquina. Dicho esto, uno de mis volúmenes ha sido renombrado, y tmutil associatedisk ha cambiado el nombre del volumen asociado a la instantánea, por lo que tmutil reconoce claramente estos como válidos, sólo que no acepta el directorio de la máquina como tal.

11voto

klanomath Puntos 19587

Todos los UUIDs relevantes y otros metadatos de Time Machine se almacenan en /Library/Preferences/com.apple.TimeMachine.plist en el lado del anfitrión (el Mac del que hay que hacer una copia de seguridad). El archivo contiene (probablemente el antiguo) hostUUID (hardware), UUID del volumen de destino (volumen de copia de seguridad) y todos los IncludedVolumeUUIDs (volúmenes de origen). Para obtener los identificadores de volumen actuales utilice diskutil info diskXsY y el volumeID del volumen Mojave desaparecido está en el plist. El nuevo hostUUID (hardware) y MAC están disponibles en System Infomation.app > Hardware y Hardware > Ethernet-cards.

El com.apple.TimeMachine.plist puede ser rellenado con nuevos UUIDs en parte, también hay que coger el antiguo com.apple.TimeMachine.plist de la copia de seguridad.

Todos los metadatos relevantes de Time Machine en el lado del disco de destino (el volumen de copia de seguridad) se almacenan como atributos extendidos adjuntos a la carpeta de la máquina y a las instantáneas posteriores y a los volúmenes incluidos:

carpeta de la máquina

Ejemplo:

xattr -l /Volumes/Backup/Backups.backupdb/Haravikks\ Mac

y la(s) carpeta(s) del volumen (en la última copia de seguridad del antiguo Mac).

Ejemplo:

xattr -l /Volumes/Backup/Backups.backupdb/Haravikks\ Mac/2019-10-19-125832/Macintosh\ HD

(Esto es un montón de idas y venidas. Lo mejor es recoger todos los datos en alguna hoja de datos. Entonces es más fácil comparar todas las entradas plist/atributos extendidos y extraer los adecuados)

Después de asociar y heredar un directorio de máquina espero que varios UUIDs y otros datos sean iguales en el plist y los atributos extendidos por un lado y la información de hardware/disco del nuevo Mac por otro lado.

Esto es: BackupMachineAddress, HostUUID, ModelID y RecoveryPartitionVolumeUUID ( si está disponible) en la carpeta del host y varios UUID en el plist.


Si la herencia iniciada por tmutil falla, hay que utilizar la adopción forzosa (o casarse con un rico y conseguir una unidad de copia de seguridad más grande):

Para modificar los atributos extendidos hay que leer (para volver a aplicarlos más tarde) y eliminar las ACL de Backups.backupdb y Backups.backupdb/Haravikks\ Mac porque ambas carpetas están fuertemente protegidas. Luego aplique los nuevos atributos extendidos (parcialmente extraídos del plist y la nueva información de hardware) y restablezca las ACLs que eliminó anteriormente.

Para obtener las ACLs utilice ls -le [folder1|2] . Para eliminar las ACLs utilice sudo chmod -N [folder1] [folder2] . Para aplicar nuevos atributos extendidos utilice sudo xattr -w [ext_attr] [value] [/path/to/folder] .

Ejemplos:

Si ha encontrado un ModelID Macmini4,1 en los atributos extendidos de /Volúmenes/Copias de seguridad/Backups.backupdb/Haravikks\NMac pero el ModelID del nuevo Mac es Macmini8,1 tendrías que actualizarlo así:

sudo xattr -w com.apple.backupd.ModelID Macmini8,1 /Volumes/Backup/Backups.backupdb/Haravikks\ Mac

Para actualizar BackupMachineAddress (a Dirección MAC del nuevo Mac) y HostUUID (el Hardware-UUID del nuevo Mac) utilizan:

sudo xattr -w com.apple.backupd.BackupMachineAddress ac:87:b5:ca:c4:7a /Volumes/Backup/Backups.backupdb/Haravikks\ Mac
sudo xattr -w com.apple.backupd.HostUUID A7D80431-E567-389A-CC33-8321E461D431 /Volumes/Backup/Backups.backupdb/Haravikks\ Mac

Para restaurar las ACLs utilice sudo chmod +a 'group:everyone deny ... writeextattr,chown' [folder1] [folder2]

A continuación, desmonte el volumen de copia de seguridad. Vuelva a montar el volumen de copia de seguridad, abra el panel de preferencias de Time Machine y espere a que la ventana se llene con los volúmenes de destino adecuados.


Si publica todos los datos relevantes (que son muchos y de alguna manera privado ) pude elaborar todos los comandos correctamente.


¡Esto no se ha probado y se requiere un poco de "alegría de la experimentación", pero debería funcionar finalmente - de alguna manera (|)! Al menos arroja algo de luz sobre los archivos y atributos que Time Machine utiliza para determinar la validez de los directorios de la máquina de copia de seguridad y lo que debe cambiar para restablecer las asignaciones.

0 votos

Muchas gracias, esto es realmente ¡información útil! He añadido xattr -l La salida de mi directorio de la máquina a la pregunta original, no veo nada que se ve mal, los valores parecen todos consistentes con el viejo Mac-Mini que he utilizado temporalmente a la espera de mi nueva máquina. Sin embargo, no tengo otro disco de copia de seguridad de TM a mano para comparar. Salvo que el conjunto de recuperación está mal identificado como 0 (sólo carpeta en .RecoverySets fue 1 ) que ya he corregido, pero que no ha supuesto ninguna diferencia hasta ahora.

0 votos

@Haravikk Tu ext_attr publicado revela que el dir de la máquina no fue heredado con éxito: Después de una herencia exitosa yo hubiera esperado que el ModelID fuera Macmini8,1. Tendrías que reemplazar ModelID (y los otros tres IDs con los valores actuales (del nuevo Mac mini) manualmente. Lo mismo con xattr -l /Volumes/Backups/Backups.backupdb/Haravikks\ Mac/[fecha]/Macintosh\ HD. Es necesario hacer una copia de seguridad de todos los metadatos (copiar la salida de Terminal y pegarla en un archivo de texto).

0 votos

No hace falta, gracias a la información que has dado he conseguido forzar los valores correctos en los atributos extendidos de mi directorio de la máquina, ¡y Time Machine vuelve a hacer copias de seguridad! Voy a conceder la recompensa completa, pero para completar la respuesta ¿podrías añadir una breve guía de cómo insertar el BackupMachineAddress , ModelID y HostUUID valores, sólo para completar? Si lo prefieres, puedo editarlos yo mismo, o tal vez sería mejor una respuesta separada como una posible solución (tu información es el punto de partida para otros que no tengan exactamente el mismo problema)

8voto

Haravikk Puntos 332

Basándome en la información proporcionada en la respuesta de @klanomath, pude encontrar una solución específica para mi caso exacto (otros pueden diferir).

En mi caso el problema eran los atributos extendidos adjuntos al directorio de la máquina, por alguna razón a Time Machine no le gustaban. Sin embargo, después de forzar los valores correctos pude solucionarlos.

Si crees que estás experimentando el mismo problema, los siguientes pasos deberían ayudarte a resolverlo. Antes de empezar necesitarás cierta información, que puedes encontrar yendo al menú Apple -> Acerca de este Mac y haciendo clic en Informe del sistema:

  • ModelID : El modelo de su Mac, que se encuentra en Hardware, como Model Identifier Por ejemplo, el mío es Macmini8,1 para un Mac-Mini de 2018.
  • HostUUID : El identificador único de su sistema, también bajo Hardware como Hardware UUID el valor se asemeja: 12345678-1234-1234-1234-1234567890abcd .
  • Dirección de la máquina : Este es otro identificador de hardware para su sistema utilizado para la red; en Red seleccione su conexión de red principal (normalmente ethernet/en0 si es por cable, o wifi/en1 si es inalámbrica). En esta sección debería ver una entrada para ARPResolvedHardwareAddress ; la dirección de su máquina es el valor que se asemeja a 12:34:56:78:90:ab . Verá entradas similares en la dirección MAC, pero puede no ser la misma.

Ahora realiza los siguientes pasos:

  1. Abrir Terminal.app
  2. Navegue hasta su volumen de copia de seguridad ( cd /Volumes/Backup/Backups.backupdb sustituyendo la ruta de acceso según corresponda).
  3. Obtenga los atributos actuales del directorio de su máquina con xattr -l "Haravikks Mac" (sustituya el nombre correcto del directorio de su máquina). Guárdelos en algún lugar, por si se equivoca.
  4. Elevar a Root (esto hará que la ejecución de los siguientes comandos sea mucho más fácil, pero tenga cuidado al hacerlo) utilizando el comando sudo su se le pedirá su contraseña. Si no está ejecutando en una cuenta de administrador, puede cambiar a una con su admin primero (sustituya el nombre corto de su cuenta de administrador).
  5. Primero vamos a establecer el ID del modelo con: /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass xattr -w 'com.apple.backupd.ModelID' 'Macmini8,1' "Haravikks Mac" asegurándose de sustituir el ID de su modelo y el nombre del directorio de la máquina.
  6. A continuación, estableceremos la dirección de la máquina: /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass xattr -x -w 'com.apple.backupd.BackupMachineAddress' "$(printf '%s\0' '12:34:56:78:90:ab' | xxd -p)" "Haravikks Mac" de nuevo sustituir sus propios valores. Tenga en cuenta el uso de printf aquí, esto es para asegurar que el valor está terminado en cero*.
  7. Por último, establezcamos el UUID del host: /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass xattr -x -w 'com.apple.backupd.HostUUID' "$(printf '%s\0' '12345678-1234-1234-1234-1234567890abcd' | xxd -p)" "Haravikks Mac" intercambiando por sus propios valores. Nuevamente estamos usando printf para terminar con un carácter nulo.
  8. Si ya has configurado la unidad como destino en Time Machine, no deberías tener que hacer nada más. Si no, añádelo ahora, si todo ha ido bien te no lo hará se le pida que herede (pero si lo hace, acepte, ya que significa que estuvo lo suficientemente cerca).
  9. Si es necesario, utilice tmutil associatedisk para volver a vincular los volúmenes cuyo ID puede haber cambiado (si se trata de una máquina nueva, o se ha borrado una unidad, habrá que asociarlos).
  10. Realice una copia de seguridad para asegurarse de que todo funciona ahora como se espera.
  11. Para salir de la terminal limpiamente puedes introducir el comando exit para cerrar la sesión de Root (haga esto una segunda vez si tuvo que usar su <user> primero), momento en el que se puede salir de forma normal.

NOTA : Estamos utilizando la herramienta de derivación de Time Machine (en TMSafetyNet.kext ) para evitar la seguridad adicional que normalmente impide la modificación de los datos de Time Machine. Ten mucho cuidado al usar esto (no lo uses para trastear con el contenido de tus copias de seguridad).

NOTA 2 : Si obtienes el error "Operación no permitida" mientras ejecutas cualquiera de los comandos, significa que necesitas ir a Preferencias del Sistema -> Seguridad y Privacidad, en la pestaña de Privacidad encuentra Acceso total al disco, y asegúrate de concederlo a Terminal (márcalo si está ahí, o añádelo con el botón más). Tendrás que salir y volver a abrir Terminal después de hacer esto, así que asegúrate de recordar dónde estabas en los pasos anteriores.

NOTA 3 : *Puede que no sea necesario terminar en cero BackupMachineAddress y HostUUID pero así es como se estructuran los valores suministrados por la propia Time Machine, por lo que, para completar, mantengo este comportamiento.

Si bien esta es la respuesta correcta para mi caso específico de "Objetivo no válido", de mi búsqueda parece que hay un montón de casos similares, pero no idénticos, por lo que mi respuesta puede no ayudar con todos ellos.

La respuesta de Klanomath me proporcionó toda la información que necesitaba para encontrar mi propia solución específica, por lo que la he marcado como la respuesta correcta, espero que ayude a otros, y por favor, siéntase libre de añadir respuestas adicionales si es capaz de resolver problemas similares que también dan errores de "Objetivo no válido".

1 votos

Gran respuesta, esto resume bien la respuesta anterior. Sugerencia: poner un byte nulo en un arg usando la sustitución de procesos así no funcionará en bash. Debes convertirlo a hexadecimal usando xxd, y luego pasarlo a xattr -w -x. Por ejemplo xattr -x -w mykey "$(printf "%s\0" myval | xxd -p)" myfile

1 votos

Huh, parece ser un bash ¿una peculiaridad específica? O al menos zsh no se comporta así (los bytes nulos se conservan). En cualquier caso, he editado los comandos afectados, ¡gracias por hacérmelo saber!

0 votos

Dang. Conceder acceso total al disco era lo que finalmente necesitaba para que esto funcionara. ¡¡¡Gracias!!!

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