Converta seu sistema de arquivos para Btrfs

Converta seu sistema de arquivos para Btrfs
Btrfs fedora

O objetivo deste artigo é fornecer uma visão geral sobre o porquê e como migrar suas partições atuais para um sistema de arquivos Btrfs. O passo a passo de como isso é feito e acompanhe, se você estiver curioso para fazer isso sozinho.

Prós e contras da conversão

Vamos esclarecer isso bem rápido: que tipo de vantagens e desvantagens esse tipo de conversão de sistema de arquivos tem?

Prós

  • Claro, nenhuma reinstalação é necessária! Cada arquivo em seu sistema permanecerá exatamente como antes.
  • É tecnicamente possível fazer isso no local, ou seja, sem backup.
  • Você certamente aprenderá muito sobre o btrfs!
  • É um procedimento bastante rápido se tudo correr conforme o planejado.

Contra

  • Você tem que saber lidar com os comandos de terminal e shell.
  • Você pode perder dados, veja acima.
  • Se algo der errado, você ficará por conta própria para consertar.

Cuidado & Atenção!!!

  • Você precisará de cerca de 20% de espaço livre em disco para uma conversão bem-sucedida. Mas para o cenário completo de backup e reinstalação, você pode precisar de ainda mais.
  • Você pode personalizar tudo sobre suas partições durante o processo, mas também pode fazer isso a partir do Anaconda se decidir reinstalar.

Converta seu sistema de arquivos para Btrfs. Passos de conversão

Crie uma imagem

Como você não pode converter sistemas de arquivos montados, trabalharemos a partir de uma imagem live do Fedora. Instale o Fedora Media Writer e ‘grave’ o Fedora 33 em seu stick USB favorito.

Libere espaço em disco

O btrfs-convert recriará os metadados do sistema de arquivos no espaço livre em disco da partição, enquanto mantém todos os dados ext4 existentes em sua localização atual.

Infelizmente, a quantidade de espaço livre necessária não pode ser conhecida com antecedência – a conversão irá falhar (e não causará danos) se você não tiver o suficiente. Aqui estão algumas idéias úteis para liberar espaço:

  • Use o baobab para identificar arquivos e pastas grandes a serem removidos. Não exclua manualmente os arquivos fora de sua pasta de início, se possível.
  • Limpe diários do sistema antigo: journalctl –vacuum-size = 100M
  • Se você estiver usando o Docker, use ferramentas com cuidado como o docker volume prune, docker image prune -a
  • Limpe imagens de máquinas virtuais não utilizadas dentro de caixas, por exemplo, GNOME Boxes
  • Limpe pacotes não utilizados e flatpaks: dnf autoremove , flatpak remove –unused ,
  • Limpe os caches do pacote: pkcon refresh force -c -1 , dnf clean all
  • Se você estiver confiante o suficiente para isso, limpe cuidadosamente a pasta ~ / .cache .

Converter para Btrfs

Salve todos os seus dados valiosos em um backup, certifique-se de que seu sistema esteja totalmente atualizado e reinicie na imagem ao vivo. Execute o gnome-disks para descobrir o identificador do seu dispositivo, por exemplo, / dev / sda1 (pode ser diferente se você estiver usando LVM). Verifique o sistema de arquivos e faça a conversão: [Nota do editor: os seguintes comandos são executados como root, tenha cuidado!]

$ sudo su -
# fsck.ext4 -fyv / dev / sdXX
# man btrfs-convert (leia!)
# btrfs-convert / dev / sdXX

Isso pode levar de 10 minutos a até horas, dependendo do tamanho da partição e se você tem um disco rígido rotativo ou de estado sólido. Se você vir erros, provavelmente precisará de mais espaço livre. Como último recurso, você pode tentar btrfs-convert -n .

Como reverter?

Se a conversão falhar por algum motivo, sua partição permanecerá ext4 ou o que quer que fosse antes. Se você deseja reverter após uma conversão bem-sucedida, é tão simples como

# btrfs-convert -r / dev / sdXX

Atenção! Você perderá permanentemente sua capacidade de reverter se fizer qualquer um destes: desfragmentar, balancear ou deletar o subvolume ext2_saved .

Devido à natureza copy-on-write do Btrfs, você pode copiar, mover e até excluir arquivos com segurança, criar subvolumes, porque ext2_saved continua referenciando os dados antigos.

Monte e verifique

Agora, a partição deve ter um sistema de arquivos btrfs . Monte-o e examine seus arquivos … e subvolumes!

# mount / dev / sdXX / mnt
# man btrfs-subvolume (leia!)
# btrfs subvolume list / (-t para uma visualização de tabela)

Crie subvolumes

Gostaríamos de obter um layout de subvolume ‘plano’, que é o mesmo que o Anaconda cria por padrão:

nível superior (diretório raiz do volume, não deve ser montado por padrão)
  + - root (diretório raiz de subvolume, a ser montado em /)
  + - home (diretório raiz de subvolume, a ser montado em / home)

Você pode pular esta etapa ou optar por um layout diferente. A vantagem dessa estrutura específica é que você pode criar facilmente instantâneos de / home e ter diferentes opções de compactação ou montagem para cada subvolume.

