Comando DD

1. Comando DD

william
wildta

(usa CentOS)

Enviado em 02/06/2016 - 09:55h

Ola galera..

Estou tentando fazer um p2v e me parece q a melhor solução para o Linux é criar uma imagem através do comando DD.
O problema é o seguinte:
a repartição que estou dando o comando DD tem apenas 14gb utilizado, mas com o comando gera um arquivo com quase 600gb.
Sabe me dizer como resolver isso?
Segue o comando:
dd conv=sync,noerror bs=64k if=/dev/sda4 |pv|dd of=/mnt/hd_externo/sda4.img


vlw galera!!




  


2. Re: Comando DD

Matheus
pylm

(usa Gentoo)

Enviado em 02/06/2016 - 10:15h

No seu comando vc especifica /dev/sda e /dev/sda4 para serem copiados então está mandando copiar TODO o HD e também uma partição dele, tenta só com /dev/sda4


3. Re: Comando DD

william
wildta

(usa CentOS)

Enviado em 02/06/2016 - 10:32h

ops...foi mal..srsr..

já corrigi. Na verdade fiz só com o sda4


4. help?

william
wildta

(usa CentOS)

Enviado em 03/06/2016 - 10:30h

Mais alguém pode me ajudar sobre?
pf galera!!!!
Já to começando ficar sem opções..srsr...


5. Re: Comando DD

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/06/2016 - 13:39h

Tenta assim:
dd if=/dev/sda1 | gzip > backup_hd.img.gz 

Mais detalhes aqui:
https://www.vivaolinux.com.br/dica/Usando-o-comando-dd


6. Re: Comando DD

Perfil removido
removido

(usa Nenhuma)

Enviado em 03/06/2016 - 15:52h

PauloHAC escreveu:

Tenta assim:
dd if=/dev/sda1 | gzip > backup_hd.img.gz 

Mais detalhes aqui:
https://www.vivaolinux.com.br/dica/Usando-o-comando-dd


Esse comando pode ser mais eficiente se zerar os inodes da partição.

* monte a partição a ser clonada/compactada
* entre nela com comando cd
* digite um comando como dd if=/dev/zero of=zerozero ibs=1048576
* espere até o comando encerrar, vai dar um erro, é porque a partição ficou sem espaço
* essa partição sem espaço jamais pode ser uma partição de trabalho sua senão dá mer.da
* depois apague o arquivo zerozero com um simples rm
* pronto, seu inodes estão zerados e o tamanho da compactação com dd sairá menor ainda.
* com este procedimento eventuais arquivos deletados não poderão ser recuperados, pois o sistema de arquivos foi limpo de eventuais fantasmas de arquivos deletados

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



7. Re: Comando DD

william
wildta

(usa CentOS)

Enviado em 03/06/2016 - 16:00h

listeiro_037 escreveu:

PauloHAC escreveu:

Tenta assim:
dd if=/dev/sda1 | gzip > backup_hd.img.gz 

Mais detalhes aqui:
https://www.vivaolinux.com.br/dica/Usando-o-comando-dd


Esse comando pode ser mais eficiente se zerar os inodes da partição.

* monte a partição a ser clonada/compactada
* entre nela com comando cd
* digite um comando como dd if=/dev/zero of=zerozero ibs=1048576
* espere até o comando encerrar, vai dar um erro, é porque a partição ficou sem espaço
* essa partição sem espaço jamais pode ser uma partição de trabalho sua senão dá mer.da
* depois apague o arquivo zerozero com um simples rm
* pronto, seu inodes estão zerados e o tamanho da compactação com dd sairá menor ainda.
* com este procedimento eventuais arquivos deletados não poderão ser recuperados, pois o sistema de arquivos foi limpo de eventuais fantasmas de arquivos deletados

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



Interessante isso aeh mais tive algumas dúvidas..
Estou fazendo a copia da repartição no HD externo...
Este comando q me passou irei executar aonde? No HD referente que desejo fazer o backup ou no HD externo?



8. Re: Comando DD

Paulo
paulo1205

(usa Ubuntu)

Enviado em 03/06/2016 - 16:21h

O comando dd possívelmente não é a melhor opção para fazer o que você quer.

Áreas do disco que não estão em uso podem conter qualquer coisa, não simplesmente zeros, pois elas podem estar vazias agora, mas ter sido usadas no passado. Então, mesmo que você submeta a saída do dd a compressão, nada garante que a compressão será muito eficiente.

Você poderia, em vez disso, usar o tar (de preferência com opções que copiem ACLs e contextos do SELinux), e levar apenas o que estiver em uso no sistema de arquivos. Isso deve reduzir o tamanho total da transferência, mas tem algumas implicações, como, por exemplo, ter de particionar o disco na máquina de destino explicitamente e formatar e montar as partições criadas antes de se iniciar a cópia, e, após terminar a cópia, será necessário instalar o boot com o Grub (ou outro gestor de boot qualquer).

