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

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

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.