Existe uma maneira mais rápida de copiar arquivos da máquina do tempo de um disco para outro?

15

Estou tentando mover meus arquivos de backup da máquina do tempo em Backups.backupdb para outra unidade. Iniciei uma cópia de arquivo da noite para o dia (porque vi que o OSX demorava uma eternidade para se preparar para a cópia ... basicamente estava contando os arquivos por horas). De manhã, vi que apenas alguns backups (pastas com datas) eram copiados. Depois tentei copiar os que não foram copiados ... mas o sistema operacional não me permitiu fazer isso. Recebi o erro "A operação não pode ser concluída porque os itens de backup não podem ser modificados". Portanto, meu plano é excluir a cópia incompleta na nova unidade e tentar copiar novamente a pasta Backups.backupdb.

Muito frustrante. Existe uma maneira mais rápida de copiar esses arquivos por meio de um comando terminal para que ele não execute todo esse arquivo contando a preparação?

Provavelmente posso tarar a pasta inteira e depois fazer uma cópia, mas isso interferirá em alguma das permissões de arquivo etc.? A única coisa com essa abordagem é que não tenho mais espaço no meu volume de origem para o tar.

ATUALIZAR

Eu tentei alguns dos métodos sugeridos pelas pessoas abaixo, especificamente usando a função de restauração do Disk Utility e está me dando algumas mensagens de erro e resultados inesperados (pelo menos para mim). Eu tentei fazer a restauração de duas maneiras:

  • Com a opção "Apagar destino" marcada: Sempre que tentei duas vezes, quando a restauração terminar, vejo a mensagem "Não foi possível restaurar - Operação inválida" e "Não foi possível restaurar - Argumento inválido". No entanto, meu disco de destino recebe uma cópia dos meus arquivos da TM. O estranho é que meu disco de destino é EXATAMENTE como meu disco de origem ... até o tamanho. Meu disco de destino é de 1 TB, mas após a restauração, ele aparece como 200 GB quando eu recebo informações do localizador. Mas no Utilitário de Disco, ele mostra uma partição de 1 TB!

Eu tentei verificar / reparar o disco e obtive:

    Tamanho inválido do nó da árvore B
    Verificando o volume Journaled HFS Plus.
    Tamanho inválido do nó da árvore B
    Reparo do volume concluído.
    Atualizando partições de suporte de inicialização para o volume, conforme necessário.
    Erro: O Utilitário de Disco não pode reparar este disco. Faça o backup do maior número possível de arquivos, reformate o disco e restaure os arquivos de backup.

Não sei se devo verificar / reparar um disco da TM ...

  • Com "Apagar destino" desmarcado: a restauração nunca inicia e eu recebo:
    Não foi possível restaurar - Operação não permitida
milesmeow
fonte
2
Acho que isso funciona bem - a outra pergunta aborda a carga de E / S de copiar os links físicos, mas está envolvida na rede e no invólucro do time capsule, por isso é um caso especial do problema geral solicitado aqui.
bmike
Se você pode atualizar para o MacOS 10.13.4+, o bug que impedia a cópia de aliases / links físicos no Finder foi corrigido. Eu mesmo tentei copiar um disco do Time Machine de backup para outro e funcionou perfeitamente (e foi bem rápido também). Mais informações aqui: apple.stackexchange.com/a/323691/261070 .
youngrrrr 31/08/19

Respostas:

13

Uma cópia normal (ou cópia via rsync ou idem) não replicará completamente o Time Machine, pois converterá dois diretórios vinculados (como ocorre em backups sucessivos da TM sem alteração entre eles) em dois diretórios separados.

A melhor maneira é copiar todo o disco usando o Disk Utility ou a parte de cópia em bloco do Carbon Copy Cloner e provavelmente semelhante no SuperDuper .

user151019
fonte
1
Na página de manual ditto: "o ditto preserva os links físicos do arquivo (mas não os links físicos do diretório) presentes nos diretórios de origem", portanto não há ajuda aqui. É o Disk Utility ou uma ferramenta como SuperDuper ou CCC.
Nohillside
@patrix Graças - a página homem web não diz nada sobre isso - CCC usos ditto ou rsync para copiar isso só vai fazer isso se ele não copiar um bloco help.bombich.com/kb/troubleshooting/...
user151019
Meu disco de origem contém apenas o backup do Time Machine. Meu disco de destino contém outros arquivos. Não quero um clone do meu disco de origem. Eu só quero copiar os arquivos do Time Machine para o disco de destino.
precisa
3
Após várias tentativas de copiar meus arquivos da TM para um novo disco, o Disk Utility e o Carbon Copy Cloner NÃO fizeram o truque. O SuperDuper fez isso perfeitamente na primeira execução e não reduziu o tamanho da minha partição de destino!
milesmeow
2
Outro voto para SuperDuper! aqui. A v3.2.4 copiou com êxito uma grande pasta de backup do Time Machine para um novo disco, no macOS 10.14.2 Mojave, sem ocupar mais espaço. (Que Finder não poderia fazer ...) O Time Machine continua feliz usando o novo disco como se fosse o antigo.
gidds
5