Tanto com o dd como quanto com o tar, o ideal seria montar os discos na máquina de origem como read-only, porque o conteúdo do disco numa máquina em produção pode ser modificado durante a cópia, e isso pode gerar dados inconsistentes na máquina de destino (um pedaço da cópia feito antes da alteração, outro pedaço depois). Infelizmente, nem sempre é possível parar uma máquina de produção para fazer o P2V. No entanto, se você trabalhar com LVM ou sistemas de arquivos que suportem snapshots (como Btrfs, XFS ou ZFS), você pode tirar um snapshot antes do P2V, e rodar o tar em cima do snapshot, e não do dado corrente.


9. Re: Comando DD

william
wildta

(usa CentOS)

Enviado em 06/06/2016 - 10:59h

paulo1205 escreveu:

O comando dd possívelmente não é a melhor opção para fazer o que você quer.

Áreas do disco que não estão em uso podem conter qualquer coisa, não simplesmente zeros, pois elas podem estar vazias agora, mas ter sido usadas no passado. Então, mesmo que você submeta a saída do dd a compressão, nada garante que a compressão será muito eficiente.

Você poderia, em vez disso, usar o tar (de preferência com opções que copiem ACLs e contextos do SELinux), e levar apenas o que estiver em uso no sistema de arquivos. Isso deve reduzir o tamanho total da transferência, mas tem algumas implicações, como, por exemplo, ter de particionar o disco na máquina de destino explicitamente e formatar e montar as partições criadas antes de se iniciar a cópia, e, após terminar a cópia, será necessário instalar o boot com o Grub (ou outro gestor de boot qualquer).

Tanto com o dd como quanto com o tar, o ideal seria montar os discos na máquina de origem como read-only, porque o conteúdo do disco numa máquina em produção pode ser modificado durante a cópia, e isso pode gerar dados inconsistentes na máquina de destino (um pedaço da cópia feito antes da alteração, outro pedaço depois). Infelizmente, nem sempre é possível parar uma máquina de produção para fazer o P2V. No entanto, se você trabalhar com LVM ou sistemas de arquivos que suportem snapshots (como Btrfs, XFS ou ZFS), você pode tirar um snapshot antes do P2V, e rodar o tar em cima do snapshot, e não do dado corrente.


top essa explicação...Nem sabia que tem como criar um snapshot em linux.
cara, se nao te atrapalhar me chama no skype (william_quadros) pra eu entender melhor.

Por acaso tem como replicar esse snapshot em outra maquina? Caso sim, meu problema ta resolvido..



10. Re: Comando DD

Paulo
paulo1205

(usa Ubuntu)

Enviado em 09/06/2016 - 21:13h

Se você usa LVM, existe um HOWTO do Linux justamente sobre como fazer back-ups com snapshot. O artigo é este: http://www.tldp.org/HOWTO/LVM-HOWTO/snapshots_backup.html. A única diferença é que em vez de você direcionar o back-up para um dispositivo de fita, você vai redirecionar a saída para um SSH com a máquina destino.

Eis mais ou menos como você pode fazer:

#### Máquina destino do p2v

# Boot com live CD ou pendrive.

# Particiona discos (de preferência com LVM ou outro sistema de arquivos esperto; lembrar de criar partição de boot).

# Monta partições criadas (por exemplo, usando “/mnt/p2v” como raiz).

cd /mnt/p2v
ssh root@maquina-origem \
'comando_de_criar_snapshot && \
comando_de_montar_snapshot && \
cd /diretorio_do_snapshot_montado && \
tar --sparse -czf - . && \
cd / && \
comando_desmontar_snapshot && \
comando_remover_snapshot' | tar --sparse -xvpzf -

mount --bind /proc /mnt/p2v/proc
mount --bind /sys /mnt/p2v/sys
mount --bind /dev /mnt/p2v/dev
mount --bind /dev/pts /mnt/p2v/dev/pts
chroot /mnt/p2v bash --login

vim /etc/fstab # Para fazer ajustes nos pontos de montagem após a cópia (inclusive /boot).
vim /etc/hosts # Para ajustar IP local da máquina.
vim /etc/network/interfaces # Ubuntu/Debian; no RHEL/CentOS, use “vim /etc/sysconfig/network-scripts/ifcfg-eth0” ou coisa parecida.
# Outros ajustes de que você lembrar (firewall, Apache, Samba etc.).
depmod -a
update-grub # Ou equivalente. Se você usar UEFI, vai ser mais complicado que isso.
exit # Sai do chroot.

umount /mnt/p2v/dev/pts
umount /mnt/p2v/dev
umount /mnt/p2v/sys
umount /mnt/p2v/proc

reboot







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts