Categories
Linux Tutoriais

Como clonar um disco no Linux

Como clonar eficientemente sistemas de arquivos ou discos com o comando dd, no Linux

Clonar um dispositivo de armazenamento pode garantir que você leve, de um local a outro, uma cópia exata de um drive importante para você.
Se o objetivo é criar uma cópia de segurança (ou backup), pode ser interessante acrescentar o uso de compactação, para obter uma melhor optimização do espaço disponível.
Neste post, vou mostrar como realizar o procedimento, de maneira ágil, com o uso do comando dd, no Linux.
drives SSD
Se você clicar na tag dd, vai ver uma série de outros posts, relatando vários outros usos possíveis para o comando — o que comprova o fato de que é uma daquelas ferramentas exemplo de flexibilidade do universo UNIX/Linux.
Para realizar um teste, você pode usar 2 flash drives (ou pendrives), com a mesma capacidade — simultaneamente conectados, cada qual a uma entrada USB.

O comando dd irá apagar todo o conteúdo do drive ou arquivo de destino. Considere-se avisado.

O comando dd tem basicamente 2 parâmetros importantes, aqui:

  • if — input file ou nome do arquivo original.
  • of — output file ou nome do arquivo de destino.

Sabendo, disto é fácil fornecer o drive original e o drive de destino (ou “futuro” clone) na linha de comando.
Se você tem um drive em /dev/sdc e deseja clonar o seu conteúdo em /dev/sdd, o comando vai ficar assim:


dd if=/dev/sdc of=/dev/sdd bs=64K conv=noerror,sync

Segue a explicação para os outros 2 parâmetros usados:

  • bs=64K — estabelece o tamanho de cada bloco e dados em 64 Kb. Você pode usar outros valores, mais altos e sempre múltiplos de 8, que podem dar mais agilidade ao procedimento — sem alterar a qualidade do resultado final.
  • conv=noerror,sync — o parâmetro noerror não permite que o dd pare, em função de erros de leitura — ou seja, mesmo que o drive original contenha erros, ele será clonado. O parâmetro sync adiciona ao drive de destino blocos com zeros, correspondentes ao espaço que continha erros no dispositivo original. Desta forma, ele mantém o offset de dados em plena sincronia.

drive SSD sobre teclado

Como clonar uma partição

Vocẽ pode clonar uma única partição do sistema em outro drive, indicando exatamente a localização da origem e do destino:


dd if=/dev/sdd1 of=/dev/sdd2 bs=64K conv=noerror,sync

Como enviar um clone via SSH

Neste caso, vale a pena acrescentar um método de compactação ao arquivo clone, antes de enviá-lo pela rede:


dd if=/dev/sdc0 conv=sync,noerror bs=128K | gzip -c | ssh username@servidor.com.br dd of=arquivoclone.gz

Como obter feedback do progresso do dd

Para obter um retorno visual do andamento do processo, use a opção ‘status’, da seguinte forma:


dd if=/dev/sdd1 of=/dev/sdd2 bs=64K conv=noerror,sync status=progress

[blog_subscription_form]

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

One reply on “Como clonar um disco no Linux”

Boa tarde, teria alguma maneira de clonar apenas a parte do disco que contem dados ao inves do disco inteiro? exemplo:
HD 1 TB (tamanho real) -> 200GB (sistema)
Teria como clonar somente os 200GB? sendo que esses 200GB estão dentro de uma partição de 1TB. Usando o DD?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.