Ao migrar uma unidade criptografada completa do Time Machine de 3 TB para uma nova unidade de 8 TB no macOS 10.14, encontrei todos os tipos de problemas. A tentativa de fazer uma restauração no Disk Utility resultou em erro "incapaz de validar a origem" ou "Operação não permitida". Tentando algumas outras sugestões nesta postagem e em outras, consegui receber novas e interessantes mensagens de erro como "O arquivo de catálogo na imagem / volume está muito fragmentado", mas sem cópia.

O que funcionou no final, no terminal:

  1. Apague o novo disco com o Utilitário de Disco, correspondendo ao formato da unidade de origem: MacOS Estendido (Registrado no Diário, Criptografado)
  2. Use diskutil cs listno terminal para obter o tamanho exato de bytes do volume lógico na unidade antiga e o GUID do novo volume lógico, bem como os números de disco de ambos, por exemplo disk4,.
  3. Use o tamanho exato de bytes da etapa 2 como o tamanho do novo volume. No meu caso, com uma unidade de 3 TB, foram 2.999.772.905.472 bytes:

    sudo diskutil cs resizeVolume $new_lv_guid 2999772905472
    
  4. Usando o pvcomando do homebrew, faça uma cópia em bloco de baixo nível dos discos. É muito parecido com o uso dd, exceto que você obtém um medidor de progresso com o ETA.

    Você precisa obter os números de disco da diskutil cs listsaída. Seja cuidadoso. É muito fácil substituir acidentalmente sua unidade de backup completo pela nova em branco aqui.

    sudo sh -c "$(which pv) --buffer-size 50M -s 2999772905472 < /dev/rdisk${source} > /dev/rdisk${target}"
    

    Se você receber uma permissão negada / erro de operação não permitida aqui, acesse Preferências de segurança e privacidade e adicione Acesso a disco completo para Terminal.app.

    Para mim, isso levou cerca de 10 horas - eu deixei funcionar durante a noite - mas, com pv, pelo menos, você obtém um medidor de progresso com um ETA.

  5. Agora, expanda o volume para ocupar todo o espaço restante na unidade:

    sudo diskutil cs resizeVolume $new_lv_guid 0
    

    Isso levou cerca de 3 horas para mim, com cerca de 5 anos de backups. A maior parte desse tempo foi gasta no macOS fscking.

Agora você pode desfrutar da sua nova e mais espaçosa unidade Time Machine. Você pode adaptar o antigo ou guardá-lo em algum lugar seguro, caso algo aconteça com a nova unidade.


As etapas de redimensionamento parecem ser importantes; ignorá-los resultou em uma cópia de arquivo de 10 horas que produziu um volume de 8 TB contendo um sistema de arquivos de 3 TB que eu não conseguia descobrir como redimensionar.


ATUALIZAÇÃO Uma possível desvantagem dessa abordagem é que, por ser uma cópia bit por bit, os identificadores são os mesmos entre o disco antigo e o novo. Se eu conectar o disco completo antigo, o Time Machine acha que é o novo disco, tenta fazer backup e começa a excluir backups antigos para abrir espaço para novos. Parece uma boa abordagem para mover dados para um disco maior, onde o disco menor antigo será apagado.

