Como forçar uma travessia profunda da Time Machine?

12

Após alguns pânico no kernel e uma desconexão a quente acidental da minha unidade Firewire Time Machine, eu gostaria de ter certeza de que minha Time Machine corresponde exatamente ao meu Macintosh HD, da mesma forma rsync -a. Existe uma maneira de forçar o Time Machine a fazer uma travessia profunda para verificar se o backup corresponde?

Saber como fazer isso no Leopard, Snow Leopard e Lion seria útil.

Blair Zajac
fonte
Uma opção extra segura (mas demorada e pouco cara) seria iniciar um novo disco de backup.
Thilo

Respostas:

7

Definir o destino do Time Machine como zero e redefini-lo para o mesmo local de antes obriga uma travessia profunda para mim. Você pode tentar reinicializar entre a alteração do destino e a recolocação para aumentar a chance de uma travessia profunda ser acionada.

Na pior das hipóteses, poderíamos mexer no modo de usuário único para destruir o diretório fseventsd em um momento seguro, quando o sistema não conta com isso para estar correto, de modo que você forçou um novo banco de dados que não corresponderá. Você provavelmente poderia excluir isso do lado da TM, mas eu removeria a cópia de inicialização como um pouco mais segura e menos propensa a destruir os dados necessários ou atrapalhar seu backup.

Se você está inclinado a usar a linha de comando / terminal, eu começaria tmutil compareantes mesmo de forçar uma travessia profunda. Ele compara explicitamente as coisas como elas existem agora até o último instantâneo e você pode forçar as coisas especificando um instantâneo externo específico se estiver preocupado com a comparação de um instantâneo local.

bmike
fonte
Como você define o destino do Time Machine para nada? tmutil setdestinationrequer um caminho como argumento, não é? (Ou acho que basta selecionar o disco de backup e clicar em "Remover disco" para desmarcá-lo?) Estou preso em uma posição terrível. O Time Machine está criando um novo backup sempre que tento fazer o backup (eu o cancelo antes que ele exclua meus backups antigos), então quero forçá-lo a executar uma travessia profunda para que ele veja que a maioria dos arquivos não foi alterada desde o último cópia de segurança.
22412 Gary
Ok, então eu apenas usei a interface do Time Machine e cliquei em "Remover disco" e a adicionei novamente. Ainda não tenho uma passagem profunda. Eu sei disso porque a fase "Preparando o backup" levou 12 minutos, quando ontem eu fiz uma travessia profunda quando demorou 120 minutos para concluir, que é exatamente o que eu quero agora, mas não consigo descobrir como fazê-lo.
Gary
1

A inicialização no modo de usuário único pode causar uma travessia profunda. Foi o que aconteceu uma vez, mas não em períodos subsequentes. A exclusão de /.fseventsd definitivamente será. Deve ser seguro fazer isso no modo de usuário único. A exclusão de /.fseventd no volume de backup não provocou uma travessia profunda para mim. (Meu sistema continuou como normal e nunca o recriou.)

tmutil compareé apenas um pouco preciso. Pareceu identificar com precisão os arquivos que não foram copiados no início. Acionei uma travessia profunda para corrigir isso, mas o Time Machine ainda não está fazendo backup de muitos arquivos. No entanto, tmutil compareagora afirma que não há um problema. Eu confiaria:

rsync --dry-run --itemize-changes --checksum --protect-args -aNHAXx --protect-decmpfs --fileflags --force-change --delete path/to/source_dir/ path/to/destination_dir/

Use /Volumes/<your time machine volume>/Backups.backupdb/<your machine name>/Latest/como caminho de origem ou destino. --itemize-changesvamos ver o que é diferente; '--checksum' diz rsyncpara comparar o conteúdo do arquivo, em vez de apenas o tempo de modificação e o tamanho do arquivo; e --dry-rundiz ao rsync para não fazer backup (na verdade, apenas nos diz o que faria). O restante dos argumentos são sinalizadores que informam ao rsync para tornar o destino idêntico à origem em todos os aspectos, incluindo metadados e status de compactação do HFS. Acredito que o Time Machine adiciona metadados da contabilidade que ele remove ao restaurar, portanto, rsyncpode encontrar alterações espúrias nos metadados.

yig
fonte
1

Resposta curta para pelo menos o macOS 10.13.6:

  1. Remova qualquer backup .inProgress do volume de backup. Isso pode exigir o uso da raiz, /bin/rm -rfportanto, prossiga com cuidado .

  2. Use o tmutil associatediskcomando para religar o volume de backup ao volume principal. Por exemplo:

sudo tmutil associado -a / "/ Volumes / Backups de Time Machine / Backups.backupdb / Macintosh HD / Mais recente / Macintosh HD"

Em seguida, inicie um backup no item de menu Time Machine. No meu caso, em vez de concluir a verificação em 10 minutos (claramente não é uma verificação completa) e mostrar um terabyte para backup, a verificação levou mais de 30 e o tamanho do backup correspondia ao que tmutil compareestava sendo dito.

Fundo:

Eu precisei forçar uma verificação profunda / completa após um instalador não autorizado (Reallusion) alterar as permissões de tudo em "/ Usuários / Compartilhados" (cerca de 1 terabyte de arquivos não modificados). Alterei todos eles novamente e tmutilconfirmei que a máquina do tempo não precisava mais fazer backup desses arquivos, mas um dos dois discos de backup insistia em usar alguma verificação em cache que dizia que sim.

Coisas que não funcionaram:

  • Removendo e Incluindo novamente o Volume de Backup das Preferências do Sistema

  • Limpando /.fseventsd

  • Instalando uma atualização do sistema

  • Removendo o backup .inProgress sem executar tmutil associated disk

  • Executando tmutil associated disksem remover .inProgress

  • Inicializando no modo de usuário único, montando / como leitura-gravação e tocando em um arquivo

Na maioria dos casos, os logs do backupd alegariam estar fazendo uma travessia profunda, mas levariam apenas alguns minutos e tentariam fazer backup de tudo. Aqui está o comando para monitorar backupdao vivo na 10.13 posteriormente:

fluxo de logs --style syslog --predicate 'senderImagePath contém [cd] "TimeMachine"' --info

Isso mostrará apenas novos eventos. Para logs dos últimos três dias:

log show --style syslog --predicate 'senderImagePath contém [cd] "TimeMachine"' --info - últimos 3d

Seth Noble
fonte