Estratégias de reversão
O do-release-upgrade do Ubuntu não suporta downgrades nativos. Se surgirem problemas sérios após uma atualização, você precisará contar com planos de reversão preparados com antecedência. Este artigo aborda diversas estratégias práticas de reversão.
Comparação de opções de reversão
| Opção | Velocidade de recuperação | Complexidade de Preparação | Caso de uso |
|---|---|---|---|
| Mudança de horário | Rápido (minutos) | Baixo | Desktop e pequenos servidores |
| Instantâneo LVM | Rápido (minutos) | Médio | Sistemas usando LVM |
| Instantâneo Btrfs | Muito rápido | Médio | Sistema de arquivos Btrfs |
| imagem de disco dd | Lento (depende do tamanho do disco) | Baixo | Opção universal |
| Restauração de backup + reinstalação | Lento | Alto | Último recurso |
| Instantâneo da plataforma em nuvem | Rápido | Baixo | Servidores em nuvem |
Restauração de instantâneo Timeshift
Timeshift é a ferramenta de instantâneo do sistema mais fácil de usar, suportando os modos RSYNC e Btrfs.
Criando um instantâneo antes da atualização
# Install Timeshift
sudo apt install timeshift -y
# Create a snapshot
sudo timeshift --create --comments "Pre-upgrade backup" --tags D
# List snapshots
sudo timeshift --listRestaurando a partir de um instantâneo
Método 1: o sistema ainda é inicializável
# 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: o sistema não consegue inicializar
- Inicialize a partir de um Ubuntu Live USB
- Instale e execute o Timeshift no ambiente ativo:
# 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 mudança de horário
- O Timeshift não faz backup de
/homepor padrão (no modo RSYNC); os dados do usuário precisam ser copiados separadamente - Os instantâneos requerem espaço em disco suficiente
- Os instantâneos do modo RSYNC aumentam de tamanho com o tempo (incremental)
- O modo Btrfs é mais eficiente, mas requer o sistema de arquivos Btrfs
Reversão de instantâneo LVM
Se o sistema usar LVM (a opção padrão durante a instalação do Ubuntu Server), você poderá usar instantâneos de LVM para reversão rápida.
Criando um instantâneo LVM antes da atualização
# 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 lvsRevertendo de um instantâneo 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 rebootSe não houver espaço livre disponível
# 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-lvReversão de instantâneo Btrfs
Se estiver usando o sistema de arquivos Btrfs, as operações de snapshot serão quase instantâneas.
Criando um instantâneo 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 snapshotRestaurando de um instantâneo 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 rebootdd Recuperação de imagem de disco
A abordagem mais simples, porém mais universal, funciona com qualquer sistema de arquivos.
Criando uma imagem 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=progressRestaurando de uma imagem 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 rebootRecuperação de instantâneo do servidor em nuvem
Operações para diversas plataformas em nuvem
# 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 consoleReversão parcial: corrigindo problemas de atualização
Às vezes, uma reversão completa não é necessária; corrigir problemas específicos pode ser suficiente.
Consertando Pacotes Quebrados
# 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*.debInicializando com um kernel mais antigo
# 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 recuperação
# 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
rebootResumo de Medidas Preventivas
A preparação pré-atualização determina diretamente a viabilidade de uma reversão:
- Obrigatório: Backup completo de dados (bancos de dados, configurações, arquivos de usuário)
- Altamente recomendado: Instantâneo do sistema (Timeshift, LVM, Btrfs)
- Servidores em nuvem: crie um instantâneo de disco
- Máquinas virtuais: crie um instantâneo de VM
- Sistemas críticos: atualize primeiro em um ambiente de teste para validação
Fluxo de decisão de reversão
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 backupA lição mais importante: Sempre faça backup antes de atualizar – não confie apenas na reversão.