¿Usar DD para clonar solo la partición de Linux en una unidad USB externa?

¿Usar DD para clonar solo la partición de Linux en una unidad USB externa?

Tengo un disco interno de 1 TB que tiene dos particiones de 1/2 TB, una para Windows y otra para Ubuntu 14.04 LTS. La estación se ha convertido principalmente en una estación Linux y ya nunca inicio Windows.

Quería crear una copia de seguridad de la imagen, así que usé DD para clonar la unidad interna en una unidad USB externa de 1 TB. Desafortunadamente, la unidad USB parece tener solo unos pocos Gigabytes menos que la unidad interna y DD terminó con el mensaje de error "No hay suficiente espacio en la unidad". Ahora estoy viendo algo extraño. Cuando expulsé la unidad USB y la volví a enchufar, veo dos particiones de 1/2 GB que parecen estar duplicadas. Tienen GUID idénticos y Nautilus muestra estructuras y contenido de directorios idénticos. Supongo que algo relacionado con la copia incompleta de una de las particiones ha dejado el disco externo roto.

¿Cómo puedo usar DD parasimplemente clona la partición de Linuxal disco externo? Eso es todo lo que realmente quiero.

Respuesta1

Como primero necesita obtener datos sobre su HDD, puede hacerlo escribiendo en la terminal:

sudo fdisk -l

Deberías obtener un resultado como este:

Disk /dev/sda: 149,1 GiB, 160041885696 bytes, 312581808 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x06bd4abe

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048 230055935 230053888 109,7G 83 Linux
/dev/sda2       292970494 312580095  19609602   9,4G  5 Extended
/dev/sda3       230055936 292968447  62912512    30G 83 Linux
/dev/sda5       292970496 312580095  19609600   9,4G 82 Linux swap / Solaris

Partition table entries are not in disk order.

Entonces digamos que /dev/sda3 es la unidad que desea clonar, entonces puede hacer:

dd bs=512 if=/dev/sda of=/dev/sdb1/partition.ddfile seek=230055936 count=$(expr 292968447 - 230055936)

Recuerde que aquí se muestran solo ejemplos que necesitaría para adaptarlos a su situación.

Respuesta2

Manera más fácil:

  1. sudo fdisk -lcomo dice Videonath. Localiza la partición que deseas clonar
  2. dd bs=512 if=/dev/<partition-name> of=/<external-media-path>

p.ejdd bs=512 if=/dev/sda2 of=/dev/sdb1

Nota:

  • dd requiere que el tamaño del objetivo sea mayor o igual al tamaño de la fuente
  • La copia de seguridad creada de esta manera (nivel de partición) no sería arrancable

Respuesta3

Mientras preguntas dd, ¿puedo recomendarte partclone? Está hecho para clonar y restaurar una partición. Necesita ser consciente del sistema de archivos subyacente, la ventaja ddes que copia solo elusadobloquea y ahorra mucho tiempo o espacio, ya que es raro que la parte no utilizada de una partición sea comprimible (basura de datos antiguos en lugar de ceros).

sudo partclone.ext4 -c -b -s /dev/sdaX -o /dev/sdbY 

hará lo que quieras. -csignifica clonar, -bde dispositivo a dispositivo, -ses origen, -oes destino. Además, como hiciste una clonación, los UUID de origen y destino son idénticos. Verifique esto con blkid, utilícelo uuidgenpara generar un nuevo UUID y luego sudo tune2fs /dev/sdbY -U <uuidgen-generated new UUID>cambiarlo.

Tener dos UUID idénticos en la misma máquina podría incluso ser la causa principal de los problemas que tuvo con el estado "roto" del dispositivo externo.

Antes de hacer esto, es necesario configurar el dispositivo de destino fdiskpara que la nueva partición no sea más pequeña que la antigua. Si es más grande, puede hacer crecer la partición clonada posteriormente hasta gpartedel nuevo tamaño máximo.

información relacionada