10 votes

Comment fonctionnent les sommes de contrôle de Time Machine ?

La page de manuel de tmutil mentionne que Time Machine enregistre les sommes de contrôle des fichiers, et liste une verifychecksums commande. La page de manuel est peu détaillée, et ne mentionne pas les sommes de contrôle. Je me demandais si Time Machine vérifie automatiquement ces sommes de contrôle (ou si elles ne sont vérifiées que lorsque vous exécutez la commande verifychecksums manuellement) ? La page indique également que les sommes de contrôle ne sont pas calculées rétroactivement, alors comment puis-je lister les fichiers de ma dernière sauvegarde pour lesquels aucune somme de contrôle n'est disponible ? Par ailleurs, sait-on quel algorithme de somme de contrôle est utilisé ?

 verifychecksums path ...
         Compute a checksum of data contained within a backup and verify
         the result(s) against checksum information computed at the time
         of backup.

         No output is generated for matching checksums. Issues are
         reported using the following legend:

             !    The file's current checksum does not match the expected
                  recorded checksum.
             ?    The file's recorded checksum is invalid.

         Beginning in OS X 10.11, Time Machine records checksums of files
         copied into snapshots. Checksums are not retroactively computed
         for files that were copied by earlier releases of OS X.

Ce qui précède est tiré du tmutil La page de manuel dans OS X 10.11.6, peut-être que celle dans MacOS Sierra a plus de détails.

2voto

Robert Wilkinson Points 570

J'ai une réponse partielle à ma propre question : bien que je ne sache pas si Time Machine vérifie automatiquement les sommes de contrôle, une post sur ycombinator.com m'a fourni une réponse à mes deux autres questions. L'algorithme de checksumming est le même que celui utilisé par défaut par l'utilitaire Terminal cksum . Les valeurs de somme de contrôle sont stockées dans la sauvegarde Time Machine comme un attribut étendu de chaque fichier ( com.apple.finder.copy.source.checksum#N ). Ainsi, pour lister les fichiers pour lesquels aucune somme de contrôle n'est disponible, vous devez rechercher tous les fichiers de la dernière sauvegarde sans l'attribut, en utilisant une commande Terminal comme celle-ci :

find '/Volumes/Time Machine HD/Backups.backupdb/Mac/Latest' -type f -not -exec xattr -x -p 'com.apple.finder.copy.source.checksum#N' '{}' ';' -print 2>/dev/null | grep /

Je vais citer le poste original pour plus de détails sur la vérification de la somme de contrôle stockée par rapport à la sortie du programme cksum :

RJIb8RBYxzAMX9u le 18 avril 2017
[...] Dans tous les cas, le "hachage" semble être CRC32, stocké dans des attributs étendus :

$ xattr .inputrc
com.apple.finder.copy.source.checksum#N
com.apple.metadata:_kTimeMachineNewestSnapshot
com.apple.metadata:_kTimeMachineOldestSnapshot
$ xattr -px 'com.apple.finder.copy.source.checksum#N' .inputrc
26 E5 4A AB
$ cksum .inputrc
2873812262 65 .inputrc
$ printf '%x\n' "$(cksum .inputrc | cut -d ' ' -f 1)"
ab4ae526

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