¿Cómo puedo usar DD para migrar datos de un disco viejo a un disco nuevo?


29

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. Realmente 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.

Escuché que puedo usar DD para duplicar la partición 40G en la unidad 160G, o que puedo guardar la partición 40G como una imagen en mi sistema local y luego copiar esa imagen 40G en la unidad 160G.

¿Alguien puede describir cómo puedo hacer esto? ¿Necesito otras utilidades, como gparted


3
Ahha ... ¡Esta es la primera pregunta!
Harshit Shrivastava

2
¡Pregunta número uno! También soy el proponente de este sitio, y pensé en comenzar con una pregunta bastante técnica. Fui recompensado con una camiseta y algo de botín.
Stefan Lasiewski

Respuestas:


6

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

¡Debe tener mucho cuidado 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

¿Dónde hdxestá tu disco 40G y hdytu disco 160G? Notarás que no hay números de partición como /dev/hdx1. Esto copia todo el disco, la información de la 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 haya utilizado todas las particiones? Pasar 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.


17

Normalmente sugeriría una solución como "conectar el segundo disco duro usando un gabinete externo, arrancar desde un CD de Linux, luego usar un comando como dd if=/dev/sda of=/dev/sdb bs=1G, pero como quieres usar 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 inicie con el CD de Clonezilla y tenga 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.


5

Si bien puede usar dd para copiar un disco como ese, 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 anterior 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 reinstalar el cargador de arranque en la nueva unidad. Este método no sufre ninguno de los inconvenientes anteriores.


3

Para copiar simplemente la partición, puede usar dd if=/dev/srcDrive of=/dev/dstDriveo algo así. 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 ...


2

Me preguntaste cómo hacerlo con dd, pero tuve más éxito canalizando la salida del volcado a la restauración . Dado el origen 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 el foro de FreeBSD


1

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

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 adaptarlo La nueva situación.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.