Estrategias de reversión
do-release-upgrade de Ubuntu no admite degradaciones nativas. Si surgen problemas graves después de una actualización, debe confiar en los planes de reversión preparados con antelación. Este artículo cubre varias estrategias prácticas de reversión.
Comparación de opciones de reversión
| Opción | Velocidad de recuperación | Complejidad de la preparación | Caso de uso |
|---|---|---|---|
| Cambio de tiempo | Rápido (minutos) | Bajo | Servidores de escritorio y pequeños |
| instantánea de LVM | Rápido (minutos) | Medio | Sistemas que utilizan LVM |
| Instantánea de Btrfs | muy rapido | Medio | sistema de archivos btrfs |
| imagen de disco dd | Lento (depende del tamaño del disco) | Bajo | opción universal |
| Restauración de copia de seguridad + reinstalación | Lento | Alto | último recurso |
| Instantánea de la plataforma en la nube | Rápido | Bajo | Servidores en la nube |
Restauración de instantáneas en Timeshift
Timeshift es la herramienta de instantáneas del sistema más fácil de usar y admite los modos RSYNC y Btrfs.
Crear una instantánea antes de la actualización
# Install Timeshift
sudo apt install timeshift -y
# Create a snapshot
sudo timeshift --create --comments "Pre-upgrade backup" --tags D
# List snapshots
sudo timeshift --listRestaurar desde una instantánea
Método 1: el sistema aún se puede iniciar
# List available snapshots
sudo timeshift --list
# Restore a specific snapshot
sudo timeshift --restore --snapshot "2026-03-24_10-00-00"
# You will be prompted to confirm; choose what to restore
# Reboot after restoration is complete
sudo rebootMétodo 2: el sistema no puede iniciarse
- Arrancar desde un USB Live de Ubuntu
- Instale y ejecute Timeshift en el entorno en vivo:
# In the live environment
sudo apt update
sudo apt install timeshift -y
# Timeshift will automatically detect snapshots on disk
sudo timeshift --list
# Restore a snapshot
sudo timeshift --restore --snapshot "2026-03-24_10-00-00"
sudo rebootNotas de cambio de tiempo
- Timeshift no realiza una copia de seguridad de
/homede forma predeterminada (en modo RSYNC); Es necesario realizar una copia de seguridad de los datos del usuario por separado. - Las instantáneas requieren suficiente espacio en disco
- Las instantáneas en modo RSYNC aumentan de tamaño con el tiempo (incrementales)
- El modo Btrfs es más eficiente pero requiere el sistema de archivos Btrfs
Reversión de instantáneas de LVM
Si el sistema usa LVM (la opción predeterminada durante la instalación del servidor Ubuntu), puede usar instantáneas de LVM para una reversión rápida.
Crear una instantánea de LVM antes de la actualización
# View existing logical volumes
sudo lvs
sudo vgs # Confirm the volume group has enough free space
# Create a snapshot for the root partition (requires free space in the volume group)
sudo lvcreate -L 10G -s -n root-snap /dev/ubuntu-vg/ubuntu-lv
# If there is a separate /var partition
sudo lvcreate -L 5G -s -n var-snap /dev/ubuntu-vg/var-lv
# Verify the snapshot
sudo lvsRevertir desde una instantánea LVM
# Method 1: Merge the snapshot (requires unmounting or operating from Live USB)
# If you can still access the system
# Mark the snapshot for merge (takes effect on next activation)
sudo lvconvert --merge /dev/ubuntu-vg/root-snap
# The merge will execute automatically after reboot
sudo reboot
# Method 2: Operate from Live USB
# Boot from Live USB
sudo apt install lvm2 -y
sudo vgchange -ay # Activate volume groups
# Execute the merge
sudo lvconvert --merge /dev/ubuntu-vg/root-snap
sudo rebootSi no hay espacio libre disponible
# View current LVM usage
sudo vgs
# If VFree is 0, you can shrink an existing logical volume (dangerous, proceed with caution)
# Shrink the filesystem first, then shrink the logical volume
# Recommended to do this from a Live USB
# Check the filesystem
sudo e2fsck -f /dev/ubuntu-vg/ubuntu-lv
# Shrink the filesystem to 15G
sudo resize2fs /dev/ubuntu-vg/ubuntu-lv 15G
# Shrink the logical volume to 16G (leave some headroom)
sudo lvreduce -L 16G /dev/ubuntu-vg/ubuntu-lv
# Now there is space to create a snapshot
sudo lvcreate -L 10G -s -n root-snap /dev/ubuntu-vg/ubuntu-lvReversión de instantáneas de Btrfs
Si utiliza el sistema de archivos Btrfs, las operaciones de instantáneas son casi instantáneas.
Crear una instantánea de Btrfs
# View Btrfs subvolumes
sudo btrfs subvolume list /
# Create a read-only snapshot
sudo btrfs subvolume snapshot -r / /snapshots/pre-upgrade-$(date +%Y%m%d)
# List snapshots
sudo btrfs subvolume list / | grep snapshotRestaurar desde una instantánea Btrfs
# Boot from Live USB
# Mount the Btrfs partition
sudo mount /dev/sda2 /mnt
# View subvolumes
sudo btrfs subvolume list /mnt
# Rename the current root subvolume
sudo mv /mnt/@ /mnt/@broken
# Create a new root subvolume from the snapshot
sudo btrfs subvolume snapshot /mnt/snapshots/pre-upgrade-20260324 /mnt/@
# Reboot
sudo rebootRecuperación de imagen de disco dd
El enfoque más simple pero más universal funciona con cualquier sistema de archivos.
Crear una imagen de disco
# Recommended to create from Live USB to ensure partitions are unmounted
# Full disk image
sudo dd if=/dev/sda of=/mnt/external/full-disk.img bs=4M status=progress
# Compressed image
sudo dd if=/dev/sda bs=4M status=progress | gzip > /mnt/external/full-disk.img.gz
# Back up a specific partition only
sudo dd if=/dev/sda2 of=/mnt/external/root-partition.img bs=4M status=progressRestaurar desde una imagen dd
# Boot from Live USB
# Restore the full disk
sudo dd if=/mnt/external/full-disk.img of=/dev/sda bs=4M status=progress
# Restore a compressed image
gunzip -c /mnt/external/full-disk.img.gz | sudo dd of=/dev/sda bs=4M status=progress
# Restore a single partition
sudo dd if=/mnt/external/root-partition.img of=/dev/sda2 bs=4M status=progress
# Update GRUB after restoration
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install /dev/sda
update-grub
exit
sudo rebootRecuperación de instantáneas del servidor en la nube
Operaciones para varias plataformas en la nube
# Alibaba Cloud - create a snapshot using CLI
aliyun ecs CreateSnapshot --DiskId d-xxx --SnapshotName pre-upgrade
# Tencent Cloud
tccli cbs CreateSnapshot --cli-input-json '{"DiskId":"disk-xxx","SnapshotName":"pre-upgrade"}'
# AWS
aws ec2 create-snapshot --volume-id vol-xxx --description "pre-upgrade"
# To restore: use "Roll Back Disk" or "Create Disk from Snapshot" in each platform's consoleReversión parcial: solución de problemas de actualización
A veces no es necesaria una reversión completa; solucionar problemas específicos puede ser suficiente.
Reparar paquetes rotos
# Configure unconfigured packages
sudo dpkg --configure -a
# Fix dependencies
sudo apt --fix-broken install
# Reinstall a problematic package
sudo apt install --reinstall package-name
# Force reinstall
sudo dpkg -i --force-overwrite /var/cache/apt/archives/package-name*.debArrancar con un kernel más antiguo
# Select "Advanced options for Ubuntu" from the GRUB menu
# Choose an older kernel version to boot
# If the GRUB menu doesn't appear (countdown too short)
# Hold Shift during boot (BIOS) or press Esc (UEFI)
# After entering the system, fix kernel issues
sudo apt install --reinstall linux-image-$(uname -r)
sudo update-grubModo de recuperación
# Select Recovery Mode from GRUB
# Available options:
# - dpkg fix broken packages
# - fsck check filesystem
# - network enable networking
# - root enter root shell
# In the root shell
mount -o remount,rw /
apt --fix-broken install
dpkg --configure -a
rebootResumen de medidas preventivas
La preparación previa a la actualización determina directamente la viabilidad de una reversión:
- Debe hacer: Copia de seguridad completa de los datos (bases de datos, configuraciones, archivos de usuario)
- Muy recomendado: Instantánea del sistema (Timeshift, LVM, Btrfs)
- Servidores en la nube: cree una instantánea del disco
- Máquinas virtuales: cree una instantánea de VM
- Sistemas críticos: actualice primero en un entorno de prueba para su validación
Flujo de decisión de reversión
Issue found after upgrade
|-- Is the issue fixable?
| |-- Yes -> Fix the specific issue (package repair, config adjustment)
| +-- No -> Continue assessment
|
|-- Is there a system snapshot?
| |-- Yes -> Restore snapshot (Timeshift/LVM/Btrfs)
| +-- No -> Continue assessment
|
|-- Is there a disk image?
| |-- Yes -> dd restore
| +-- No -> Continue assessment
|
+-- Last resort
+-- Reinstall system + restore data and configs from backupLo más importante: Haga siempre una copia de seguridad antes de actualizar; no confíe únicamente en la reversión.