O guia de instalação do Ubuntu Desktop 26.04 LTS lista suas opções de configuração de disco padrão e avançada, mas não inclui o Btrfs como uma opção de instalação. A última atualização foi feita em 6 de maio de 2026. Isso significa que um desktop Ubuntu com Btrfs pode usar um layout de partição ou subvolume personalizado. Antes de automatizar os snapshots, identifique o que está realmente montado em `/var/lib/snapshots` /; um comando do Snapper que assume um subvolume raiz Btrfs pode falhar ou proteger os dados errados. Este guia configura snapshots de linha do tempo a cada hora com o Snapper em um subvolume Btrfs verificado e, em seguida, habilita a limpeza agendada para que os snapshots antigos não se acumulem indefinidamente.
O Snapper está disponível nos repositórios do Ubuntu, e os pacotes do Ubuntu 26.04 LTS (Resolute) incluem unidades systemd para sua linha do tempo e tarefas de limpeza. Os comandos exatos abaixo são para uma máquina cujo destino pretendido para o snapshot é um subvolume Btrfs. Se sua instalação do Ubuntu usa ext4, LVM ou uma montagem de nível superior Btrfs em vez do subvolume que você pretende proteger, pare na verificação de layout e resolva isso primeiro.
O que um snapshot do Btrfs protege?
Um snapshot Btrfs é um subvolume que representa um ponto específico no tempo e que inicialmente compartilha a extensão de arquivos com sua origem. Ele é útil para recuperar arquivos ou comparar estados do sistema após uma edição ou atualização acidental. Não se trata de um backup independente: o snapshot permanece no mesmo sistema de arquivos, portanto, falhas no disco, danos ao sistema de arquivos, roubo ou exclusão acidental de todo o sistema de arquivos podem levar consigo tanto os dados ativos quanto os snapshots.
Os snapshots também não capturam recursivamente subvolumes aninhados. Se /homeum subvolume for separado, um snapshot do subvolume raiz não incluirá o conteúdo desse subvolume separado /home. Planeje uma configuração do Snapper para cada subvolume que você precisa proteger ou utilize um backup separado para os dados do usuário. Mantenha uma segunda cópia em outro dispositivo ou sistema remoto para recuperação de desastres.
1. Confirme se o Ubuntu está sendo executado no sistema de arquivos Btrfs.
Abra o Terminal e inspecione o ponto de montagem raiz:
findmnt -no SOURCE,FSTYPE,OPTIONS /
sudo btrfs subvolume show /
sudo btrfs subvolume list /
O primeiro comando deve informar btrfso tipo do sistema de arquivos. Analise as opções de montagem de uma subvol=entrada e use a listagem de subvolumes para entender o layout. O segundo comando deve identificar o subvolume montado em /. Se o tipo do sistema de arquivos não for Btrfs, este procedimento do Snapper não se aplica. Se o comando informar que /não é um subvolume, ou mostrar que é o subvolume de nível superior, não tente criar uma configuração raiz do Snapper sem antes verificar. O subvolume de nível superior do Btrfs tem limitações específicas; use um layout de subvolume corretamente projetado ou crie um snapshot de um subvolume separado e verificado.
Verifique separadamente se /homeé um ponto de montagem ou um subvolume com `--mount` findmnt /homee ` --subvolume` sudo btrfs subvolume show /home. Se for separado e você quiser snapshots de arquivos pessoais, ele precisará de sua própria configuração. Considere também se outros caminhos importantes, como uma montagem de dados separada, estão em outro sistema de arquivos. Um snapshot da raiz não os incluirá automaticamente.
2. Instale o Snapper e as ferramentas Btrfs.
Após confirmar que o destino é um subvolume Btrfs, instale os pacotes do Ubuntu:
sudo apt update
sudo apt install snapper btrfs-progs
snapperGerencia configurações e retenção de snapshots; btrfs-progsfornece utilitários de sistema de arquivos úteis para inspecionar o Btrfs. Verifica se já existem configurações antes de criar uma nova:
sudo snapper list-configs
Se uma configuração com o nome rootjá apontar para o subvolume raiz correto, mantenha-a e revise suas configurações em vez de criar uma duplicata. Se a saída estiver vazia e /tiver sido verificado que se trata do subvolume que você pretende proteger, crie a configuração:
sudo snapper -c root create-config /
O create-configcomando cria a configuração do Snapper e seu diretório de snapshots para o subvolume selecionado. Se ele informar que a configuração já existe ou que o caminho não é um subvolume, interrompa e inspecione a configuração atual; não exclua uma configuração existente para forçar a execução do comando.
3. Escolha um cronograma de capturas instantâneas e uma política de retenção.
O modo de linha do tempo do Snapper pode criar snapshots a cada hora, e seu algoritmo de limpeza da linha do tempo pode reter snapshots selecionados a cada hora, dia, semana, mês e ano. Para um computador com espaço livre limitado, comece com uma política modesta e monitore o armazenamento em vez de manter um histórico ilimitado. Este exemplo solicita seis snapshots a cada hora, sete diários, quatro semanais e três mensais, sem snapshots anuais:
sudo snapper -c root set-config 'TIMELINE_CREATE=yes TIMELINE_CLEANUP=yes TIMELINE_LIMIT_HOURLY=6 TIMELINE_LIMIT_DAILY=7 TIMELINE_LIMIT_WEEKLY=4 TIMELINE_LIMIT_MONTHLY=3 TIMELINE_LIMIT_YEARLY=0'
Esses valores descrevem categorias de retenção; eles não representam um limite rígido para o espaço em disco. Um arquivo grande alterado ou excluído pode manter os trechos de dados antigos alocados enquanto houver snapshots que os referenciem. O espaço disponível também depende de outros subvolumes e arquivos do Btrfs. Verifique periodicamente df -h /e sudo btrfs filesystem usage /reduza a retenção ou adicione armazenamento se o sistema de arquivos estiver ficando cheio. Evite editar várias configurações ao mesmo tempo: execute o comando sudo snapper -c root get-confige verifique os valores após alterá-los.
4. Ative os temporizadores do systemd do Snapper.
No Ubuntu 26.04 LTS, a lista de arquivos do pacote Snapper inclui `snapper.ini` snapper-timeline.timere `snapper.ini` snapper-cleanup.timer. Habilite ambos para que o systemd crie snapshots da linha do tempo periodicamente e execute a limpeza:
sudo systemctl enable --now snapper-timeline.timer snapper-cleanup.timer
Verifique se estão carregados e veja quando estão agendados para a próxima vez:
systemctl list-timers snapper-timeline.timer snapper-cleanup.timer
systemctl status snapper-timeline.timer snapper-cleanup.timer
Um temporizador exibido como ativo significa que o systemd carregou a programação; isso por si só não prova que o Snapper criou um instantâneo com sucesso. Após a próxima execução da linha do tempo, verifique a configuração e a lista de instantâneos:
sudo snapper list-configs
sudo snapper -c root list
Se nenhum instantâneo da linha do tempo aparecer após a execução agendada, confirme se TIMELINE_CREATEestá definido como yes, e então inspecione o log de serviço com journalctl -u snapper-timeline.service -b. Não crie um temporizador personalizado até que você tenha verificado as unidades e os logs do pacote; agendamentos duplicados podem criar mais instantâneos do que o pretendido.
5. Adicione uma configuração separada para um subvolume Btrfs home
Faça isso somente se a verificação de layout confirmar que /homese trata de um subvolume Btrfs e que seu objetivo inclui arquivos de usuário. Primeiro, execute o comando sudo snapper list-configse certifique-se de que o nome homenão esteja em uso. Em seguida, crie uma configuração para esse subvolume e aplique uma política de retenção separada.
sudo snapper -c home create-config /home
sudo snapper -c home set-config 'TIMELINE_CREATE=yes TIMELINE_CLEANUP=yes TIMELINE_LIMIT_HOURLY=6 TIMELINE_LIMIT_DAILY=7 TIMELINE_LIMIT_WEEKLY=4 TIMELINE_LIMIT_MONTHLY=3 TIMELINE_LIMIT_YEARLY=0'
Os mesmos temporizadores do systemd processam as configurações do Snapper que têm a criação e limpeza da linha do tempo ativadas, portanto, um temporizador separado normalmente é desnecessário. Confirme se sudo snapper -c home listfunciona e se sudo snapper -c home get-configexibe os valores esperados. Um diretório chamado /homenão é automaticamente um subvolume separado; verifique isso antes de executar o comando create-config.
Como saber se a automação está funcionando?
- Configuração:
sudo snapper list-configs exibe o nome e o subvolume pretendidos. - Política:
sudo snapper -c root get-config criação e limpeza de linhas do tempo de relatórios ativadas. - Programação:
systemctl list-timers mostra os dois temporizadores Snapper e os horários das suas próximas execuções. - Instantâneos:
sudo snapper -c root list mostra as entradas datadas após a execução do cronômetro. - Estado de saúde do serviço:
journalctl -u snapper-timeline.service -b não contém erros recorrentes que impeçam a criação de snapshots.
Se o seu computador for desligado em um horário agendado, um temporizador poderá ser executado posteriormente, dependendo das configurações da unidade; isso não substitui a verificação dos snapshots resultantes. Um pequeno teste manual pode verificar se o Snapper consegue criar um snapshot: execute o comando sudo snapper -c root create --description 'setup test'e, em seguida, liste os snapshots novamente. Isso testa a configuração, não o temporizador; remova o snapshot de teste posteriormente somente se tiver certeza de que selecionou a entrada correta.
O que pode dar errado e o que você deve evitar?
Primeiro, os snapshots consomem capacidade do sistema de arquivos compartilhado ao longo do tempo. Os controles de retenção reduzem o histórico antigo, mas a quantidade de dados retidos varia conforme as alterações nos arquivos. Monitore o espaço livre e certifique-se de que a limpeza esteja em execução. Segundo, um snapshot da raiz pode omitir subvolumes aninhados, como `/var/lib` /home; um comando bem-sucedido não significa que todos os caminhos montados estejam protegidos. Terceiro, os snapshots do Snapper, por si só, não garantem uma reversão inicializável. O Snapper documenta que a reversão requer um sistema Btrfs configurado corretamente. O layout de montagem do Ubuntu, a configuração de inicialização, a criptografia e os sistemas de arquivos separados determinam o que é possível recuperar. Antes de confiar na reversão, teste um plano de recuperação com uma mídia de backup e recuperação separada.
Não considere os snapshots automáticos como substitutos para backups. Copie arquivos importantes para outro dispositivo físico ou local remoto e verifique periodicamente se você consegue restaurá-los. Para uma configuração de desktop Ubuntu mais confiável, use o Snapper para pontos de restauração locais convenientes, uma ferramenta de backup separada para cópias independentes e um procedimento de recuperação testado para falhas em nível de sistema.
Referências oficiais