Aumentando espaço em disco com nova partição BTRFS

Recentemente adquiri mais um NVME. Tenho agora um antigo de 512GB e um de 1TB. Sou abençoado Think About It GIF by Identity por usar BTRFS no sistema. Usando os conhecimentos antigos, poderia pensar em clonar o dispositivo, depois aumentar a última partição, ou então fazer um transplante de instalação para o disco novo. Mas ao inves disso resolvi usar o recursos do BTRFS para adicionar um novo dispositivo ao volume.

Deve ser complicado né? Não…

  1. Atualizei o backup do meu sistema, coisa que faço rotineiramente. Fiz um snapshot do sistema e fiz backup com o tar desse snapshot para um HDD.

  2. Criei um particionamento no novo dispositivo de armazenamento, conforme meu gosto. Usei o gparted.

  3. Verifiquei como estava o volume antes da operação:

└──╼ # btrfs filesystem usage -T /
Overall:
    Device size:                  96.00GiB
    Device allocated:             54.04GiB
    Device unallocated:           41.96GiB
    Device missing:                  0.00B
    Device slack:                    0.00B
    Used:                         46.16GiB
    Free (estimated):             48.04GiB      (min: 48.04GiB)
    Free (statfs, df):            48.03GiB
    Data ratio:                       1.00
    Metadata ratio:                   1.00
    Global reserve:              142.59MiB      (used: 0.00B)
    Multiple profiles:                  no

                  Data     Metadata System                             
Id Path           single   single   single   Unallocated Total    Slack
-- -------------- -------- -------- -------- ----------- -------- -----
 1 /dev/nvme1n1p2 50.01GiB  4.00GiB 32.00MiB    41.96GiB 96.00GiB     -
-- -------------- -------- -------- -------- ----------- -------- -----
   Total          50.01GiB  4.00GiB 32.00MiB    41.96GiB 96.00GiB 0.00B
   Used           43.93GiB  2.22GiB 16.00KiB                           

Como dá pra ver, tinha 96GB o volume montado no raiz.

  1. Adicionei a nova partição no volume anterior
└──╼ # btrfs device add -f /dev/nvme0n1p3 /
Performing full device TRIM /dev/nvme0n1p3 (125.00GiB) ...
  1. Verifiquei o status do volume:
└──╼ # btrfs filesystem usage -T /
Overall:
    Device size:                 221.00GiB
    Device allocated:             54.04GiB
    Device unallocated:          166.96GiB
    Device missing:                  0.00B
    Device slack:                    0.00B
    Used:                         46.16GiB
    Free (estimated):            173.04GiB      (min: 173.04GiB)
    Free (statfs, df):           173.03GiB
    Data ratio:                       1.00
    Metadata ratio:                   1.00
    Global reserve:              142.59MiB      (used: 0.00B)
    Multiple profiles:                  no

                  Data     Metadata System                              
Id Path           single   single   single   Unallocated Total     Slack
-- -------------- -------- -------- -------- ----------- --------- -----
 1 /dev/nvme1n1p2 50.01GiB  4.00GiB 32.00MiB    41.96GiB  96.00GiB     -
 2 /dev/nvme0n1p3        -        -        -   125.00GiB 125.00GiB     -
-- -------------- -------- -------- -------- ----------- --------- -----
   Total          50.01GiB  4.00GiB 32.00MiB   166.96GiB 221.00GiB 0.00B
   Used           43.93GiB  2.23GiB 16.00KiB                            
  1. Pronto, o volume agora tem 221 GB.

Considerações

  • É fácil adicionar espaço, mas caso algum dos dois dispositivos falhe, perderei todos os dados. Por isso é importante o backup periódico.
  • Seguindo o mesmo pensamento, é possível adicionar mais espaço para uma partição no começo do disco adicionando uma segunda partição no final do disco!
  • Atenção para a remoção do primeiro dispositivo do volume, pois isso poderá inibir a inicialização do computador (Could not find root filesystem). Caso remova-o, ajuste o inicializador após a remoção (update-grub ou similar).
  • Atenção caso você não use initram. O driver do BTRFS procura os demais volumes por UUID, então é necessário adicioná-lo! Se vc não sabe o que é initram, é porque não precisa se preocupar com isso.
  • Há muitas configurações possíveis usando os recursos avançados, raid 0, DUP, btrfs-balance, troca de dispositivo, etc… Aqui fiz a explicação mais simples possível para aumentar o espaço em disco na partição raiz. Explicação completa em inglês no manual: man btrfs-device
5 curtidas

Só para dar uma emoção no tópico eu não usava initramfs. Sabe como é usuário raiz do gentoo… então deu ziquizira…

  1. Tive que entrar no modo live e desfazer a inclusão do novo volume. Daí pude reiniciar o computador e consegui entrar no sistema.
  2. Recompilei o kernel habilitando a opção CONFIG_BLK_DEV_INITRD, para poder usar um initramfs.
  3. Instalei o dracut e criei o initramfs padrão
  4. Atualizei o grub, ele então achou o initram.
  5. Reiniciei o computador, funcionou com o parâmetro do kernel de inicialização UUID=XXXX, pois antes eu não podia usar UUID, então estava configurador pra usar o PARTUUID.
  6. Adicionei novamente a partição como novo volume.
  7. Reiniciei o computador e tudo funcionou como deveria ter sido se eu não tivesse kernel e initram personalizados!!!
1 curtida