it-swarm-es.tech

¿Cómo puedo usar DD para migrar datos de una unidad anterior a una nueva?

Estoy actualizando el disco duro interno SATA en mi computadora portátil de una unidad de 40G a una unidad de 160G. Tengo un escritorio Linux/Ubuntu que tiene una tarjeta SATA. En realidad, me gustaría hacer lo mismo para un par de cajas CentOS y FreeBSD en el trabajo, y parece que esto tendría la misma solución.

He oído que puedo usar DD para reflejar la partición 40G en la unidad 160G, o que puedo guardar la partición 40G como una imagen en mi local sistema, y ​​luego copie esa imagen 40G a la unidad 160G.

¿Alguien puede describir cómo puedo hacer esto? ¿Necesito alguna otra utilidad, como gparted

30
Stefan Lasiewski

Su primera tarea sería conectar ambos discos a un sistema Linux existente o conectar el nuevo disco al sistema original.

¡Debe ser muy cuidadoso ya que es muy simple copiar el disco en blanco encima del disco bueno!

Para terminar con los sectores de arranque y todo, haría algo como:

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

Donde hdx es su disco 40G y hdy es su disco 160G. Notarás que no hay números de partición como /dev/hdx1. Esto copia todo el disco, la información de partición y todo.

Su nuevo disco será igual que el disco anterior, 40G asignado. Debería arrancar cuando se vuelve a colocar en su computadora portátil. ¿Espero que hayas usado LVM? De lo contrario, ¿espero que no hayas utilizado todas las particiones? Superar este punto requiere mucha más información.

Otra solución es volcar cada partición individual. Esto requiere mucha más conciencia de la situación, ya que deberá volver a crear la información de arranque.

Todo esto se usa mejor para clonar computadoras, no para actualizar discos duros. Es mucho mejor restaurar a una nueva instalación utilizando sus copias de seguridad.

6
Stephen Jazdzewski

Normalmente sugeriría una solución como "conectar el segundo disco duro usando un gabinete externo, arrancar desde un CD de Linux y luego usar un comando como dd if=/dev/sda of=/dev/sdb bs=1G, pero dado que desea utilizar la misma técnica para el trabajo, tengo lo que puede ser una mejor solución.

Todos mis servidores y computadoras portátiles obtienen imágenes en el trabajo usando Clonezilla . Hay dos formas de usarlo ... una de ellas utiliza un servidor dedicado y probablemente es excesivo para usted, y otra que utiliza un CD de arranque y un disco duro externo.

La idea es que inicies con el CD de Clonezilla y tengas una unidad USB externa más grande (más grande que la unidad fuente). Clonezilla lo guía a través de la creación de una imagen de la unidad existente, después de lo cual apaga la máquina, reemplaza la unidad, luego inicia de nuevo en Clonezilla y lo guía a través de la restauración de los datos.

Esto le brinda la oportunidad de A) colocar la imagen en un disco más grande y B) retener una copia de seguridad de los datos.

17
Matt Simmons

Si bien puede usar dd para copiar un disco así, hacerlo tiene una serie de inconvenientes:

  1. El destino debe ser exactamente del mismo tamaño o mayor que el origen
  2. Después de copiar, deberá cambiar el tamaño de las particiones para usar cualquier espacio adicional
  3. Perderás el tiempo copiando espacio libre
  4. Cualquier fragmentación presente en el disco viejo se conserva

El uso de un programa de imágenes como Ghost4Linux, partclone o clonezilla al menos se encarga de los números 2 y 3. También puede simplemente formatear el nuevo disco, montarlo y copiar todos los archivos con cp -ax (como root), y luego reinstale el cargador de arranque en la nueva unidad. Este método no sufre ninguno de los inconvenientes anteriores.

5
psusi

Para copiar simplemente la partición, puede usar dd if=/dev/srcDrive of=/dev/dstDrive o algo como esto. Le recomendaría que lea su página de manual . Lo siento, no puedo dar mucha más información, ya que estoy en el trabajo ahora ...

3
Berne

Usted preguntó cómo hacerlo con dd, pero tuve un mejor éxito al canalizar la salida de dump en restore . Dada la fuente ad1s1a y el destino ad2s1a :

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

Probé esto en FreeBSD, en realidad lo encontré en FreeBSD Forum

2
zvolkov

Un ejemplo simple es este:

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

Pero si tiene algunas necesidades especiales, debería leer la página de manual (man dd) o buscar en Google.

Otra idea podría ser el uso de rsync (no olvide establecer las opciones correctas, como -az [empaqueta los archivos en lugar de copiar un archivo tras otro] o --numeric-ids [usa el uid/gid en lugar de nombres como "root"] y tal vez algunos otros). El enlace contiene muchos ejemplos.

Si el nuevo HDD no tiene particiones, puede usar gparted o palimpset.

Cuando no esté seguro, formatearía el HDD y luego sincronizaría los datos con rsync.

1
fwaechter

Bueno, he realizado migraciones similares a esta arrancando con ambos discos conectados y un Live CD.

  1. Vuelve a crear la información de partición del primer disco en el segundo, posiblemente haciendo que algunas particiones sean más grandes para usar el espacio extra, y así.
  2. Luego, suponga que tiene/dev/sda {1,2,3,4} y desea copiarlos en/dev/sdb {1,2,3,4}, usted mkdir/mnt/sd {a, b} {1 , 2,3,4} y monte cada partición en cada directorio (o si desea hacerlo uno por uno, puede hacer un/mnt/Origin/mnt/destination y montar/desmontar cada par)
  3. Luego haces un cp -avr/mnt/Origin /./mnt/destination/(o un cp -avr/mnt/sda1 /./mnt/sdb1 /
  4. Espera mientras navegas por la web :)
  5. Recuerde que debe reinstalar grub, lilo o cualquier gestor de arranque que use.

Al hacerlo, desfragmentará los archivos a medida que se copian, también puede cambiar los sistemas de archivos en las particiones (migrar de reiserfs o ext3 a ext4, etc.), pero recuerde editar/etc/fstab después de copiar para adaptar La nueva situación.

1
Jorge Nerín