Procedimiento técnico para clonar remotamente la raíz de un servidor Debian en producción hacia un disco SAS de menor tamaño (146 GB) alojado en un servidor secundario de mantenimiento, preservando el arranque GPT/BIOS, configurando partición Swap dedicada y garantizando la compatibilidad con unidades de datos secundarias (/mnt/data_storage).
1. Topología y Entorno de Servidores
+-------------------------------------------------------------+
| SERVIDOR DE PRODUCCIÓN (Origen) |
| Modelo: Servidor Primario (ej. HP ProLiant ML350 G6) |
| Hostname: srv-prod.dominio.edu.pe (IP_PRODUCCION) |
| - Disco SAS 1: Sistema Operativo Debian 13 (/dev/sda) |
| - Disco SATA 2 (5 TB): Datos web en /mnt/data_storage |
+-------------------------------------------------------------+
|
Red LAN (SSH / rsync)
|
v
+-------------------------------------------------------------+
| SERVIDOR DE DESTINO / MANTENIMIENTO |
| Modelo: Servidor Secundario (ej. HP ProLiant ML150 G6) |
| IP: IP_MANTENIMIENTO (Usuario: admin_user) |
| - Disco SAS de Reemplazo: 146 GB (/dev/sdb) |
+-------------------------------------------------------------+
- Objetivo: Disponer en el servidor de mantenimiento de un disco SAS de 146 GB 100% arrancable e idéntico al sistema en producción, listo para ser insertado físicamente en el servidor de producción ante una falla crítica del disco principal.
2. Preparación y Particionado del Disco Destino (146 GB)
Ejecutar conectado por SSH en el servidor secundario de mantenimiento (IP_MANTENIMIENTO):
Bash
# 1. Limpiar firmas y tablas de particiones previas
sudo wipefs -a /dev/sdb
# 2. Crear tabla de particiones GPT
sudo parted -s /dev/sdb mklabel gpt
# 3. Partición BIOS Boot para GRUB (1 MB)
sudo parted -s /dev/sdb mkpart bios_grub 1MiB 2MiB
sudo parted -s /dev/sdb set 1 bios_grub on
# 4. Partición Raíz del sistema (131 GiB)
sudo parted -s /dev/sdb unit GiB mkpart primary ext4 2MiB 131GiB
# 5. Partición Swap dedicada (~5.7 GiB restantes)
sudo parted -s /dev/sdb unit GiB mkpart primary linux-swap 131GiB 100%
# 6. Formatear la raíz replicando el UUID del disco de producción
# (Reemplazar con el UUID de la raíz obtenido del servidor origen: blkid -s UUID -o value /dev/sda1)
sudo mkfs.ext4 -F -U "<UUID_ROOT_ORIGEN>" -L "CLON_ROOT" /dev/sdb2
# 7. Formatear la partición Swap
sudo mkswap -L "SWAP_CLON" /dev/sdb3
3. Sincronización Remota de la Raíz por Red (rsync)
Montamos la partición destino en el servidor de mantenimiento y sincronizamos la raíz desde el servidor de producción excluyendo sistemas de archivos virtuales y el almacenamiento secundario de 5 TB:
Bash
# Crear directorio de montaje y montar la raíz de destino
sudo mkdir -p /mnt/clon
sudo mount /dev/sdb2 /mnt/clon
# Sincronización remota directa por SSH desde el servidor de producción
sudo rsync -aHAXv --delete --numeric-ids \
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} \
admin_user@srv-prod.dominio.edu.pe:/ /mnt/clon/
# Recrear directorios esenciales y permisos
sudo mkdir -p /mnt/clon/{dev,proc,sys,tmp,run,mnt/data_storage,media}
sudo chmod 1777 /mnt/clon/tmp
4. Instalación del Gestor de Arranque GRUB (chroot)
Montamos los sistemas de archivos virtuales para operar dentro del entorno clonado:
Bash
# Montar recursos del kernel hacia el entorno clon
sudo mount --bind /dev /mnt/clon/dev
sudo mount --bind /dev/pts /mnt/clon/dev/pts
sudo mount --bind /proc /mnt/clon/proc
sudo mount --bind /sys /mnt/clon/sys
# Instalar GRUB en el disco de reemplazo (/dev/sdb)
sudo chroot /mnt/clon grub-install /dev/sdb
sudo chroot /mnt/clon update-grub
5. Configuración de fstab e initramfs para Emergencias
Configuramos el arranque para que reconozca la nueva partición Swap creada y agregamos la opción nofail en la unidad de datos para evitar bloqueos durante pruebas preliminares:
Bash
# 1. Obtener el UUID generado en la partición sdb3
SWAP_UUID=$(sudo blkid -s UUID -o value /dev/sdb3)
# 2. Configurar la nueva Swap en el fstab del clon
sudo sed -i "s|^#\?\s*UUID=[a-f0-9-]*\s\+none\s\+swap.*|UUID=${SWAP_UUID} none swap sw 0 0|" /mnt/clon/etc/fstab
# 3. Asegurar el montaje automático del disco de datos secundario con tolerancia a fallos (nofail)
sudo sed -i "s|^#\?\s*\(UUID=<UUID_DISCO_DATOS>\s\+/mnt/data_storage\s\+ext4\s\+\)[^ ]*|\1defaults,nofail|" /mnt/clon/etc/fstab
# 4. Enlazar la nueva Swap al initramfs y regenerar la imagen del kernel
sudo chroot /mnt/clon /bin/bash -c "echo 'RESUME=UUID=${SWAP_UUID}' > /etc/initramfs-tools/conf.d/resume && update-initramfs -u"
Esquema final verificado de /mnt/clon/etc/fstab
Ini, TOML
# /etc/fstab: Estructura del sistema clonado
UUID=<UUID_ROOT_ORIGEN> / ext4 errors=remount-ro 0 1
UUID=<UUID_SWAP_DESTINO> none swap sw 0 0
UUID=<UUID_DISCO_DATOS> /mnt/data_storage ext4 defaults,nofail 0 2
6. Desmontaje Seguro y Validación del Disco
Bash
# Desmontar entornos virtuales y la partición clonada
sudo umount /mnt/clon/dev/pts /mnt/clon/dev /mnt/clon/proc /mnt/clon/sys 2>/dev/null
sudo umount /mnt/clon
# Confirmar liberación del disco
lsblk /dev/sdb
Validación en Emulador QEMU (Opcional)
Para verificar de forma aislada que el disco arranca correctamente sin caer en Emergency Mode:
Bash
sudo qemu-system-x86_64 -m 1024M -drive file=/dev/sdb,format=raw,cache=none -display curses
(Para salir de QEMU: presionar ESC + 2, escribir quit y presionar Enter).
7. Plan de Contingencia y Reemplazo Físico en Producción
Cuando el disco SAS principal presente falla en el servidor de producción:
- Apagar el servidor de producción y retirar el disco dañado de su bahía SAS.
- Extraer el disco de 146 GB preparado del servidor de mantenimiento e insertarlo en la bahía principal de producción.
- Encender el servidor:
- Si se requiere seleccionar el disco manualmente, presionar la tecla del Boot Menu (ej.
F11) durante el POST.
- Si se requiere seleccionar el disco manualmente, presionar la tecla del Boot Menu (ej.
- Tras iniciar sesión:
- Comprobar la partición raíz activa:
lsblk - Confirmar la partición Swap en uso:
swapon --show - Validar el montaje automático del almacenamiento secundario:
df -h /mnt/data_storage
- Comprobar la partición raíz activa: