17 votes

Héritage de la sauvegarde Time Machine : Cible non valide

Je me suis donc procuré un nouveau Mac Mini, j'ai enfin transféré tout ce qui se trouvait sur mon ancienne machine, et je veux recommencer à sauvegarder en utilisant mon disque Time Machine existant et l'historique des sauvegardes (puisque j'ai essentiellement transplanté la vieille machine morte sur la nouvelle).

Cependant, je n'arrive pas à faire en sorte que Time Machine hérite de la sauvegarde.

Chaque fois que je l'ai fait dans le passé, j'ai simplement choisi le volume comme disque de sauvegarde, et Time Machine m'a automatiquement demandé si je voulais hériter de la sauvegarde, mais il ne le fait pas cette fois-ci.

J'ai donc essayé d'exécuter la commande suivante à la place :

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

Mais je reçois l'erreur suivante :

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

L'ancien système fonctionnait sous Mojave, tandis que le nouveau est sous Catalina.

J'ai essayé d'associer tous mes disques à la place (en utilisant la fonction tmutil associatedisk /path/to/volume /path/to/snapshot_volume Mais si je commence une sauvegarde, Time Machine est toujours déterminé à repartir à zéro (ce pour quoi je n'ai pas d'espace) et crée un nouveau répertoire de machine (Haravikks Mac 2), même si le nom de machine de mon nouvel ordinateur est identique.

J'ai aussi déjà donné au terminal l'accès au disque complet (parce qu'il ne sert à rien autrement, merci Apple) car c'est généralement le coupable d'autres opérations invalides mystérieuses, mais tmutil inheritbackup ne veut toujours pas prendre.

Y a-t-il un moyen de savoir pourquoi Time Machine/ tmutil considère-t-il que le répertoire de mon ancienne machine n'est pas valide ? Il n'y a rien dans les journaux, et tmutil ne semble pas avoir d'indicateur pour donner une sortie plus verbeuse (à moins que je ne l'aie manqué ?).

Sinon, existe-t-il un moyen de forcer Time Machine à hériter d'un répertoire machine ?

Mise à jour : Au cas où ça pourrait aider, j'ai remarqué que beaucoup d'activités liées à Spotlight ( mdworker ) sur le disque, étrange puisque rien n'y est ajouté. Cela pourrait-il être lié ? Encore une fois, cela ne se produisait pas sous Mojave (le disque se mettait en veille entre les sauvegardes).

Mise à jour 2 : Merci beaucoup à klanomath pour l'explication de l'endroit où Time Machine stocke les données, voici l'explication. xattr -l pour le répertoire de ma machine :

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

11voto

klanomath Points 63400

Tous les UUIDs pertinents et autres métadonnées de Time Machine sont stockés dans /Bibliothèque/Préférences/com.apple.TimeMachine.plist du côté de l'hôte (le Mac à sauvegarder) ! Le fichier contient (probablement l'ancien) hostUUID (matériel), l'UUID du volume de destination (volume de sauvegarde) et tous les IncludedVolumeUUIDs (volumes sources). Pour obtenir vos identifiants de volume actuels, utilisez diskutil info diskXsY et le volumeID du volume Mojave disparu est dans le plist. Les nouveaux hostUUID (matériel) et MAC sont disponibles dans System Infomation.app > Hardware et Matériel > Cartes Ethernet.

Le site com.apple.TimeMachine.plist peut être partiellement remplie de nouveaux UUIDs, vous devez également récupérer les vieux com.apple.TimeMachine.plist à partir de la sauvegarde.

Toutes les métadonnées Time Machine pertinentes du côté du disque de destination (le volume de sauvegarde) sont stockées en tant qu'attributs étendus attachés au dossier machine et aux instantanés ultérieurs ainsi qu'aux volumes inclus :

dossier de machine

Exemple :

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

et le(s) dossier(s) du volume (dans la dernière sauvegarde de l'ancien Mac).

Exemple :

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

(C'est beaucoup d'allers-retours. Le mieux est de rassembler toutes les données sur une feuille de données. Ensuite, il est plus facile de comparer toutes les entrées plist/attributs étendus et d'extraire les bons.)

Après avoir associé et hérité d'un répertoire de machine, je m'attends à ce que divers UUIDs et autres données soient égaux dans la plist et les attributs étendus d'une part et les informations sur le matériel/disque d'autre part. du nouveau Mac d'autre part.

C'est : BackupMachineAddress, HostUUID, ModelID et RecoveryPartitionVolumeUUID ( si disponible) sur le dossier de l'hôte et divers UUIDs dans la plist.


Si l'héritage initié par tmutil échoue, il faut recourir à l'adoption forcée (ou se marier riche et obtenir un disque de sauvegarde plus grand) :

Pour modifier les attributs étendus, vous devez lire (pour les réappliquer plus tard) et supprimer les ACL de Backups.backupdb et Backups.backupdb/Haravikks\ Mac car les deux dossiers sont fortement protégés. Appliquez ensuite de nouveaux attributs étendus (en partie extraits de la plist et des nouvelles informations matérielles) et rétablissez les ACL que vous avez supprimées précédemment.

Pour obtenir les ACLs, utilisez ls -le [folder1|2] . Pour supprimer les ACL, utilisez sudo chmod -N [folder1] [folder2] . Pour appliquer de nouveaux attributs étendus, utilisez sudo xattr -w [ext_attr] [value] [/path/to/folder] .

Exemples :

Si vous avez trouvé un ModelID Macmini4,1 dans les attributs étendus de /Volumes/Backup/Backups.backupdb/Haravikks\ Mac mais le ModelID du nouveau Mac est Macmini8,1, vous devriez le mettre à jour comme ceci :

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

Pour mettre à jour BackupMachineAddress (a Adresse MAC du nouveau Mac) et HostUUID (l'UUID matériel du nouveau Mac) :

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

Pour restaurer les ACL, utilisez sudo chmod +a 'group:everyone deny ... writeextattr,chown' [folder1] [folder2]

Ensuite, démontez le volume de sauvegarde. Remontez le volume de sauvegarde, ouvrez le PrefPane de Time Machine et attendez que la fenêtre soit remplie avec le(s) bon(s) volume(s) de destination.


Si vous postez toutes les données pertinentes (ce qui est beaucoup et en quelque sorte privé ) Je pourrais élaborer toutes les commandes correctement.


Cette méthode n'a pas été testée et il faut un peu de "joie de l'expérimentation", mais elle devrait finalement fonctionner - d'une manière ou d'une autre (|) ! Au moins, cela éclaire un peu les fichiers et les attributs que Time Machine utilise pour déterminer la validité des répertoires de la machine de sauvegarde et ce qu'il faut changer pour rétablir les affectations.

9voto

Haravikk Points 1128

En m'appuyant sur les informations fournies dans la réponse de @klanomath, j'ai pu trouver une solution spécifique à mon cas précis (d'autres peuvent différer).

Dans mon cas, le problème venait des attributs étendus attachés au répertoire de la machine, pour une raison quelconque, Time Machine ne les aimait pas. Cependant, après avoir forcé les valeurs correctes, j'ai pu les résoudre.

Si vous pensez que vous rencontrez le même problème, les étapes suivantes devraient vous aider à le résoudre. Avant de commencer, vous aurez besoin de certaines informations, que vous pouvez trouver en allant dans le menu Apple -> À propos de ce Mac et en cliquant sur Rapport système :

  • ModelID : Le modèle de votre Mac, trouvé sous Matériel, comme Model Identifier Par exemple, le mien est Macmini8,1 pour un Mac-Mini de 2018.
  • HostUUID : L'identifiant unique de votre système, également sous l'appellation Hardware as Hardware UUID la valeur ressemble : 12345678-1234-1234-1234-1234567890abcd .
  • Adresse de la machine : Il s'agit d'un autre identifiant matériel pour votre système utilisé pour la mise en réseau ; sous Réseau, sélectionnez votre connexion réseau principale (généralement ethernet/en0 si câblé, ou wifi/en1 si sans fil). Dans cette section, vous devriez voir une entrée pour ARPResolvedHardwareAddress ; l'adresse de votre machine est la valeur qui ressemble à 12:34:56:78:90:ab . Vous verrez des entrées similaires sous l'adresse MAC, mais il se peut que ce ne soit pas la même.

Effectuez maintenant les étapes suivantes :

  1. Ouvrez Terminal.app
  2. Naviguez dans votre volume de sauvegarde ( cd /Volumes/Backup/Backups.backupdb en substituant le chemin comme il convient).
  3. Obtenez les attributs actuels du répertoire de votre machine avec xattr -l "Haravikks Mac" (remplacez le nom correct du répertoire de votre machine). Sauvegardez-les quelque part, au cas où vous feriez une erreur.
  4. Passez au niveau Root (ce qui facilitera l'exécution des commandes suivantes, mais faites attention en le faisant) en utilisant la commande sudo su il vous sera demandé de saisir votre mot de passe. Si vous n'utilisez pas de compte administrateur, vous pouvez en obtenir un avec su admin d'abord (remplacez le nom court de votre compte administrateur).
  5. Tout d'abord, définissons l'ID du modèle avec : /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass xattr -w 'com.apple.backupd.ModelID' 'Macmini8,1' "Haravikks Mac" en veillant à substituer votre propre ID de modèle et le nom du répertoire de la machine.
  6. Ensuite, nous allons définir l'adresse de la machine : /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" Encore une fois, substituez vos propres valeurs. Notez l'utilisation de printf ici, il s'agit de s'assurer que la valeur est terminée par un zéro*.
  7. Enfin, définissons l'UUID de l'hôte : /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" en échange de vos propres valeurs. Encore une fois, nous utilisons printf pour se terminer par un caractère nul.
  8. Si vous avez déjà défini le disque comme destination dans Time Machine, vous n'avez rien à faire de plus. Sinon, ajoutez-le maintenant, si tout s'est bien passé vous ne le fera pas On ne vous demandera pas d'hériter (mais si on vous le demande, acceptez, car cela signifie que vous étiez assez proche).
  9. Si nécessaire, utilisez tmutil associatedisk pour relier les volumes dont l'ID a pu changer (s'il s'agit d'une nouvelle machine, ou si vous avez effacé un disque, il faudra les associer).
  10. Exécutez une sauvegarde pour vous assurer que tout fonctionne comme prévu.
  11. Pour quitter le terminal proprement, vous pouvez entrer la commande exit pour vous déconnecter de Root (faites-le une deuxième fois si vous avez dû utiliser la fonction su <user> d'abord), à partir duquel vous pouvez quitter comme d'habitude.

NOTE : Nous utilisons l'outil de contournement de Time Machine (en TMSafetyNet.kext ) pour éviter la sécurité supplémentaire qui empêche normalement la modification des données Time Machine. Soyez très prudent lorsque vous utilisez cette fonction (ne l'utilisez pas pour modifier le contenu de vos sauvegardes).

NOTE 2 : Si vous obtenez l'erreur "Operation not permitted" (opération non autorisée) en exécutant l'une des commandes, cela signifie que vous devez aller dans Préférences système -> Sécurité et confidentialité, sous l'onglet Confidentialité, trouvez l'accès au disque complet, et assurez-vous d'accorder cet accès à Terminal (cochez-le s'il est là, ou ajoutez-le avec le bouton plus). Vous devrez quitter et rouvrir Terminal après avoir fait cela, alors assurez-vous de vous rappeler où vous en étiez dans les étapes ci-dessus.

NOTE 3 : *Il se peut qu'il ne soit pas nécessaire d'annuler la fin de l'histoire. BackupMachineAddress y HostUUID mais c'est ainsi que les valeurs fournies par Time Machine sont structurées, donc par souci d'exhaustivité, je conserve ce comportement.

Bien qu'il s'agisse de la réponse correcte pour mon cas spécifique de "cible non valide", il semble, d'après mes recherches, qu'il existe un grand nombre de cas similaires, mais non identiques, de sorte que ma réponse peut ne pas être utile dans tous les cas.

La réponse de Klanomath a fourni toutes les informations dont j'avais besoin pour trouver ma propre solution spécifique, c'est pourquoi je l'ai marquée comme étant la bonne réponse. J'espère qu'elle aidera d'autres personnes, et n'hésitez pas à ajouter d'autres réponses si vous êtes en mesure de résoudre des problèmes similaires qui donnent également des erreurs "Invalid Target".

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X