BTRFS com '/home' em disco separado

Eu tenho uma instalação de Manjaro (v23) com a seguinte configuração:

  • / montado no meu SSD, que é o /dev/sdb3
  • /home montado no meu HDD, que é o /dev/sdc1

Da seguinte forma:

sda      8:0    0 931.5G  0 disk 
└─sda1   8:1    0 931.5G  0 part 
sdb      8:16   0 223.6G  0 disk 
├─sdb1   8:17   0     1G  0 part /boot/efi
├─sdb2   8:18   0     6G  0 part [SWAP]
└─sdb3   8:19   0 216.6G  0 part /var/log
                                 /var/cache
                                 /swap
                                 /
sdc      8:32   0 931.5G  0 disk 
└─sdc1   8:33   0 931.5G  0 part /home

Eu estou usando o sistema de arquivos btrfs porque quero fazer snapshots do sistema usando o Timeshift. O problema é que, por padrão, a instalação criou apenas o subvolume /@ e outros que estão dentro do /:

ID 257 gen 1573 top level 5 path @cache
ID 258 gen 1575 top level 5 path @log
ID 259 gen 1468 top level 5 path @swap
ID 266 gen 1576 top level 5 path @

E esse é o meu /etc/fstab:

UUID=AE59-40E0                            /boot/efi      vfat    umask=0077 0 2
UUID=a6d21c44-0cb4-4d5c-beb2-d0a1adef9dd9 swap           swap    defaults,noatime 0 0
UUID=a822aa8a-8f97-4b43-afd3-162d5e434822 /              btrfs   subvol=/@,defaults,discard=async,ssd 0 0
UUID=a822aa8a-8f97-4b43-afd3-162d5e434822 /var/cache     btrfs   subvol=/@cache,defaults,discard=async,ssd 0 0
UUID=a822aa8a-8f97-4b43-afd3-162d5e434822 /var/log       btrfs   subvol=/@log,defaults,discard=async,ssd 0 0
UUID=a822aa8a-8f97-4b43-afd3-162d5e434822 /swap          btrfs   subvol=/@swap,defaults,discard=async,ssd 0 0
UUID=3cb05b51-ade4-4206-bd9b-f221d599b3a3 /home          btrfs   defaults   0 0
/swap/swapfile                            swap           swap    defaults,noatime 0 0
tmpfs                                     /tmp           tmpfs   defaults,noatime,mode=1777 0 0

Eu gostaria, para testes, de fazer um snapshot também do meu /home. Mas ele precisa que o subvolume /@home esteja criado no /, que, no meu caso, é outro disco.

Então, minha dúvida é:

  1. Como eu posso fazer isso?
  2. Fazendo isso, os dados salvos em /home continuariam no HDD ou seriam salvos no SSD, junto com a instalação de /?

Eu sou novo em btrfs, então foi mal por algum vacilo.

Obrigado.

Olá @Thiago_Placa, seja bem-vindo!

O Timeshift, se você configurá-lo no modo BTRFS, exige que tudo esteja no mesmo sistema de arquivos, ou, em outras palavras, na mesma partição. Os subvolumes @ e @home devem estar na mesma partição.

Existe a possibilidade de você criar um volume lógico LVM, adicionando o espaço livre dos seus discos nesse volume lógico, que seria visto pelo sistema como uma única partição, onde você poderia criar um sistema de arquivos BTRFS e instalar o sistema, criando os subvolumes @ e @home ali. Dessa forma o Timeshift iria funcionar. Eu cheguei a fazer isso no Debian, mas no caso, eram dois SSDs; não sei se é uma boa ideia fazer isso com um SSD e um HDD.

Eu, se estivesse no seu lugar, deixaria o Timeshift gerenciar apenas os snapshots da raiz do sistema, no SSD em Btrfs. A /home eu manteria no HD, com sistema de arquivos ext4 e deixando-a de fora do Timeshift. Iria buscar outra forma para fazer backup da /home, ou então, comprar um SSD “maior”… rs

1 curtida

Obrigado pelo feedback.

Então, não existe uma forma de fazer um snapshot de tudo, incluindo /home se ele estiver em outro HDD, certo? Ou seja, em outro ponto de montagem.

Com o Timeshift não. No entanto há outras ferramentas, como o Snapper, que eu uso no openSUSE. O cenário que eu tenho é o seguinte:

Eu tenho um SSD de 480GB, onde está o sistema operacional e outro de 1TB, onde está a minha /home, ambos em Btrfs. No Snapper existem duas configurações de snapshots, uma para a raiz do sistema e outra para a pasta pessoal. Tive apenas que instalar um pacote e rodar um comando para criar um subvolume dentro da minha /home e permitir que o Snapper gerencie os snapshots desse subvolume.

Essa é das vantagens que o Snapper tem sobre o Timeshift, e é também uma vantagem do openSUSE que já vem com essa ferramenta integrada no sistema e pronta para uso, sendo que o sistema de arquivos Btrfs é o padrão ao instalar o openSUSE e os subvolumes são criados automaticamente. O GRUB também vem nativamente configurado para que você possa iniciar o sistema a partir de um snapshot, e se necessário, fazer um rollback desse snapshot, com o comando sudo snapper rollback.

Voltando a falar do Timeshift, o único modo de fazer um snapshot de tudo, é utilizando o Rsync. Aí você não iria se beneficiar do recurso copy on write nativo do Btrfs.

3 curtidas

Cara, o snapshot é um sistema em que o conteúdo é uma copia congelada no tempo de um conteúdo de origem, basicamente um backup.

Eu mesmo não sabia disso, @Thiago12. Interessante saber.
O Snapper é código aberto também?

@aguamole, como assim?

Provavelmente a informação aqui pode te ajudar:

2 curtidas

Sim, foi desenvolvido pelo pessoal do openSUSE, sob a licença GPL-2.0. O código de fonte está disponível aqui:

1 curtida