Como posso usar o DD para migrar dados de uma unidade antiga para uma nova unidade?


29

Estou atualizando o disco rígido interno SATA do meu laptop de 40G para 160G. Eu tenho um desktop Linux / Ubuntu que possui uma placa SATA. Na verdade, eu gostaria de fazer o mesmo por algumas caixas do CentOS e FreeBSD no trabalho, e parece que isso teria a mesma solução.

Ouvi dizer que posso usar o DD para espelhar a partição 40G na unidade 160G ou que posso salvar a partição 40G como uma imagem no meu sistema local e depois copiar essa imagem 40G na unidade 160G.

Alguém pode descrever como eu posso fazer isso? Preciso de outros utilitários, como o gparted


3
Ahha ... Esta é a primeira pergunta !!
Harshit Shrivastava

2
Pergunta número um! Eu também sou o proponente deste site e pensei em começar o site com uma pergunta bastante técnica. Fui recompensado com uma camiseta e alguns ganhos.
Stefan Lasiewski

Respostas:


6

Sua primeira tarefa seria conectar os dois discos a um sistema Linux existente ou conectar o novo disco ao sistema original.

Você deve ter muito cuidado, pois é muito simples copiar o disco em branco em cima do bom disco!

Para terminar com os setores de inicialização e tudo, você faria algo como:

dd if=/dev/hdx of=/dev/hdy

Onde hdxestá o seu disco de 40G e o hdyseu disco de 160G. Você notará que não há números de partição como /dev/hdx1. Isso copia o disco inteiro, as informações da partição e tudo.

Seu novo disco será igual ao disco antigo, 40G alocado. Ele deve inicializar quando colocado novamente no seu laptop. Espero que você tenha usado o LVM? Caso contrário, espero que você não tenha usado todas as partições? Ultrapassar esse ponto requer muito mais informações.

Outra solução é despejar cada partição individual. Isso requer muito mais conhecimento da situação, pois você precisará recriar as informações de inicialização.

Tudo isso é melhor usado para clonar computadores, não para atualizar discos rígidos. É muito melhor restaurar para uma nova instalação usando seus backups.


17

Normalmente, eu sugeriria uma solução como "conecte o segundo disco rígido usando um gabinete externo, inicialize a partir de um CD do linux e use um comando como dd if=/dev/sda of=/dev/sdb bs=1G, mas como você deseja usar a mesma técnica para o trabalho, eu tenho o que pode ser uma solução melhor.

Todos os meus servidores e laptops são fotografados no trabalho usando o Clonezilla . Existem duas maneiras de usá-lo ... um deles usa um servidor dedicado e provavelmente é um exagero para você, e outro que utiliza um CD de inicialização e um disco rígido externo.

A idéia é que você inicialize com o CD Clonezilla e tenha uma unidade USB externa muito maior (maior que a unidade de origem). O Clonezilla orienta você na criação de uma imagem da unidade existente, após a qual você desliga a máquina, substitui a unidade, reinicia no Clonezilla e orienta você na restauração dos dados.

Isso lhe dá a oportunidade de A) colocar a imagem em uma unidade maior e B) manter um backup dos dados.


5

Embora você possa usar o dd para copiar um disco como esse, isso tem várias desvantagens:

  1. O destino deve ser exatamente do mesmo tamanho ou maior que a origem
  2. Após a cópia, você precisará redimensionar as partições para usar qualquer espaço adicional
  3. Você perderá tempo copiando espaço livre
  4. Qualquer fragmentação presente no disco antigo é preservada

O uso de um programa de criação de imagens como Ghost4Linux, partclone ou clonezilla cuida dos números 2 e 3. Você também pode simplesmente formatar o novo disco, montá-lo e copiar todos os arquivos com cp -ax(como root) e, em seguida, reinstalar o carregador de inicialização na nova unidade. Este método não sofre de nenhuma das desvantagens acima.


3

Para simplesmente copiar a partição, você pode usar dd if=/dev/srcDrive of=/dev/dstDriveou algo assim. Eu recomendo que você leia sua página de manual . Desculpe, não posso dar muito mais informações, pois estou trabalhando agora.


2

Você perguntou como fazer isso com o dd, mas eu tive um sucesso melhor ao canalizar a saída do dump para a restauração . Dado o ad1s1a de origem e o ad2s1a de destino :

$ mount /dev/ad2s1a /target
$ cd /target
$ dump -0Lauf - /dev/ad1s1a  | restore -rf -

Eu tentei isso no FreeBSD, na verdade eu o encontrei no Fórum FreeBSD


1

Um exemplo simples é este:

dd if=/dev/sda of=/dev/sdb

Mas se você tiver algumas necessidades especiais, leia realmente a página de manual (man dd) ou pesquise no Google.

Outra idéia poderia ser o uso do rsync (não se esqueça de definir as opções corretas, como -az [empacota os arquivos em vez de copiar um arquivo após o outro] ou --numeric-ids [usa o uid / gid em vez de nomes como "root"] e talvez alguns outros). O link contém muitos exemplos.

Se o novo HDD não tiver partições, você pode usar gparted ou palimpset.

Quando você não tiver certeza, formataria o disco rígido e sincronizaria os dados com o rsync.


1

Bem, eu fiz migrações semelhantes a essa inicializando com os dois discos conectados e um CD ao vivo.

  1. Você recria as informações da partição do primeiro disco no segundo, possivelmente aumentando algumas partições para usar o espaço extra, e assim por diante.
  2. Então suponha que você tenha / dev / sda {1,2,3,4} e deseje copiá-los para / dev / sdb {1,2,3,4}, mkdir / mnt / sd {a, b} {1 , 2,3,4} e monte cada partição em cada diretório (ou, se você quiser fazer uma por uma, poderá criar um / mnt / origin / mnt / destination e montar / desmontar cada par)
  3. Então você faz um cp -avr / mnt / origin /. / mnt / destination / (ou um cp -avr / mnt / sda1 /. / mnt / sdb1 /
  4. Aguarde enquanto navega na web :)
  5. Lembre-se de reinstalar o grub, lilo ou qualquer gerenciador de inicialização que você usar.

Fazendo dessa maneira você desfragmentará os arquivos à medida que eles são copiados, você também pode alterar os sistemas de arquivos nas partições (migrar de reiserfs ou ext3 para ext4, etc.), mas lembre-se de editar o arquivo / etc / fstab depois de copiar para adequá-lo a nova situação.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.