A maneira mais rápida e segura de copiar dados massivos de uma unidade externa para outra

86

Preciso copiar cerca de 2 TB de dados de uma unidade externa (disco externo USB único) para outra unidade externa (Drobo conectado via Firewire).

O Finder não é uma opção. Se ocorrer algum problema, ele interrompe o processo e eu tenho que descobrir por que ele falhou e começar de novo. Poderia levar meses para superar isso.

Eu li sobre o CP e o RSYNC, mas não estou muito familiarizado e tenho medo de que algumas das opções estejam erradas e falhem nos arquivos, ou estrague as datas dos arquivos, ou pior ...

Alguém pode sugerir como eu posso fazer isso com o mínimo de risco e custo?

Swisher Sweet
fonte
A partir do MacOS 10.13.4+, você pode usar o Finder para copiar arquivos enormes (e todos os links associados). Apenas tentei criar outro disco de backup do Time Machine (a partir de um existente) e funciona de maneira rápida e bonita. Aparentemente, antes da 10.13.4, isso era um bug, mas foi corrigido. Mais informações nesta resposta: apple.stackexchange.com/a/323691/261070 .
youngrrrr 31/08/19
A resposta para isso depende de como você define "mais rápido". Você quer a velocidade de transferência mais rápida ou o menor tempo entre o momento em que você (um humano) começa a trabalhar nisso e termina. O tempo que você leva dependerá de coisas como se o Terminal o assusta ou não. A resposta ideal para você também dependerá de se tratar de uma operação única ou comumente repetida, bem como se você está disposto a gastar dinheiro ou não.
iconoclast

Respostas:

144

A sincronização remota,, rsyncé uma opção confiável para copiar grandes quantidades de dados. Você pode preparar o comando e executar uma execução a seco antes de confirmar a cópia; adicione --dry-runpara simular a cópia.

Seu comando final será bastante simples:

sudo rsync -vaE --progress /Volumes/SourceName /Volumes/DestinationName

As bandeiras são:

  • v aumenta a verbosidade.
  • a aplica configurações de arquivamento para espelhar exatamente os arquivos de origem, incluindo links e permissões simbólicas.
  • E copia atributos estendidos e bifurcações de recursos (apenas OS X).
  • progress fornece uma contagem regressiva e estatísticas de transferência durante a cópia.

sudo, é usado para garantir rsyncos direitos apropriados para acessar e ler todos os arquivos em sua unidade, independentemente do proprietário. Isso também permite rsyncgravar os arquivos na nova unidade, recriando as informações originais do proprietário.

rsync é provavelmente a melhor escolha, pois pode ser executada novamente em caso de problemas, oferece registro detalhado e é o mais rápido possível, mantendo a segurança.

Existem inúmeros guias para aproveitar ao máximo rsync, exemplos de comandos rsync fornecem exemplos relevantes. Como o @GordonDavisson comenta abaixo, tome cuidado com as barras finais; isso pode fazer muita diferença se a sua cópia começar com uma pasta.

Ferramentas alternativas incluem dittoe cp. Ambas são escolhas razoáveis, mas oferecem sintaxe diferente.

Graham Miln
fonte
5

Usei a sincronização bittorrent para sincronizar 8 TB entre o meu Drobo e o QNAP.

Nate Black
fonte
A sincronização bittorrent também é uma maneira de fazer isso. Os votos negativos (na minha opinião) não são realmente necessários.
CousinCocaine
6
@CousinCocaine sim, mas a pergunta era sobre como fazer algo, não qual aplicativo usar.
Dillon
@ Dillon: saber qual aplicativo usar às vezes é 99% do que você precisa saber para saber como fazê-lo.
iconoclast
3

Eu respondi uma pergunta semelhante aqui há um tempo. Minha resposta é copiada abaixo.


Uso cp -Rfv sourcefile destinationfilecom sucesso regularmente.

cp = cópia

R = mantém hierarquias de arquivos

f = se um arquivo de destino existente não puder ser aberto, remova-o e tente novamente

v = modo detalhado, exibe os arquivos transferidos à medida que avança

sourcefile = dados que você deseja copiar

destinationfile = diretório / unidade para o qual você deseja copiar

Mr Rabbit
fonte
9
No entanto, vale ressaltar que o cp copiará novamente os arquivos, mesmo que eles não tenham sido alterados, enquanto o rsync não perderá tempo copiando arquivos que já existem no destino. Assim, você pode reiniciar de onde parou e / ou fazer cópias incrementais.
David
Pode adicionar -npara não copiar arquivos que já existem e -ppreservar todas as permissões, incluindo atributos estendidos e bifurcações de recursos sempre que possível.
spinup 27/02
3

A maneira "mais rápida" seria mover fisicamente as duas unidades para serem internas para um único computador, fazer a cópia (ou rsync) e depois movê-las de volta.

Eu ainda usaria o rsync, porque se interrompido por qualquer motivo (etapas do gato no interruptor de energia?), O rsync não copia novamente os arquivos que já foram bem-sucedidos. Também não copiará nenhum arquivo que seja o mesmo e no mesmo local.

