Clone de HDs e backup de MBR

Neste artigo estarei ensinando um comando muito útil do Linux que pode ser utilizado para clonar um HD inteiro, uma partição ou ainda criar um backup de sua MBR, evitando dores de cabeça em uma formatação de um Windows da vida.

[ Hits: 94.797 ]

Por: Rodrigo Teixeira Andreotti em 03/04/2007


Clonando HDs



Como mencionei na página anterior, pode-se utilizar o comando dd para que se faça uma cópia de dispositivos de blocos completos, ou seja, podemos utilizar o comando para fazer o clone de um HD, por exemplo.

Supondo que se tenha dois micros com a mesma configuração e um deles precisa ser formatado, imagine a dor de cabeça instalar o Linux (ou Windows), depois instalar os drivers, os aplicativos, enfim... tudo que for necessário. No mínimo seriam perdidas umas duas horas ou mais.

Com o comando dd poderíamos economizar um bom tempo. Vamos ao que interessa.

Para podermos copiar um HD inteiro:

# dd if=/dev/hda of=/dev/hdb

Onde:
  • if - input flow, ou seja...fluxo de entrada, é o HD de origem.
  • of - output flow, ou seja...fluxo de saída, é o HD de destino.

Puts... mas eu não quero copiar um HD inteiro, quero copiar uma partição somente. Ótimo, então vamos lá...

# dd if=/dev/hda1 /dev/hdb1

Funciona exatamente igual ao comando para copiar o HD inteiro.
  • if - fluxo de entrada (partição de origem)
  • of - fluxo de saída (partição de destino)

Quando usamos o dd só temos um pequeno inconveniente, ele copia até mesmo o tamanho do HD ou partição, ou seja, se eu tentar copiar o conteúdo de um HD de 40 GB para um de 20 GB provavelmente dará algum tipo de erro.

E se eu copiar o conteúdo de um de 20 GB para um de 40 GB, o HD de destino ficará com 20 GB, sendo necessário ou criar uma outra partição com o espaço restante ou utilizar o Gparted para alterar o tamanho da partição.

Mas com relação a cópia de partições este problema não acontece.

Só lembrando o seguinte, é impossível copiar o conteúdo de um local com maior capacidade para um com menor capacidade, ou seja, minha partição de origem tem 5 GB e a de destino tem 2 GB... será que cabe???

aaaaaaaaaaahhhhhhhh....mas apesar de ter 5 GB na partição....só tenho 800 MB em uso...

Pois é fazer o que né???

Continua valendo...o comando dd trabalha com fluxo de dados, ou seja, ele copia tudo... inclusive o espaço não utilizado (nem tudo é perfeito né).

A seguir falaremos de backup da MBR.

Página anterior     Próxima página

Páginas do artigo
   1. O comando dd
   2. Clonando HDs
   3. Backup da MBR e da tabela de partições
   4. Restaurando o backup
Outros artigos deste autor

Driver Nvidia atual + Ubuntu + Beryl

Leitura recomendada

Montando um servidor Linux com sshfs no SuSE

Submount - Solução de montagem automática de volumes em kernel 2.6

Git - Ciclo básico de trabalho

GIT: Controle de versões distribuído para projetos de software

Linux - Sistema de arquivos

  
Comentários
[1] Comentário enviado por Gear em 03/04/2007 - 17:14h

Muito bom o artigo! Parabens!!

[2] Comentário enviado por removido em 03/04/2007 - 18:17h

Muito bom !!!


Ademirotodos aqueles que contribuim ou somente participa dando comentarios ou fazendo perguntas pois a duvida de um pode ser a de todos.

[3] Comentário enviado por rasxr3 em 03/04/2007 - 18:46h

Simplesmente perfeito. Esse é um dos comandos que sempre tive curiosidade de saber como funciona.

[4] Comentário enviado por felipeportnoy666 em 04/04/2007 - 01:31h

Ainda acho que a melhor opção para quem quer clonar hds ainda é o G4U... um boot cd que clona seu hd com simples comandos (todos baseados no dd)... na empresa na qual trabalho usei este boot cd para clonar muitas maquinas em serie...
espero ter ajudado... Ate +

[5] Comentário enviado por RodriAndreotti em 04/04/2007 - 11:08h

Caro Felipe,

o G4U é baseado no comando DD correto???, pois então, não adianta nós trabalharmos com uma ferramenta e não sabermos qual é o fundamento da mesma, e também é legal sabermos mexer com este comando pois nem todos tem esta ferramenta em mãos, mas creio que a maioria do pessoal do site tem um live CD em mãos, e é aí que entra o comando. ;-)
[]s

[6] Comentário enviado por demattos em 04/04/2007 - 13:17h

