+ Responder ao Tópico



  1. #1

    Padrão Ideia de backup de HDs com comando dd

    E ai galera. Firmeza?

    Uso Dualboot aqui em casa com o Windows XP e Gentoo Linux. Eu estou usando um comando para guardar minha particao Windows C:\ numa imagem compactada com o gzip na particao Linux

    date
    dd if=/dev/sda1 | gzip -9 | dd of=/backup.img.gz
    date

    Ele funciona compactando minha particao WIN, meu C:\ com 30 GB de capacidade para a imagem backup.img.gz que ficou com o tamanho de 16 GB na particao Linux com 20 GB. Isso foi feito em 1 hora e 15 minutos com o Windows 0 Km no C:\ .

    Depois disso posso usar o proximo comando quando quiser estar com o Windows 0 Km novamente

    date
    dd if=/backup.img.gz | gzip -d | dd of=/dev/sda1
    date

    Isso e interessante quando voce instala o Windows zerado com todos os drivers e programas basicos que sempre sao instalados.

    O fato e que isso tem demorado demais e imagino que talvez voces teriam uma outra ideia de fazer isso mais rapido ou gastando menos espaco...
    Ja ouvi falar no G4U mas nao sei qual a diferenca, etc...
    Ouvi dizer tambem que depois de dar um "hdparm com alguns parametros corretos esse processo de clonagem do HD fica mais rapido

    Alguma ideia? Sugestao? Critica?
    Um grande abraco! Muito obrigado!

    Guilherme

  2. #2
    gsteixei
    Visitante

    Padrão

    Assim amigo:

    dd if=/dev/sda1 bs=65536k | gzip > imagem.img.gz

    o bs é o buffer size, se vc nao especificar o buffer ele usa 512 bytes, o que é muito pouco, entao o micro tem q copiar 512 bytes por vez, 64mb é um bom tamanho de buffer, nos testes que fiz foi o mais rapido que achei, eu clono uma partição de uns 10 gb em cerca de 5 min assim. (obs: a maquina tem 512mb de RAM, numa configuração diferente isso pode variar, mas é bom fazer experiencias)

    Outra coisa, para diminuir o tamanho da imagem, faz o seguinte:
    monta sua partição:
    # mount /dev/sda1 /mnt
    entao vc enche ela de zeros
    # dd if=/dev/zero of=/mnt/0bits bs=2048k
    pode ser que de o seguinte erro:
    file limit exceded
    caso ocorra isso repita o comando apenas mudando o nome do arquivo de zeros, assim:
    # dd if=/dev/zero of=/mnt/00bits bs=2048k
    agora ele tem 2 arquivos de zeros o 0bits e o 00bits
    faça isso até que ele de a seguinte mensagem
    no space left on device

    Pronto agora remova os arquivos de zeros:
    # rm /mnt/0bits
    # rm /mnt/00bits

    agora desmonte sua partição
    # umount /mnt

    e faça a clonagem.... o arquivo vai ficar muiiiito menor.

  3. #3

    Padrão

    Gostei da ideia. Vou fazer um teste aqui.

    Quanto a questão de diminuir o tamanho da imagem, entendo que ele enche o espaço vazio da partição com os zeros e depois de apagá-los, ao fazer o backup ele reconhece o espaço vazio literalmente certo?

    Meu C:\ é montado automaticamente em /c, entao no comando eu faria a substituição /mnt por /c.

    Agora o restore, a descompactação o processo é o mesmo? Convém alterar o buffer size dela também?

    Muito interessante!
    Muito obrigado pela resposta!

    Um abraço
    Guilherme

  4. #4

    Padrão

    Amigo, no meu caso aqui em casa, tenho 2 hds de 40 gb, hda1 e hdb1. No meu hda1, tenho as partiçoes /, /home e /windows e no hdb1 o /backup. O que eu faço, é fazer um backup com o rsync, o que faz com que ele faça a cópia de todos arquivos que eu quero para dentro do /backup. A primeira vez é meio demorado, mas nas próximas, é bem rápido visto que o rsync só ira fazer a copia dos arquivos que foram alterados. Caso voce se interesse pela ideia, é soh colocar o rsync para inicializar junto com o seu linux, rodando em backgroundo com a linha abaixo:

    /usr/bin/rsync -a /home/renato/arquivos/ /backup/ &

    []s...Dedao

  5. #5
    gsteixei
    Visitante

    Padrão

    >Gostei da ideia. Vou fazer um teste aqui.

    > Quanto a questão de diminuir o tamanho da imagem, entendo que ele enche o >espaço vazio da partição com os zeros e depois de apagá-los, ao fazer o >backup ele reconhece o espaço vazio literalmente certo?

    Sim, qdo vc apaga o arquivo, na verdade o conteudo continua lá (os zeros) o que é apagado é a entrada no diretorio, entao o espaço livre continua livre, a diferenca é q ele esta cheio de zeros... O gzip pode comprimir essa parte apenas dizendo 20 gb de zeros daqui em diante....

    > Meu C:\ é montado automaticamente em /c, entao no comando eu faria a >substituição /mnt por /c.
    O ponto de montagem pode ser qualquer um, eu usei /mnt apenas como exemplo. Só lembre de desmonta-la antes de fazer a clonagem...

    > Agora o restore, a descompactação o processo é o mesmo? Convém alterar o >buffer size dela também?

    Ah sim, com certeza
    gzip -d -c imagem.img.gz | dd of=/dev/sda1 bs=65536k


    > Muito obrigado pela resposta!
    No q eu puder ajudar estamos ai...

    abraço

  6. #6

    Padrão Resposta para Dedao e gsteixei

    ---- Fala Dedao

    Seu metodo e muito bom e interessante, obrigado por responder. Porem na verdade a minha finalidade com esses processos e outra.

    Aqui em casa tenho meu C:\ de 30 GB, onde ficam somente o Windows e programas instalados, tenho meu D:\ de 100 GB, onde tenho todos meus arquivos, ou seja, esta particao eu nunca formato, e o resto, tenho a minha area Linux com /, /boot e swap. Eu gosto de fazer dual boot e eu sempre estou fucando muito em tudo, e regularmente eu gosto de dar uma formatada na particao C:\ e instalar o Windows 0 km denovo, pois meu PC e usado pela minha mae, irma, pai, etc...

    O que eu tenho feito e instalar o Windows puro, drivers de video e som e dps eu faco essa imagem dele na particao Linux, o que me possibilita sempre que eu quiser descarregar essa imagem no C:\ com o Windows novinho pra usar qdo quiser ou quando achar necessario, quando o PC ja esta cheio de problemas. E bem comodo.

    No DA da minha faculdade fizeram isso e funciona mto bem. Quando o PC ja esta todo detonado, fazem um restore dessa forma e o PC esta novo, muito melhor do que pegar um CD de Windows, CD de drivers e outros programas basicos. Mas mesmo assim agradeco a sua atencao! Um abraco!

    --- Fala gsteixei

    Cara, um ultimo detalhe.

    Tentei fazer o que voce disse de preencher o HD com "0". Porem nao consegui fazer isso...

    # dd if=/dev/zero of=/c/0bits bs=2048k
    dd: opening `/c/0bits': Read-only file system

    Ja fiz as alteracoes no fstab e tambem no mtab porem nao adiantou. O que eu posso fazer?

    /dev/sda6 /boot ext2 defaults 1 2
    /dev/sda7 none swap sw 0 0
    /dev/sda8 / ext3 defaults 0 1
    none /proc proc defaults 0 0
    none /dev/shm tmpfs defaults 0 0
    dev/sda1 /c auto rw,user,uid=1000,gid=100 0 0
    dev/sda5 /d auto rw,user,uid=1000,gid=100 0 0

    Das proximas vezes vou desmontar a particao, pois nao desmontava ele pra fazer as clonagens, porem mesmo assim as clonagens foram feitas com sucesso. A ultima coisa mesmo e a reducao do arquivo que nao consegui.

    Mais uma vez obrigado!
    Guilherme

  7. #7
    gsteixei
    Visitante

    Padrão

    Pelo jeito nao ta habilitado o suporte a escrita em NTFS no seu kernel... é possivel q vc tenha q recompilar ele...
    Outra coisa q vc pode fazer é criar um arquivo pelo ruindows com esse nome, depois pelo linux ele só o sobrescreve... Se nao me engano uma das limitaçoes da NTFS (eca) pelo linux é a criação de arquivos.

    Eu uso essa tecnica de clones pra manter as quase 150 estaçoes q eu cuido numa universidade... Qdo o rwindows da pau, é só restaurar e pimba!

    abraço

  8. #8

    Padrão

    Por que que isso não vira um artigo no wiki?

  9. #9

    Padrão

    Nao seria possivel eu apenas carregar algum módulo no estilo "modprobe" para poder fazer a escrita no NTFS? Já recompilei o kernel no Slackware muitas vezes, mas sempre algo ficava falho, sem contar os inumeros "kernel panic"

    Vou tentar criar o arquivo "c/0bits", mas acho que ja tentei alterar algum arquivo de texto nestas partições a partir do Linux e não consegui.

    Colocar no Wiki? Boa ideia, porém nunca criei um artigo no Wiki, mas nada que nao seja impossivel. Pretendo conseguir fazer esta operação com sucesso primeiro e depois me disponho a publicar um artigo. Só falta mesmo esta questão da escrita.

    Um abraço!
    Guilherme

  10. #10
    gsteixei
    Visitante

    Smile

    Eu sempre evito usar NTFS, as vezes q eu precisei escrever nela nao deu certo, tentei recolpilar o kernel, nao resolveu o problema, neste caso, o q eu fiz foi reistalar o ruindows em fat.... Ah... mas fat nao tem tanta segurança! Pois é... mas e por acaso ruindows tem ALGUMA segurança??? XD

    Qto a botar no wiki, eu ja tenho algo quase pronto, vou dar mais uma ajeitada e publicar..

    valeu

  11. #11

    Padrão Tudo certo!

    E ai pessoal. Deu certo! Muito obrigado!
    O que fiz foi instalar o Windows XP em FAT32 mesmo. Depois fica facil fazer a escrita no C:\ e utilizar o procedimento dito de preencher ele com zeros

    # dd if=/dev/zero of=/mnt/0bits bs=2048k
    file limit exceded

    Depois fui continuando ate chegar em

    # dd if=/dev/zero of=/mnt/00000bits bs=65536k

    Fui aumentando o tamanho do "bs=2048 para bs=65536k" para andar um pouco mais rapido. Depois de terminar, ocupando toda a particao C:\, removi os arquivos e desmontei a particao.
    O arquivo backup.img.gz ficou com 1.705 GB de uma particao C:\ com 30 GB de espaco e com o Windowx XP recem instalado em FAT32. O processo de backup durou 17 minutos. Ja o restore durou apenas, se nao me engano, 8 minutos.
    Ja sem essa tecnica de limpar o HD com os zeros, anteriormente o processo de backup demorava pouco mais de uma hora e deixava uma imagem de 16GB ou mais.
    Muito bom!
    Pra quem tem gente em casa que ainda usa Windows e gosta de ficar instalando e desinstalando aplicativos, detonando o PC pra variar, e' uma otima alternativa para dar aquela formatada no HD e reinstalar tudo denovo, com todos os programas basicos e drivers, so que agora em apenas 6 minutos!
    Agradeco a todos pela atencao.
    Um abraco!
    Guilherme