# cd / mnt
# btrfs subvolume snapshot ./ ./root2
# btrfs subvolume create home2
# cp -a home / * home2 /

Aqui, criamos dois subvolumes. root2 é um instantâneo completo da partição, enquanto home2 começa como um subvolume vazio e copiamos o conteúdo de dentro. (Este comando cp não duplica dados, por isso vai ser rápido.)

  • Em / mnt (o subvolume de nível superior), exclua tudo, exceto root2 , home2 e ext2_saved .
  • Renomeie root2 e Home2 subvolumes a raiz e casa .
  • Dentro do subvolume raiz , esvazie a pasta inicial , para que possamos montar o subvolume inicial lá mais tarde.

É simples se você acertar tudo!

Modificar fstab

Para montar o novo volume após uma reinicialização, o fstab deve ser modificado, substituindo as linhas de montagem ext4 antigas por novas.

Você pode usar o comando blkid para aprender o UUID da sua partição.

UUID = xx / btrfs subvol = root 0 0
UUID = xx / home btrfs subvol = home 0 0

(Observe que os dois UUIDs são iguais se estiverem se referindo à mesma partição.)

Estes são os padrões para novas instalações do Fedora 33. No fstab, você também pode escolher personalizar a compactação e adicionar opções como noatime.

Veja a página wiki relevante sobre compressão e man 5 btrfs para todas as opções relevantes.

Faça chroot em seu sistema

Se você já fez a recuperação do sistema, tenho certeza de que conhece esses comandos. Aqui, obtemos um prompt de shell que está essencialmente dentro do seu sistema, com acesso à rede.

Primeiro, temos que remontar o subvolume raiz em / mnt e , em seguida, montar as partições / boot e / boot / efi (podem ser diferentes dependendo do layout do seu sistema de arquivos):

# umount / mnt
# mount -o subvol = root / dev / sdXX / mnt
# mount / dev / sdXX / mnt / boot
# mount / dev / sdXX / mnt / boot / efi

Em seguida, podemos prosseguir para a montagem dos dispositivos do sistema:

# mount -t proc / proc / mnt / proc
# mount --rbind / dev / mnt / dev
# mount --make-rslave / mnt / dev
# mount --rbind / sys / mnt / sys
# mount --make-rslave / mnt / sys
# cp /mnt/etc/resolv.conf /mnt/etc/resolv.conf.chroot
# cp -L /etc/resolv.conf / mnt / etc
# chroot / mnt / bin / bash
$ ping www.fedoraproject.org

Reinstale o GRUB e o kernel

A maneira mais fácil – agora que temos acesso à rede – é reinstalar o GRUB e o kernel porque ele faz toda a configuração necessária. Então, dentro do chroot:

# mount / boot / efi
# dnf reinstalar grub2-efi shim
# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
# dnf reinstalar kernel-core
... ou apenas renegenerando initramfs:
# dracut --kver $ (uname -r) --force

Isso se aplica se você tiver um sistema UEFI. Verifique os documentos abaixo se você tiver um sistema BIOS. Vamos verificar se tudo correu bem antes de reiniciar:

# cat / boot / grub2 / grubenv
# cat /boot/efi/EFI/fedora/grub.cfg
# lsinitrd / boot / initramfs - $ (uname -r) .img | grep btrfs

Você deve ter UUIDs de partição apropriados ou referências em grubenv e grub.cfg (grubenv pode não ter sido atualizado, edite-o se necessário) e veja insmod btrfs em grub.cfg e módulo btrfs em sua imagem initramfs.

Reiniciar

Agora seu sistema deve inicializar corretamente. Se não, não entre em pânico, volte para a imagem ao vivo e corrija o problema. Na pior das hipóteses, você pode simplesmente reinstalar o Fedora de lá.

Após a primeira inicialização

Verifique se está tudo bem com seu novo sistema Btrfs. Se você estiver satisfeito, precisará recuperar o espaço usado pelo antigo instantâneo ext4 , desfragmentar e equilibrar os subvolumes. Os dois últimos podem levar algum tempo e consomem muitos recursos.

Você deve montar o subvolume de nível superior para isso:

# mount / dev / sdXX -o subvol = / / mnt / someFolder
# btrfs subvolume delete / mnt / someFolder / ext2_saved

Em seguida, execute estes comandos quando a máquina tiver algum tempo ocioso:

# btrfs filesystem defrag -v -r -f /
# btrfs filesystem defrag -v -r -f / home
# btrfs balance start -m /

Finalmente, há um atributo “sem cópia na gravação” que é definido automaticamente para pastas de imagem de máquina virtual para novas instalações. Defina-o se estiver usando VMs:

#
        chattr + C / var / lib / libvirt / images

$ chattr + C

        ~ / .local / share / gnome-boxes / images

Este atributo só tem efeito para novos arquivos nessas pastas. Duplique as imagens e exclua os originais. Você pode confirmar o resultado com lsattr .

Conclusão

Este artigo ajudará a utilizar o BTRFS um filesystem que vem crescendo o uso e a sua aplicabilidade. Segue mais alguns links sobre o assunto, no intuito de aprimorar seu conhecimento.

Fonte: Fedora Magazine

Acesse a versão completa
Sair da versão mobile