Introducción
De vez en cuando hay que actualizar algunos componentes de los ordenadores, bien porque el rendimiento se ha deteriorado mucho o bien porque están llegando al fin de su vida útil. Este último fue mi caso hace unos meses: en mi ordenador principal de trabajo en casa tenía un antiguo disco duro mecánico y, aunque tengo un NAS al que se sincronizan todos los datos importantes de todos los ordenadores de casa, para poder trabajar necesitaba cambiarlo.
Después de leer bastante, decidí hacer el cambio de un SATA HDD a un SATA SSD del mismo tamaño (o al menos eso era lo que yo pensaba, pero no fue así). Una vez en casa con los discos duros montados en el ordenador, empecé a hacer el trasvase de información con el comando dd.
Cerca del final de la copia, al enviar la información de la última partición, el resultado fue que no se había podido completar la copia porque no había suficiente espacio en el disco duro de destino. Aun pensando que podía recuperar los datos con un par de comandos de UNIX, preferí hacer las cosas más ortodoxas y asegurarme sin error en dd que todo se había trasladado correctamente.
¿Qué hacer en ese momento?
La opción más sencilla hubiera sido adquirir uno de más capacidad. Sin embargo, ya que el disco duro a reemplazar estaba muy libre de espacio en la última partición, decidí redimensionar la última partición hasta adaptarla a la geometría de la misma en el otro disco duro y realizar la copia de la última partición de nuevo.
ADVERTENCIA: Haz las siguientes operaciones bajo tu propio riesgo.
Descargar Redo Rescue y arrancar desde Ventoy
Recordé que tengo una instalación de Ventoy en un disco duro USB que me permite instalar las ISOs de sistemas operativos para probarlos, así que decidí descargar la última ISO de Redo Rescue (antes Redo Backup) e instalarla para, partiendo de ahí, realizar todo el trabajo evitando generar cualquier problema al disco duro mecánico todavía en uso.
La instalación es realmente sencilla:
- Descargar la ISO de Redo Rescue.
- Copiar la distribución a la unidad de Ventoy.

Rearrancamos el ordenador con los dos discos duros funcionando desde la unidad USB de Ventoy, que habrá detectado la nueva ISO y nos la proporciona como opción para seleccionar.
Primeros pasos
Dentro de Redo Rescue la intención es hacer más pequeña la última partición del disco duro de origen para adaptarla al tamaño de la partición del disco duro de destino. Para este caso es conveniente realizar los backups pertinentes para evitar perder información alguna.
Una vez que se tiene la copia de seguridad de la partición afectada, dentro de Redo Rescue está el programa GParted, que evita tener que realizar las operaciones manualmente con fdisk, e2fsck o resize2fs.
En el disco de origen existe una última partición con un tamaño ligeramente superior:


- Miramos la geometría de esa partición en el disco de destino:

- Y la comparamos con la del disco de origen:

- Redimensionamos el disco de origen haciéndolo más pequeño:

- Aplicamos las operaciones:

- El disco duro dejará un cierto tamaño al final sin uso, al menos de momento:

A partir de ahora se puede realizar la copia de un sistema a otro. Para ello, sería necesario ejecutar los siguientes comandos:
# Copiando MBR
dd if=/dev/sdb of=/dev/sda bs=512 count=1
# Copiando particiones
for i in {1..4}; do
echo "Executing: dd if=/dev/sda${i} of=/dev/sdb${i} bs=1M conv=sync,noerror,notrunc status=progress"
dd if=/dev/sda${i} of=/dev/sdb${i} bs=1M conv=sync,noerror,notrunc status=progress
done
Una vez que el proceso ha finalizado y tenemos todas las particiones copiadas, vamos a asegurarnos de que el MBR (estilo antiguo) contiene todo lo necesario:
sudo dd bs=512 count=1 if=/dev/sdb 2>/dev/null | strings
ZRr=
`|f
\|f1
GRUB
Geom
Hard Disk
Read
8kTU
sudo dd bs=512 count=1 if=/dev/sda 2>/dev/null | strings
ZRr=
`|f
\|f1
GRUB
Geom
Hard Disk
Read
8kTU
Sustituyendo el antiguo disco duro por el nuevo, el ordenador vuelve a funcionar con un excelente rendimiento.