Copiar una partición GPT (GUID Partition Table) de un disco a otro implica copiar tanto la tabla de particiones como los datos contenidos en las particiones. A continuación, te explico paso a paso cómo hacerlo de forma segura y efectiva.
🔧 Herramientas necesarias
- dd : Para copiar bloques de datos directamente.
- sgdisk : Especializado para manipular tablas GPT.
- parted o gdisk : Opcional para revisar o reparar estructuras GPT.
- Acceso root/sudo si es necesario.
📋 Suposiciones del escenario
Vamos a asumir lo siguiente:
- Disco fuente: /dev/sda
- Disco destino: /dev/sdb
- Ambos discos tienen formato GPT.
- El tamaño del disco destino (/dev/sdb) es mayor que el del fuente (/dev/sda).
- Queremos copiar solamente las dos primeras particiones.
⚠️ Importante: Antes de proceder, haz una copia de seguridad de tus datos importantes.
✅ Pasos para copiar una partición GPT de un disco a otro
1. Verificar los discos conectados
lsblk
Esto te ayudará a confirmar qué dispositivos son /dev/sda y /dev/sdb.
2. Copiar la tabla de particiones GPT
Usaremos sgdisk para copiar la tabla de particiones:
sudo sgdisk -R /dev/sdb /dev/sda
-R: Copia la tabla GPT desde /dev/sda a /dev/sdb.
Es importante destacar que este comando no copia el contenido de las particiones, solamente copia la estructura de la tabla de particiones.
3. Aleatorizar GUIDs (opcional)
Al realizar la copia de un disco a otro, el identificador va a ser el mismo en ambos discos. Si vamos a mantener ambos discos instalados en el equipo, para evitar conflictos, tenemos que generar nuevos GUID para el disco de destino.
sudo sgdisk -G /dev/sdb
-G: Genera nuevos GUID aleatorios para el disco destino.
Ahora bien, si un disco va a reemplazar a otro, lo mejor es no generar nuevos GUID. De este modo, no tendremos que realizar ningún cambio cuando saquemos el disco reemplazado porque los identificadores son los mismos.
4. Copiar el contenido de las particiones que queramos
Podemos usar dd para copiar todo el contenido del disco:
sudo dd if=/dev/sda of=/dev/sdb bs=64K status=progress
O podemos copiar solamente las particiones que queramos:
sudo dd if=/dev/sda1 of=/dev/sdb1 bs=64K status=progress
dd if=/dev/sda2 of=/dev/sdb3 bs=64K status=progress
Explicación de los parámetros del comando:
- if: Disco fuente.
- of: Disco destino.
- bs=
64K
: Bloque de lectura/escritura (puede ajustarse). - status=progress: Muestra avance (en sistemas modernos).
⚠️ Nota: Este método puede tardar mucho si los discos son grandes.
5. Verificar la nueva tabla GPT
sudo sgdisk -v /dev/sdb
Debería devolver "No problems found" si todo está bien.
⚠️ Advertencia:
sgdisk modifica directamente la tabla de particiones. No pide confirmación, así que debes usarlo con cuidado.