Muito bom e util este comando, usamos ele muito para ter sempre um espelho dos hds dos servidores para em qualquer problema ter ja um hd pronto para a manter o sistema no ar

t+

[7] Comentário enviado por GilsonDeElt em 04/04/2007 - 22:38h

Muito bom esse artigo.
Só tentando complementar, o dd também cria imagens de CDs:
dd if=/dev/cdrom of=/pasta/de/destino
Para disquetes o comando é parecido:
dd if=/dev/fd0 of=terabeauts-0.02.img

Parabéns!

[8] Comentário enviado por RodriAndreotti em 05/04/2007 - 00:06h

boa GilsonElt,

Muito obrigado pelo complemento, me esqueci completamente disso..

obrigado mesmo.

[9] Comentário enviado por willemarf em 05/04/2007 - 02:10h

Excelente !!

Comentário muito construtivo. vlw!

[10] Comentário enviado por jairus em 05/04/2007 - 23:24h

Gostei, pois estava precisando clonar alguns hd's.


Abraços
Jairus

[11] Comentário enviado por dbahiaz em 07/04/2007 - 16:05h

Muito simples e o melhor util d+, parabens!

[12] Comentário enviado por geekaia em 07/04/2007 - 16:44h

Caras aqui m alto araguaia eu uso o comando dd para automatizar a manutenção das, máquinas que eu faço a manutenção

primeiro eu redimensiono a minha partição que está com o windows

e, deixo-a o menor possível
daí eu faço dd=/dev/hda1 of=/p4.iso
por exemplo

e, depois ponho as imagens num servidorzinho que fiz

e, deixo sempre no diretório do apache e, daí criei um direitório de isos a qual eu ponho lá todas as imagens redimensionadas do windows

daí por último para evitar ficar digitando toda hora dd if= ....
eu fiz o comando recupera que faz o seguinte


#!/bin/bash

sftp [email protected]:/var/www/isos/p4.iso
#digita-se a senha

dd if=/p4.iso of=/dev/hda1

echo "Tudo OKKK"

tudo isso tornou um pouco menos massante fazer a manutenção aqui no laboratório de computação aqui em alto araguaia-MT

porque não dá para ficar formatando toda hora o windows e o Linux toda hora em que a "POrra" do windows dá pau..
porque a média que eu faço por máquina formatando instalando os dois sistemas é de 3 horas e, com o dd eu minimizei tudo isso para apanas 20 minutos 5 minutos para baixar (a 11 MB/s) , a média de 10 a 15 minutos para recuperar o windows...

É o Linux recuperando o windows para tornar menos massante a manutenção...


Tá Blz...

e-mail: [email protected]

[13] Comentário enviado por RodriAndreotti em 08/04/2007 - 01:43h

É isso aí geekaia...vc fez um esquema realmente muito bom cara...pois a partição do windows sendo pequena voc~e consegue armazenar as imagens de todos os micros em um único PC...e também reduz o tempo da cópia, pois tem pooucos bits para serem copiados (pelo menos, uma quantidade bem menor que se fosse copiar o disco todo)

só lembrando o seguinte, se ao acaso se desejar reduzir o tamanho da imagem, pode-se compatar ela por qualquer compactador...

[]s.

[14] Comentário enviado por capitainkurn em 08/04/2007 - 12:49h

Ótimo artigo, está bem redigido e muito didático. Parabéns!

[15] Comentário enviado por fernandoamador em 08/04/2007 - 23:39h

Ótimo artgo...

[16] Comentário enviado por duker em 11/04/2007 - 13:17h

comprei um HD SATA de 160GB para substituir meu HD IDE de 10GB que está indo pro pau, eu tentei copiar o HD com o comando dd, (Antes eu criei partição como no HD IDE com o mesmo tamanho, para depois copiar) mas mesmo colocando o lilo pra bootar no sdb1 ele vai pro hda1 e monta a raiz no hda1 (q ainda não tirei fora) ao tentar tirar fora o HD IDE hda1 dah erro falando da falta do HD??? TEM jeito de copiar o linux de um HD IDE para UM SATA ou posso desistir ?

[17] Comentário enviado por RodriAndreotti em 11/04/2007 - 17:23h

Caro duker...

Mandei uma possível solução para o seu problema para o seu email...
não postei ela aqui pois não tenho total certeza que funcione mesmo...

se funcionar poste ela aqui, ou então me avise que eu mesmo posto...

[]s.

[18] Comentário enviado por RodriAndreotti em 12/04/2007 - 15:00h

Solução para o problema IDE - SATA
Crédito: ducker

Olá boa tarde,

Na realidade o que acontece é que existe o arquivo fstab, onde são indicados os pontos de montagem dos sistemas de arquivos, este arquivo vem igual ao do outro HD...no caso você vai precisar edita-lo, alterando as linhas que se referem ao hd IDE tanto para a raiz quanto para o SWAP.

