No linux, o comando dd pode fazer o que você quiser.
Apenas certifique-se de não clonar a unidade vazia na unidade que deseja clonar.
Sem entrar em detalhes que me distraiam, estou tentando duplicar o conteúdo da unidade de 500 GB no meu MacBook para outra unidade de 500 GB. Mas isso está se tornando um aborrecimento inesperado porque a unidade contém a partição do OS X e uma partição NTFS com o Win 7 através do Boot Camp da Apple.
Com exceção do Clonezilla , as ferramentas que eu vi até agora têm alguma limitação. As ferramentas do Mac não querem lidar com a partição NTFS. As ferramentas do Windows são totalmente ignorantes sobre a partição HFS + e / ou o particionamento MBR / GPT híbrido do Boot Camp.
O Clonezilla parecia que faria o que eu queria, mas aparentemente não consigo descobrir como usá-lo. Depois de fazer o que eu achava que era uma cópia setor a setor, descobri que apenas a partição NTFS tinha sido migrada. Os outros estavam aparentemente vazios. (E, francamente, não estou certo de que o Clonezilla tenha migrado a tabela de partições corretamente).
Observação: são necessárias mais de duas horas usando o SATA para ler / gravar todos os setores com essas unidades. Então não estou pronto para usar trial & erro para estreitar a combinação certa de opções do Clonezilla para usar.
Estou começando a achar que talvez a resposta seja inicializar o Linux (provavelmente o Ubuntu) e depois usar algum comando antigo do BSD. O problema é que eu não sei qual comando (ou parâmetros a serem usados) para fazer uma cópia no nível do setor de uma unidade para outra. Até onde eu sei, as unidades têm o mesmo número de setores, então isso deve ser trivial. Suspiro.
Sim, dd
funciona . (Ufa!)
Eu gostei especialmente do link na resposta à pergunta / troca correspondente no serverfault.com como eu nunca teria pensado em procurar lá.
Aqui estão alguns ajustes adicionais que usei depois de aprender sobre eles na troca no serverfault.
Não use o tamanho de transferência padrão de 512 bytes. No meu caso eu usei o formulário de dd if=/dev/sda of=/dev/sdb bs=8192
desde que isso significativamente aumentou a taxa de transferência de dados. (Aconteceu que o tamanho de ambas as minhas unidades era um múltiplo de 8192. Não tenho certeza se isso importava, mas era mais seguro fazê-lo dessa maneira).
Existe uma maneira de obter algum status de progresso do comando dd
. Aparentemente dd
exibe seu status de transferência atual quando recebe o sinal correto. Eu usei o método sugerido em esta resposta de falha de servidor . No entanto, usei um intervalo de 120 segundos, não 10, pois não queria ser "inundado" com informações de progresso.
Demorou cerca de 2 horas e 20 minutos para clonar completamente a minha unidade de 500 GB para outra unidade de 500 GB. A mensagem de status final do dd foi 500107862016 bytes (500 GB) copied, 8353.86 s, 59.9 MB/s
O que falta em termos de opções este processo certamente compensa em simplicidade e integridade. : -)
No linux, o comando dd pode fazer o que você quiser.
Apenas certifique-se de não clonar a unidade vazia na unidade que deseja clonar.
Se você quiser rápido ..., então dd
não é o que você quer. Por quê?
Porque é single-threaded. Isso significa que funciona desta maneira:
Na verdade, a escrita e a leitura do próximo bloco podem acontecer ao mesmo tempo, mas o dd não pode fazer isso.
Para fazer backups rápidos, você pode usar a ferramenta buffer . Similarmente ao dd
, ele funciona basicamente da entrada padrão para a saída padrão, então você pode usá-lo em um pipe, para tornar seus dois sites realmente paralelos trabalhando.
A parametrização que você provavelmente mais gosta:
buffer -i /dev/sdX -o /dev/sdY -s 8192 -b 2048
Ele irá clonar /dev/sdX
para /dev/sdY
, rapidamente.
Você também pode usar buffer
para acelerar qualquer comando do shell canalizado:
pipe-chain-commands1 | buffer -s 8192 -b 2048 | pipe-chain-commands2
Isso resultará que a primeira cadeia não deve esperar até que a segunda cadeia não coma sua saída.