WGroleau
fonte
Observe que isso é mais rápido devido ao tamanho do conjunto de dados. Se fosse muito menor, a vantagem da velocidade seria cancelada no momento em que as unidades fossem movidas.
WGroleau
Não, mais rápido para uma grande quantidade de dados. Para uma pequena quantidade de dados, a cópia ainda é mais rápida, mas o tempo necessário para mover as unidades cancela isso. No entanto, é potencialmente mais rápido em condições NÃO perfeitas, porque, se interrompido, o rsync pode evitar copiar novamente os que foram feitos antes da interrupção.
WGroleau
Se a velocidade de transferência for mais rápida, mas uma interrupção o fizer recomeçar, é provável que o processo inteiro não seja mais rápido e o processo inteiro é o que importa. "condições perfeitas" = nada interrompe o processo . Na minha experiência, é muito comum que algo aconteça causando um problema quando você está lidando com uma transferência massiva. É por isso que me refiro a uma transferência ininterrupta como "perfeita".
Iconoclast
Se você estiver usando o rsync como eu disse, uma interrupção não fará você começar de novo.
WGroleau 16/06
Você não está entendendo o que quero dizer com "recomeçar" neste contexto. Estou bem ciente do fato de que rsync pode pegar onde ele parou em dados de sincronização. Mas se você emitir um comando, e ele não for concluído, você começará novamente com a intervenção humana, o que leva todo o processo a demorar mais. Ou você perde seu tempo cuidando da coisa toda, ou há um grande atraso entre a falha e quando a descobre. O que importa para um humano é o tempo de todo o processo e o tempo da intervenção humana.
iconoclast
1

Se você deseja copiar exatamente a unidade A para a unidade B, faça isso com o Utilitário de Disco.


Usaremos a função de restauração do Disk Utility . Alguns antecedentes sobre a diferença entre Restaurar x copiar e colar:

A função Restaurar no Disk Utility utiliza uma função de cópia em bloco que pode acelerar o processo de cópia . Também faz uma cópia quase exata do dispositivo de origem . Quando dizemos "quase exato", não queremos dizer que dados úteis podem ser deixados para trás, porque esse não é o caso. O que isso significa é que uma cópia em bloco copia tudo em um bloco de dados de um dispositivo para o outro . Os resultados são quase uma cópia exata do original. Uma cópia de arquivo, por outro lado, copia os dados arquivo por arquivo e, embora os dados permaneçam os mesmos, o local do arquivo nos dispositivos de origem e destino provavelmente será muito diferente .

O uso de uma cópia em bloco é mais rápido , mas possui alguns limites que afetam quando pode ser usado. O mais importante é que copiar bloco por bloco exige que os dispositivos de origem e de destino sejam primeiro desmontados do Mac. Isso garante que os dados do bloco não sejam alterados durante o processo de cópia. Não se preocupe, no entanto; você não precisa desmontar. A função Restaurar do Disk Utility cuida disso para você. Mas isso significa que nem a fonte nem o destino podem estar em uso quando você usa os recursos de restauração .

Fonte: https://www.lifewire.com/use-disk-utility-to-clone-macs-drive-4042367


Instruções

para copiar todos os arquivos do dispositivo A para o dispositivo B

AVISO : Quando você restaura um volume para outro, todos os arquivos no volume de destino são apagados. Antes de restaurar um volume, copie todos os arquivos no volume de destino que você deseja salvar em um volume diferente.

  1. Escolha Exibir> Mostrar todos os dispositivos.
  2. Selecione o volume na barra lateral que deseja restaurar e clique no botão Restaurar insira a descrição da imagem aquiou escolha Editar> Restaurar.

Este é o volume que é apagado e se torna a cópia exata. [Dispositivo B]

  1. Clique no menu pop-up Restaurar e escolha o volume que deseja copiar [Dispositivo A].
  2. Clique em Restaurar e clique em Concluído.

Fonte: https://support.apple.com/guide/disk-utility/restore-a-disk-dskutl14062/mac

JBis
fonte
A cópia em bloco também gasta tempo na cópia do espaço livre e falhará se o destino for um bloco menor que a origem. (Pode falhar de uma maneira que não é detectada imediatamente.) E se o destino for maior, o espaço extra se tornará inutilizável.
WGroleau 13/09/18
@WGroleau você pode expandir sobre "o espaço extra torna-se inutilizável"
JBIS
cópia de bloco inclui o bloco que diz qual bloco é o último. Se o destino for grande o suficiente para os dados, mas menor que a origem, o sistema operacional achará que existem blocos disponíveis que não existem. Se o destino for maior, o sistema operacional acha que os blocos extras não existem.
WGroleau 13/09/19
@WGroleau para que eu entenda corretamente se eu tiver uma unidade de 500 gb com um único arquivo de 1 gb e bloquear a cópia em uma unidade de 1000 gb, o que acontecerá? E você pode link do site?
JBis
Veja a página de manual para 'dd'. Ele copiará 500 GB, mas a maioria dos 499 GB estará vazia. A parte que não é visível apenas para o sistema operacional e informa que você possui uma unidade de 500 GB. Também olhar para cima “mapa de partição” e “mapa de volume”
WGroleau
0

Se você não quiser seguir a rota da linha de comando, uso o aplicativo FreeFileSync rotineiramente para sincronizar 2 TB de dados de uma matriz externa para um local de rede sem problemas. Você pode controlar como ele lida com erros e obter um log quando estiver completo.

Brad L.
fonte