Exemplo:

/dev/hda1 /
/dev/hda2 swap

ficaria:
/dev/sda1 /
/dev/sda2 swap



espero ter ajudado.

[19] Comentário enviado por davidneto em 28/04/2007 - 01:38h

parabens pelo artigo, alem de muito util, o mesmo foi muito bem escrito!!
meus parabens e grato pela ajuda

att david neto

[20] Comentário enviado por zoroastro em 26/07/2007 - 10:47h

MUITO BOM CARa, 10!

[21] Comentário enviado por malanga em 02/09/2007 - 18:29h

ola, muito bom o artigo

tenho uma duvida.

gostaria de saber se posso usar o DD para gerar imagens do sistema... ou seja, gero um ISO somente com as informacoes e a instalacao eu faria a partir do CD de instalacao do linux.... o q posso usar? o dd funciona para isso?? a ideia é criar um CD ou DVD com informacoes quentes do sistema como configuracoes e outros....

[22] Comentário enviado por RodriAndreotti em 03/09/2007 - 11:05h

Bom cara...o que você pode fazer seria o seguinte...
primeiro você teria que criar uma partição do tamanho do DVD
Aí você instala o sistema...configura ele e deixa rodando do jeito que você quer.

Feito isso vc gera uma iso:

dd if=/dev/hda of=/dev/hda1/backup.iso
só que um detalhe...se for gravar no DVD mesmo não grave os arquivos da iso (opçãogravar projeto ou imagem no nero) mas sim gravar a iso mesmo (o arquivo .iso)

Só que a única coisa que nunca testei é o seguinte...como a iso vai estar no DVD pode ser que ela esteja como somente leitura (bem provável que esteja) não sei se ao restaurar o iso...se ele vai para somente leitura também. Se o sistema for copiado como somente leitura ele pode não iniciar. mas você pode fazer o teste no vmware ou outra máquina virtual.

depois que gravar quando precisar recuperar seu sistema, inicie um livecd e use o dd novamente:

dd if=/dev/hdd/backup.iso of=/dev/hda1

onde hdd é seu aparelho de DVD.

Abraços

[23] Comentário enviado por k4mus em 27/10/2008 - 16:49h

amigo,duvida d iniciante ..rs

..quando clono o hd completo como aqui: dd if=/dev/hda of=/dev/hdb . a MBR e tabela tbm vao juntos nao é?? ou eu teria que fazer fazer a copia da mbr e depois jogar la?

Grato

[24] Comentário enviado por mph em 21/02/2009 - 22:31h

outra opcao mt util tb para o dd eh limpar o conteudo do hd...preenchendo com zeros

dd if=/dev/zero of=/dev/sdx

depois vc tera q refazer a tabela de particao...e formatar de novo...nao sera possivel (ou mt dificil) recuperar dados dessa forma...
tb eh possivel gerar um codigo randomico....

dd if=/dev/urandom of=/dev/sdx

[25] Comentário enviado por cleitão em 23/09/2009 - 17:06h

Boa tarde pessoal,

gostaria de saber o seguinte estou usando o dd para clonar os hds pois estou com 105 servers para preparar.

Tenho uma dúvida da para confiar nessas cópias? Alguém tem algum histórico de problemas quando se coloca servers para rodar com essas imagens geradas?

Desde já agradeço a atenção de todos.

[26] Comentário enviado por dontuba em 23/03/2010 - 14:26h

Show de bola.

[27] Comentário enviado por dontuba em 23/03/2010 - 14:27h

Show de Bola
Artigo claro, rapido, completo e extremamente util.
Parabens e obrigado pela contribuição a comunidade.

[28] Comentário enviado por jhugor em 27/05/2010 - 19:01h

Nota 10, parabens parceiro!

[29] Comentário enviado por jairodepaula em 09/09/2012 - 11:27h

Sou novo na utilização do Linux. Estou usando de maneira efetiva a 2 meses e como meu sistema operacional padrão a 1 Mês . Estava precisando fazer a cópia de um HD de 250 para um de 500 Gb e esse comando foi perfeito para isso. Ainda estou fazendo neste momento, sei que vai demorar, mas está indo tranquilo.

Mesmo este artigo sendo antigo foi uma "maõ-na-roda" pra mim.

[30] Comentário enviado por h0ru5 em 18/10/2013 - 22:42h

Excelente dica. Contribuindo, o comando dd não permite a visualização do progresso da transferência. Para tal, sugiro a utilização do dfcldd, que possui a mesma sintaxe do comando dd, todavia permite acompanhar o progresso da transferência.


Contribuir com comentário