10 votos

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

La página de manual de tmutil menciona que Time Machine registra las sumas de comprobación de los archivos, y enumera un verifychecksums comando. La página de manual es escasa en detalles, y no menciona las sumas de comprobación. Me preguntaba si Time Machine verifica alguna vez automáticamente estas sumas de comprobación (o si sólo 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, así que ¿cómo puedo enumerar los archivos de mi última copia de seguridad para los que no hay 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 tmutil página man en OS X 10.11.6, tal vez la de MacOS Sierra tenga más detalles.

2voto

Graphain Puntos 143

Tengo una respuesta parcial a mi propia pregunta: aunque no sé si Time Machine llega a verificar automáticamente las sumas de comprobación, un puesto en ycombinator.com me proporcionó una respuesta a mis otras dos preguntas. El algoritmo de suma de comprobación es el mismo que el utilizado por defecto por la utilidad Terminal cksum . Los valores de la 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 listar los archivos para los que no hay suma de comprobación disponible, usted buscaría todos los archivos de la última copia de seguridad sin el atributo, utilizando un comando de Terminal como éste:

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 /

Citaré el puesto original para más detalles sobre la comprobación de la suma de comprobación almacenada con la salida de cksum :

RJIb8RBYxzAMX9u el 18 abr 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

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