andrew
fonte
Olá Andrew! Obrigado por dedicar um tempo para digitar este guia passo a passo (e espero usá-lo para transferir meu backup de 1 TB para um disco de 4 TB, que até agora não foi bem-sucedido porque pastas e arquivos copiados pelo Finder ocupam muito mais espaço no novo disco do que o original). Minha pergunta para você é: posso executar essas etapas sem o cs aka armazenamento ativado? Permitindo que aparece de armazenamento do núcleo para ser um PITA potencialmente desnecessária , mas pode ser necessário por causa do passo guid 3.
Michael Dautermann
O @MichaelDautermann Core Storage é necessário para o FileVault, que é extremamente altamente recomendado para unidades de backup, a fim de proteger sua privacidade em casos de perda, roubo ou descarte inadequado.
andrew
Gostaria de acrescentar que não consegui copiar com o método mencionado. O motivo foi que o sistema solicitou que essa "operação não fosse permitida". Após uma breve pesquisa, descobri que preciso desativar todas as funcionalidades do SIP. Isso pode ser feito reiniciando o macOS pressionando o comando + R e abra um terminal. Aqui você precisa desativar digitando "csrutil disable". Com o próximo reinício, consegui copiar o backup da TM
Oliver Koehler
@andrew minha versão é 10.14.6 e eu entendo completamente o risco que você mencionou. No entanto, não consegui dd ou PV meu TimeMachine - backup sem desligar o SIP. Se houver outra maneira, eu ficaria feliz em ouvir.
Oliver Koehler
Eu continuo recebendo "pv: gravação falhou: erro de entrada / saída" em 99% (após 30 horas, 3 tentativas - na verdade, 90 horas). Os discos estão desmontados. As funções SIP estão desativadas. Pesquisando o erro não está surgindo nada. Semelhante à situação original (3 TB -> 8 TB). sudo sh -c "$(which pv) --buffer-size 50M -s 3000249008128 < /dev/rdisk3 > /dev/rdisk5"- o 8tb foi redimensionado com sucesso anteriormenteResized Core Storage Logical Volume to 3,000,249,008,128 bytes
ks
2

Por que não usar apenas o terminal:

cp -RnpP Backups.backupdb
  • -R recursivo
  • -n não substitua (se os restos de cópia existentes permanecerem da tentativa anterior)
  • -p preservar ACLs, permissões, datas de criação / modificação, etc.
  • -P preservar links físicos, não siga nenhum link físico ou simbólico.
chaseholden
fonte
Isso não é verdade. Leia man cppara o macOS. O cpcomando regular enviado com o macOS não copia links físicos com -P. A página do manual na verdade diz "Observe que o cp copia arquivos vinculados como arquivos separados. Se você precisar preservar links físicos, considere usar tar (1), cpio (1) ou pax (1)".
chmac
0

Essa resposta não será mais rápida, mas eu achei uma maneira de copiar os dados corretamente, preservando a desduplicação (links físicos) e as permissões. Como um bônus adicional, eu uso isso para fazer uma dmg compactada do produto final para arquivamento.

  1. Usando os Utilitários de Disco, crie uma imagem de disco maior que o diretório Backups.backupdb. Eu também sugeriria que você usasse a imagem de disco de pacote esparso para Formato de Imagem e Disco Rígido para Partições. Após a montagem desta imagem, obtenha informações e desmarque Ignorar propriedade neste volume.

  2. Agora desative o Time Machine e, usando o localizador, copie a pasta Backups.backupdb na imagem montada. O localizador solicitará permissões de superusuário para copiar os dados. Tome uma bebida ou faça outra coisa por um tempo.

  3. Quando a cópia terminar, verifique se está tudo bem e desmonte a imagem. No Utilitário de Disco, selecione Converter e transforme a imagem de pacote esparsa em uma imagem compactada. Novamente, isso pode demorar um pouco.

Você deve terminar com duas cópias do backup do Time Machine, pode excluir a versão do pacote esparso e colocar o dmg em um local seguro como arquivo morto a tempo.

Uma coisa que eu não tentei com isso é fazer uma restauração do sistema a partir do dmg, mas suspeito que funcione, meu objetivo era mais arquivar as alterações incrementais da máquina do tempo e manter a estrutura do link físico.

Também tentei o rsync e o cp, mas eles não pareciam manter a estrutura de links físicos que acabaria fazendo x vezes o tamanho, x sendo a quantidade de datas que você teve no passado. Esse método funcionou bem, mas, novamente, pode não ter velocidade de uma solução de cópia em bloco.

hanz
fonte
0

A Apple possui um tutorial oficial para isso: “ Time Machine: como transferir backups de uma unidade de backup atual para uma nova unidade de backup ”.

As etapas de alto nível dessa página:

  1. Verifique o formato da sua nova unidade de backup
  2. Defina permissões em sua nova unidade de backup
  3. Desligar temporariamente o Time Machine
  4. Copie seus dados de backup da sua unidade original para a sua nova unidade
  5. Defina o Time Machine para usar sua nova unidade

É assim que a página recomenda a etapa de cópia:

Copie seus dados de backup da sua unidade original para a sua nova unidade

  1. Abra uma nova janela do Finder. Na barra lateral do Finder, clique no ícone da unidade de backup original.
  2. Abra uma nova janela do Finder. Na barra lateral do Finder, clique no ícone da nova unidade de backup.
  3. Arraste a pasta "Backups.backupdb" da unidade de backup original para o nível superior da nova unidade de backup.
  4. Digite um nome e senha de administrador e clique em OK para iniciar o processo de cópia.

