¿Cómo funcionan las sumas de comprobación de Time Machine?

7

La página de manual de tmutil menciona que Time Machine registra las sumas de comprobación de los archivos y enumera un comando verifychecksums . La página de manual es escasa en detalles, y no menciona sumas de comprobación. Me preguntaba si Time Machine verificará automáticamente estas sumas de comprobación (¿o si solo se verifican cuando se ejecuta verifychecksums manualmente)? La página también dice que las sumas de comprobación no se calculan de forma retroactiva, entonces, ¿cómo puedo listar los archivos en mi última copia de seguridad para la cual no hay una suma de comprobación disponible? Además, ¿se sabe qué algoritmo de suma de comprobación se utiliza?

 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.

Lo anterior es de la página man tmutil en OS X 10.11.6, tal vez la de macOS Sierra tiene más detalles.

    
pregunta Rinzwind 01.10.2016 - 10:10

1 respuesta

0

Tengo una respuesta parcial a mi propia pregunta: aunque no sé si alguna vez Time Machine verifica automáticamente las sumas de comprobación, a publicar en ycombinator.com me proporcionó una respuesta a mis otras dos preguntas. El algoritmo de suma de comprobación es el mismo que el predeterminado utilizado por la utilidad de Terminal cksum . Los valores de suma de comprobación se almacenan en la copia de seguridad de Time Machine como un atributo extendido de cada archivo ( com.apple.finder.copy.source.checksum#N ). Por lo tanto, para enumerar los archivos para los que no hay suma de comprobación disponible, debe buscar todos los archivos en la última copia de seguridad sin el atributo, utilizando un comando de Terminal como este:

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

Citaré la publicación original para obtener detalles sobre cómo verificar la suma de comprobación almacenada con la salida de cksum :

  

RJIb8RBYxzAMX9u el 18 de abril de 2017
  [...] En cualquier caso, el "hash" parece ser CRC32, almacenado en atributos extendidos:

$ 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
    
respondido por el Rinzwind 19.11.2018 - 21:12

Lea otras preguntas en las etiquetas