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

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

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

Ouvi dizer que posso usarDDpara espelhar a partição 40G na unidade 160G ou que eu possa salvar a partição 40G como uma imagem no meu sistema local e, em seguida, copiar essa imagem 40G para a unidade 160G.

Alguém pode descrever como posso fazer isso? Preciso de algum outro utilitário, comogparted

Responder1

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

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

A idéia é que você inicialize com o CD do Clonezilla e tenha uma unidade USB externa 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 e, em seguida, inicializa novamente 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.

Responder2

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

Você deve sermuitocuidado, pois é muito simples copiar o disco vazio em cima do disco bom!

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

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

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

Seu novo disco será igual ao disco antigo, com 40G alocados. Ele deve inicializar quando colocado de volta no seu laptop. Espero que você tenha usado o LVM? Caso contrário, espero que você não tenha usado todas as partições? Superar 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.

Responder3

Enquanto vocêpodeuse 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 o espaço livre
  4. Qualquer fragmentação presente no disco antigo é preservada

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

Responder4

Você perguntou como fazer isso com dd, mas tive mais sucesso canalizando a saída dejogar foraemrestaurar. Dada a fontead1s1ae o alvoad2s1a:

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

Eu tentei isso no FreeBSD, na verdade encontrei noFórum FreeBSD

informação relacionada