A cópia dos dados de backup pode levar algum tempo para ser concluída, dependendo do tamanho do seu backup.

David Andreoletti
fonte
5
Estou analisando essa questão porque, seguindo o tutorial (que sugere a cópia da pasta de backup com o Finder) e deixando-a em execução durante a noite, ele terminou com um problema de permissão com cerca de 500 / 940gb copiado. Eu fiz uma sudo rsyncnoite passada, mas esta manhã encontrei ERROR: out of memory in flist_expand [sender]e minha cópia está agora ~ 600gb. Ainda não decidi o que fazer a seguir, mas suspeito que a maioria das pessoas que lê já conhece o tutorial oficial.
PeterT
@ PeterT Acabei de experimentar o tuto também e tive o mesmo problema que você. Não sei se alguém sabia sobre o tutorial; caso contrário, alguém o mencionaria aqui e o resultado após ele. Agora, as pessoas sabem que não vale a pena tentar.
David Andreoletti
1
O uso do finder para copiar a pasta leva um tempo para criar a lista de arquivos e, em seguida, falha de qualquer maneira, com espaço em disco insuficiente, portanto, deve ser calculado incorretamente.
malhal
1
Esse é exatamente o meu problema. O volume original da TM é de 550 GB, o novo é de 600 GB. Ainda assim, o Mojave reclamou de espaço insuficiente no volume. Estou usando agora o SuperDuper! no modo "Backup - todos os arquivos".
Markus Rudel
1
O tutorial da Apple falhou para mim, no macOS Mojave 10.14.2. Tentei copiar um arquivo de backup de 3 TB para uma unidade de 8 TB; O Finder passou quase 5 dias copiando (dizendo "faltam 5 segundos" para a maior parte disso), antes de desistir e reclamar que a unidade estava cheia! E foi - apesar de ter copiado apenas 2/3 dos backups. Claramente, não está preservando os hardlinks, mas criando novas cópias de cada um. Portanto, esta resposta não está correta no momento.
Gidds
0

+1 para utilitários de disco, muito longo para comentários:

12.250.329 arquivos avaliados, arquivos 10.408.594 copiados. Velocidade efetiva de cópia 8,68 MB / s.

para clonar uma unidade magnética de 2 TB de backup com vários anos de backups via SuperDuper! este ano.

Isso levou 63 horas no total (o SuperDuper reiniciava o relógio a cada 24 horas, mostrando 15:04:43 no final), em vez de uma cópia do Finder que cancelei após aproximadamente 4 dias e um quarto dos arquivos.

Obviamente, o disco magnético não foi a razão para isso levar tanto tempo. O motivo pelo qual as cópias do Finder são interrompidas em discos de backup de execução prolongada é o grande número de links simbólicos em cascata em arquivos inalterados, especialmente para muitos arquivos pequenos, como índices do Git.

Paracetamol
fonte
0

O rsync é um ótimo utilitário para coisas assim. Eu geralmente uso para coisas assim. Nesse caso, eu posso usar os sinalizadores -aP. Acho que parte de -a ("archive") também é para preservar permissões, ACLs e similares, mas não tenho certeza.

No IIRC, há também uma opção --delete que permite excluir o arquivo de origem, uma vez que ele foi copiado com sucesso para o destino. Eu seria cauteloso em usar isso - normalmente eu faço um espelho completo sem a opção --delete, depois executarei novamente o comando com as opções -c e --delete. -c é soma de verificação; portanto, verifica todos os arquivos baixados em relação a todos os que estão na fonte via soma de verificação e exclui a fonte se houver uma correspondência; caso contrário, ela re-copia ou retoma a cópia conforme o caso.

EDIT: use a bandeira -H neste caso, conforme comentários, a fim de preservar os links físicos.

Harv
fonte
5
O rsync não mantém links físicos nos diretórios. Copiar um pouco o backup da TM duplicará muitos diretórios
nohillside
1
@patrix - posso confirmar isso. Eu tentei. Os links físicos de diretório são quase exclusivos do HFS + e o rsync não os entende.
Fake Name
3
-H, --hard ligações preservam ligações fortes
Pete Ashdown
-2

Nos discos rígidos, quando você move vários arquivos de uma unidade, o leitor se move para frente e para trás fazendo um ruído assustador de clique e diminui significativamente a taxa de transferência, por exemplo: um arquivo com usb 2.0 se move a 30 mbps no meu computador. discos rígidos externos, mas 2 arquivos movem-se a 11 mbps. e 3 arquivos movem-se a 6 mbps. etc. arquivos zip se moverão mais rápido que arquivos.

Jake Thomas
fonte
2
Como isso responde à pergunta do OP?
precisa