Mudaram a nomenclatura dos subvolumes do btrfs e o timeshift não a enxerga

O Btrfs (B-tree File System) é um sistema de arquivos moderno que introduz o conceito de subvolumes, que funcionam como sistemas de arquivos independentes dentro de uma mesma partição e compartilham o mesmo pool de armazenamento físico.

Diferente de partições tradicionais de tamanho fixo, os subvolumes não exigem um redimensionamento complexo, pois crescem e diminuem dinamicamente conforme o espaço livre disponível no disco. A principal função deles é organizar a estrutura do sistema operacional e isolar dados de forma eficiente, permitindo que diferentes partes do sistema sejam gerenciadas separadamente.

É comum criar um subvolume dedicado para o diretório raiz do sistema operacional, onde ficam os arquivos essenciais do Linux, e outro separado para o diretório pessoal dos usuários (geralmente chamado de home), cumprindo importante papel na segurança e na manutenção, pois possibilita a criação de snapshots em disco.

Se uma atualização do sistema quebrar o diretório raiz, é possível restaurar o snapshot correspondente de forma rápida e segura, sem que os arquivos pessoais dos usuários armazenados no subvolume separado sofram qualquer alteração ou perda.

No início era o @

A escolha entre @ e @rootfs (ou qualquer outro nome) é uma convenção dos desenvolvedores de cada distribuição Linux e seus instaladores. O Btrfs enxerga os subvolumes como diretórios especiais e o nome que vem após o @ serve apenas para organização humana. Por que existe essa diferença?

A escolha do Debian pelo @rootfs ocorreu com a intenção de ser mais descritivo e explícito que o anterior, evitando ambiguidades caso existam outros subvolumes no mesmo disco. Já a convenção tradicional é utilizada por distribuições como Ubuntu, Fedora e Arch Linux, que popularizaram o uso de @ para a raiz e @home para o diretório de usuários.

Essa mudança atrapalha o funcionamento padrão do Timeshift, exibindo um informe de que não encontrou um subvolume Btrfs compatível para gerenciar snapshots. Ele falha com @rootfs porque foi programado para seguir a convenção clássica, procurando por subvolumes @ (para a raiz) e @home (para a pasta pessoal).

Você pode renomear a partição para o subvolume @, mas pode não dar certo e você perder acesso à sua distro e, consequentemente, os dados que você tem no seu disco. Não vale à pena correr o risco, a menos que você saiba exatamente o que está fazendo. E nesta hora, “exatamente” é muito relativo.

O que fazer então?

O melhor que se pode fazer escolher outra forma de becape, com o clonezilla até que o timeshift possa ser modificado para acessar subvolumes @rootfs.

Becapes de arquivos de configuração também deve ser considerado, permitindo a sua restauração caso seja necessário reinstalar sua distro favorita.

Olha só, então é esse o problema! Kkkkkkk

Notei isso daí quando fui tentar o timeshift aqui para gerenciar meus snapshots no Debian, uso normalmente em outra máquina com BTRFS no Mint e quando fui pro Debian começou a acontecer isso daí. Imaginei que a causa fosse por conta de nomenclatura mas não fui atrás de como resolver e acabei usando o Snapper no lugar, que funcionou perfeitamente. Aliás, sempre usei o Snapper pelo terminal e descobri esses tempos que existe uma ferramenta gráfica que deixa o gerenciamento um pouco mais prático, o tal do snapper-gui. É praticamente a mesma coisa que gerenciar pelo terminal, não é bonitinho igual um timeshift mas quebra um galho quando você quer só consultar a lista de snapshots ou ver as mudanças de forma rápida.

passei pela mesma coisa mas não quis fuçar no fstab para mudar isso. o timeshift terá de mudar, por causa dessa alteração. como uso o solus os linux 4.9, usei a criptografia de partição, que funciona muito bem na distro. não substitui o timeshift mas faço becape dos arquivos de configuração e documentos de meu NoBo.

Use o btrfs-assistant .

É melhor que o snapper-gui.

Parece haver pelo menos um desenvolvedor trabalhando para melhora a compatibilidade do Timeshift com distribuições fora do ecossistema Ubuntu/Mint, mas o trabalho parece estar sendo bastante lento, pode ser testado por desenvolvedores e entusiastas, mas ainda não parece estar “pronto” (requer mais testes e melhorias): Configurable Btrfs subvol names by fused0 · Pull Request #480 · linuxmint/timeshift · GitHub

Neste caso realmente é melhor recorrer a outras ferramentas mais adaptadas ao ecossistema Fedora, Debian, etc… ou seguir algum tutorial para renomear os subvolumes de forma a torná-los compatíveis com os backups em BTRFS do Timeshift naquelas distros.

Fico imaginando qual é a dificuldade do timeshift trabalhar com as duas opções. Não seria um IF a mais no código? Ou será que é outra coisa mais complicada? Ou apenas birra de desenvolvedor?

O timeshit só é compativel também com fstab.

Se quiser usar unit não é compatível

Comparação Direta

Característica systemd Unit (.mount) /etc/fstab
Velocidade de Boot Mais rápido (nativo e direto) Mais lento (requer conversão no boot)
Execução Paralirizada por padrão Convertida para o formato do systemd
Gerenciamento Complexo (um arquivo por partição) Simples (centralizado em um único arquivo)
Dependências Controle preciso de ordem (ex: montar após a rede) Limitado a opções básicas de montagem

Sugiro acessar o link que compartilhei acima que descreve todas as dificuldades técnicas encontradas até aqui, incluindo a execução de códigos, linhas de comando com padrão de “aspas” compatível com diferentes distribuições, etc… Como o software livre é um trabalho voluntário, e aparentemente apenas uma pessoa se dispôs a tentar desenvolver esse patch, com bastante dificuldade técnica, pode demorar mesmo…

Depois vou ver se tem como usar assim no Debian. Você está usando?

Estava. No boot a diferença é mínima.

Já que o systemd tem um conversor do fstab para unit atualmente

Boa dica mestre, vou atrás desse!

Eu acho que a questão de usar btrfs e snapshots no sistema raiz não é trivial. O Timeshift é bem direcionado pra um tipo específico de uso. Eu não achava, e continuo não achando, que seja uma boa ideia colocar gerenciamento de snapshots em distribuição mais amigável ao usuário. Por definição o novato não vai entender nada, vai achar que é uma coisa e é outra. As distros mais amigáveis deveriam por definição serem estáveis, assim como o Debian estável. Então, é ‘chover no molhado’ com snapshots no sistema raiz.

Já para a ‘home’ sempre faz sentido, pois sempre vai ter aquele caso do cara que apagou ou sobrescreveu arquivo por engano, onde o snapshot salva horas de trabalho, e não complica na hora da inicialização do sistema. O usuário apenas vai lá no snapshot desejado e recupera seu arquivo.

Sobre o timeshift, adicionar uma configuração sobre o nome dos subvolumes seria simples, mas aumentaria a complexidade observada. Possivelmente os desenvolvedores já queiram que seja algo mais específico pro linux mint, por isso não haveria tal vontade.

Já pro usuário mais avançado que usa uma distribuição ‘instável’, então faz parte do pacote avançado aprender sobre ferramentas mais poderosas como o snapper. Não sei se vale a pena automatizar tal tarefa de recuperar um snapshot (o snapper rollback). Eu acho mais fácil fazer ‘na mão’, até porque na época que aprendi sobre isso, a montagem do sistema raiz que eu fazia (e faço até hoje) é pelo subvolume, não pelo subvolume padrão.

muito interessante seu ponto de vista. não tinha pensado desta forma.