Como copiar um volume do Mac usando o cp?

13

Eu pesquisei isso por horas. No modo de usuário único, usei:

cp -Rpvn /* /Volumes/MyBackup

Meu USB externo está montado em /Volumes/MyBackup

A questão, porém, é que, após 24 horas, ele ainda não parou de copiar 300 GB de dados em uma unidade USB externa. Eu acho que está tendo problemas com links simbólicos, como o /Volumes/MacHDvolume também tendo um /Volumes/MacHDe, /Volumes/MyBackupno entanto, não tenho certeza disso.

Como copio um volume do Mac usando cp? O cp -Rpvn /* /Volumes/MyBackup está correto?

ermSO
fonte
2
Você usa o cp assim, mas não é a ferramenta correta para o trabalho. Você precisa do rsync para isso.
CousinCocaine
1
Você tem a possibilidade de executar o seu mac no modo de disco de destino? Ou talvez apenas saia do HD?
CousinCocaine
Não consigo fazer o modo alvo, pois não tenho um segundo mac. Eu esperava uma opção menos arriscada do que tirar o carro.
ermSO
O rsync é provavelmente a sua melhor opção aqui, embora eu ache que você também possa usar ddpara fazer uma cópia de bytes em bytes do disco rígido do seu Mac.
thibmaek
1
ddé o caminho a seguir para backups setor por setor, que parece o que você está fazendo aqui (mas tenha muito cuidado com isso, para garantir que o que você está substituindo seja realmente o que você deseja substituir). rsyncé o caminho a seguir para realizar operações de cópia complicadas ou grandes. cpé ótimo para arquivos individuais, mas não é bom para operações em grande escala.
cpast

Respostas:

25

Use rsyncpara esse fim, pois cpnão é possível reproduzir fielmente todos os arquivos existentes no OS X. Os benefícios de rsyncover dittoe cpsão:

  • transferências interrompidas podem reiniciar facilmente com muito pouco custo.
  • reinicia até mesmo retomar parte de um arquivo grande.
  • a exclusão de arquivos e --dry-run permitem testes fáceis e afinamentos iterativos.

A maneira mais simples de usar rsynce preservar a maioria das coisas (permissões, links simbólicos, datas de edição etc.) é usar o sinalizador -aou --archivepara arquivar. Para ver seu progresso, use -Pou--progress

O Rsync funciona como:

rsync options source destination

No seu caso, eu recomendaria o seguinte:

rsync --archive --verbose --one-file-system --human-readable --progress /from/ /to

Ou, resumindo:

rsync -avxhP /from/ /to

Lembre-se da falta de barra no /tolocal.

veja comentários para sinalizadores mais úteis

PrimoCocaína
fonte
6
Você também deseja o sinalizador -x, para evitar o deslocamento para discos montados que não estão no mesmo volume.
25715 Kent
kudo's for bmike por tornar este post muito mais legível.
CousinCocaine
2
-Pé realmente equivalente a ambos --progresse --partialcombinado. Veja a página do manual .
Kirb
1
Eu pularia --compress(é útil apenas para transferências de rede) e adicionaria -E(preservar atributos estendidos e bifurcações de recursos).
Gordon Davisson
5

Se você deseja fazer uma cópia fiel do conteúdo do sistema de arquivos, evite usá-lo cp. Em vez disso, use o ditto(1)comando, que preserva links físicos, permissões de arquivo, bifurcações de recursos e metadados HFS. Ao contrário cp, dittovisa preservar o máximo possível dessas informações por padrão.

É apenas uma questão de correr .sudo ditto src dest

200_success
fonte
Corrija-me se estiver errado, mas tenho certeza de que cpfoi atualizado para copiar os metadados do arquivo na versão 10.4.
NobodyNada - Reinstate Monica
Foi, mas dittoainda é uma opção melhor.
juandesant
1
E rsyncé a melhor opção.
CousinCocaine
2

Você esqueceu de fazer uma lista de arquivos excluídos e provavelmente está copiando coisas que não podem / não devem ser copiadas, incluindo arquivos sem fundo, como / dev / random.

Embora o cp possa fazer o trabalho, existem ferramentas melhores. Rsync é um, Carbon Copy Cloner ou SuperDuper é outro. Para usar uma analogia de cozinha, você está usando uma faca para abrir uma lata. O Rsync é um abridor de latas, o Carbon Copy Cloner é um abridor de latas elétrico. Uso o rsync regularmente, mas as configurações necessárias para copiar um sistema operacional em execução são suficientemente complexas que nunca me preocupei em fazer tudo sozinho.

 cp -Rpvn /* /Volumes/MyBackup 

Parece que tudo que você quer fazer é fazer um backup. O seu Mac inclui o Time Machine expressamente para esse fim. Abra Preferências do Sistema -> Time Machine, escolha o disco externo, ligue-o e deixe-o em paz. Funciona muito bem e requer menos de um minuto do seu tempo.

Paulo
fonte
Não consigo acessar uma GUI. Tudo o que consigo trabalhar é o modo de usuário único; portanto, o tempo CCC, o superduper e a máquina do tempo não são opções. Quais configurações você usaria com o rsync? Idealmente, eu gostaria de uma cópia inicializável. Eu não consegui fazer o trabalho funcionar.
ErmSO 25/04
1
@ermSO Como você obviamente tem uma unidade externa, instale um novo sistema operacional no externo e inicialize a partir dele. Todos os Macs atuais podem inicializar a partir de firewire ou USB. Você pode fazer um backup decente dos arquivos do usuário e reparar a unidade interna. Normalmente, faço uma exclusão completa nesses casos, eliminando quaisquer problemas residuais de diretório.
paul
ddfará cópias setor por setor na linha de comando e é uma boa opção para copiar um volume inteiro em outro volume inteiro enquanto apaga o segundo volume inteiro.
cpast
Tem certeza de que deseja a -Ropção? Isso significa que, se você tiver links simbólicos para uma única pasta em vários lugares, estará duplicando o conteúdo. Isso pode explicar o tempo que está demorando. Se você usar ditto, você obterá o que deseja com as configurações padrão.
juandesant
1
@juandesant é seu comando, não meu. eu não usaria cp.
paul
0

Você pode criar um backup do Time Machine a partir da linha de comando com tmutilo utilitário Time Machine. Você pode definir um destino e solicitar um backup manual.

Para definir o volume de backup do Time Machine:

sudo tmutil setdestination / Volumes / MyBackup

Em seguida, inicie o backup:

tmutil startbackup --auto

O --autosinalizador tentará tratá-lo como um backup agendado em horário normal.

Depois de fazer o backup do Time Machine, você poderá reinstalar o OS X no Mac e importar todos os arquivos do backup do Time Machine.

CyberSkull
fonte