Converter EXT4 para BTRFS pode ser uma excelente opção para quem deseja aproveitar as vantagens do sistema de arquivos BTRFS (B-Tree File System), mas está utilizando um sistema instalado em EXT4 (Extended File System 4) e não possui tempo para formatar a máquina.
Os BTRFS em comparação ao EXT4
Conforme abordamos de forma aprofundada em outro artigo, o sistema de arquivos BTRFS é considerado por muitos como sendo “o futuro”, no que diz respeito a formatos de armazenamento de dados.
Quando comparado ao EXT4, que ainda é o sistema de arquivos mais utilizado nas distribuições Linux, o BTRFS possui diversas vantagens, como:
- Suporte a snapshots do sistema: relacionado a backups e restauração do sistema;
- A funcionalidade “Copy On Write”: gerenciamento de arquivos mais rápido e mais economia de espaço em disco;
- Compressão de arquivos, entre outros.
Por fim, o BTRFS ainda possui algumas “desvantagens” em comparação ao bastante estável EXT4.
Como o sistema de arquivos foi projetado com foco nos SSDs, a fragmentação de dados está mais propícia a ocorrer com o BTRFS quando o mesmo estiver rodando em HDs. Essa fragmentação pode causar arquivos corrompidos, entre outros problemas.
Mesmo assim, as pessoas que utilizam o BTRFS, geralmente, possuem muito mais elogios do que queixas em relação ao formato. Isso inclui a minha própria experiência, pois utilizo o BTRFS há mais de um ano e nunca tive problemas com o mesmo.
Os riscos de se converter EXT4 para BTRFS
O método que iremos mostrar foi projetado para que o seu sistema de arquivos seja alterado sem qualquer perda de dados. Após a conversão ter sido realizada, ainda será possível reverter o processo, caso você não goste do resultado.
Todavia, não existem softwares à prova de falhas. Em todos os testes que realizei, jamais presenciei nenhum mau funcionamento, mas, mesmo assim, recomendamos que você faça backup dos seus dados para o caso de algo não sair como o esperado.
O que é necessário para realizar o procedimento?
Para maximizar as chances de sucesso da conversão, é recomendado que você possua, ao menos, 20% de espaço livre na partição que você deseja realizar o procedimento.
Para poder realizar modificações em uma partição EXT4, ela não deve estar em uso. Por isso, se você quiser converter a partição onde o seu sistema operacional está instalado, será necessário utilizar o modo live de uma distribuição Linux.
O modo live de qualquer distro para usuários domésticos pode ser utilizado para realizar a conversão, porém, recomendamos a utilização do Fedora Workstation, que contém todos os softwares necessários para este procedimento instalados, por padrão.
Conheça o identificador das suas partições
Para executar os comandos corretamente, você deve saber qual é o identificador da partição que você deseja converter. Essa informação pode ser encontrada em softwares de gerenciamento de disco, como o Gparted, o GNOME Disks e o KDE Partition Manager.
O identificador da partição sempre irá seguir o mesmo padrão. No exemplo da imagem abaixo é “/dev/vda2”. Apenas os quatro últimos caracteres deste código devem ser diferentes no seu sistema.

Anote este código e lembre-se de sempre substituir “/dev/vda2” pelo seu identificador nos comandos a seguir.
Como converter uma partição “somente arquivos” de EXT4 para BTRFS
Converter EXT4 para BTRFS em uma partição que contém apenas arquivos e nenhum sistema operacional instalado é bastante simples e não necessita de um modo live. Primeiro, você deve assegurar-se de que as ferramentas necessárias estejam instaladas no seu sistema.
Para isso, basta executar o comando a seguir, de acordo com qual sistema você está utilizando.
Debian, Ubuntu e derivados:
sudo apt install btrfs-progs
Fedora e derivados:
sudo dnf install btrfs-progs
Arch Linux, Manjaro e derivados:
sudo pacman -S btrfs-progs
OpenSUSE e derivados:
sudo zypper install btrfs-progs
Convertendo a partição
Caso a partição que você deseja converter para BTRFS esteja montada, desmonte-a com o comando abaixo:
sudo umount /dev/vda2
Cheque a integridade da partição com o comando:
sudo fsck.ext4 -f /dev/vda2
Em seguida, realize a conversão do sistema de arquivos:
sudo btrfs-convert /dev/vda2
Após o término da conversão, a ferramenta irá criar uma pasta chamada “ext2_saved” no diretório raiz da partição que você converteu. Caso você queira ter a possibilidade de realizar o “rollback” para EXT4, mais tarde, não apague essa pasta.
Como realizar o “rollback” para o EXT4
No momento em que o comando “btrfs-convert” é executado, o mesmo cria uma imagem de backup da partição, anterior a modificação. Por isso, se você não ficou satisfeito com o resultado do procedimento, é possível desfazer as modificações, convertendo a partição de volta para EXT4.
Para fazer o “rollback”, basta executar o comando:
sudo btrfs-convert -r /dev/vda2
Se você ficou satisfeito com o resultado do procedimento, é possível apagar a pasta “ext2_saved”.

Converta a partição do sistema de EXT4 para BTRFS
O primeiro passo para converter a sua partição “/” é iniciar o sistema através do modo live de uma distro Linux. A seguir, realizo a conversão de EXT4 para BTRFS da partição “/” do Ubuntu 22.04 LTS através do modo live do Fedora Workstation 35.
Lembre-se de substituir “/dev/vda2”, nos comandos abaixo, pelo identificador da partição que você deseja converter.
Convertendo a partição
Todo o procedimento é realizado em modo “root”. Por isso, utilize o comando a seguir:
sudo su
Em seguida, realize uma verificação de integridade na partição que você deseja converter:
fsck.ext4 -f /dev/vda2
Converta a partição para BTRFS:
btrfs-convert /dev/vda2
Editando o arquivo “fstab”
Monte a partição convertida no sistema que está em modo live:
mount /dev/vda2 /mnt
Abra o GNOME Disks e selecione a partição que você acabou de converter, para visualizar as informações sobre a mesma. Em seguida, execute o comando a seguir para poder editar o arquivo “fstab”:
nano /mnt/etc/fstab
Com o editor de texto “nano” você pode utilizar as setas do seu teclado para navegar pelo texto e os comandos de copiar e colar são, respectivamente: “Ctrl + Shift + C” e “Ctrl + Shift + V”.
Siga os seguintes passos:
- Copie o código UUID da partição convertida (1) e cole-o no lugar do antigo código UUID no arquivo “fstab” (2);
- No campo 3: substitua “ext4” por “btrfs” e adicione o parâmetro “defaults” seguido de “0 0”. O campo 3 do seu arquivo “fstab” deve ficar idêntico ao da imagem abaixo.
O arquivo de swap original não irá mais funcionar com a partição em BTRFS, iremos gerar um novo “swapfile” mais tarde. Por isso, apague toda a linha que contém as informações sobre o arquivo de swap (4).

Pressione “Ctrl + O” seguido de “Enter” para salvar as modificações e “Ctrl + X” para sair do editor de texto.
Editando o arquivo do GRUB
Com o comando a seguir, utilize o “nano” para abrir o arquivo de configurações do GRUB:
nano /mnt/boot/grub/grub.cfg
Caso o comando acima abra um arquivo em branco, tente novamente com o comando abaixo:
nano /boot/grub2/grub.cfg
Pressione “Ctrl + W” para realizar uma pesquisa no editor de texto nano e, no campo de busca, digite “insmod ext2” seguido de “Enter”. Isso fará o nano destacar todas as ocorrências do termo pesquisado. Você pode utilizar o atalho “Alt + W” para avançar para a próxima vez que o termo pesquisado aparece.
Substitua todas as aparições de “insmod ext2” por “insmod btrfs”.

Pressione “Ctrl + O” seguido de “Enter” para salvar e “Ctrl + X” para sair do nano.
Realize um “chroot” para acessar o sistema instalado
Agora, através do terminal, precisaremos acessar o sistema instalado na partição que acabamos de converter. Além disso, para evitar problemas relacionados ao SELinux quando você for iniciar o sistema instalado, rode o comando a seguir:
touch /mnt/.autorelabel
Monte as pastas necessárias para a utilização do “chroot”:
mount -t proc none /mnt/proc && mount -t sysfs none /mnt/sys && mount -o bind /dev /mnt/dev && mount -o bind /dev/pts /mnt/dev/pts
Acesse o sistema instalado através do “chroot”:
chroot /mnt bash
Atualize as configurações do GRUB
Como realizamos modificações no sistema de arquivos da partição “/”, será necessário atualizar as configurações do GRUB. Caso contrário, o mesmo não irá inicializar.
Também precisaremos remover o antigo arquivo de swap:
rm /swapfile
Para atualizar o GRUB, se o seu sistema estiver instalado no modo “BIOS Legacy”, utilize os seguintes comandos:
grub-install /dev/vda2
grub-mkconfig -o /boot/grub/grub.cfg
Se o comando acima não funcionar, utilize:
grub2-mkconfig -o /boot/grub2/grub.cfg
Se o seu sistema estiver instalado em UEFI, rode os comandos:
mount /boot/efi
grub-install --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg
Se o comando acima não funcionar, rode:
grub2-mkconfig -o /boot/grub2/grub.cfg
Utilize o comando “exit” seguido de “Enter” por três vezes consecutivas para fechar o terminal da maneira correta e reinicie o sistema. Desta vez, inicie o sistema instalado e não o modo live.
Recriando o seu arquivo de swap
Este passo não é necessário se você estiver utilizando uma partição de swap. Porém, se você está utilizando um “swapfile”, siga os passos a seguir.
Entre no modo “root” do seu sistema e acesse a pasta raiz:
sudo su
cd /
Crie um subvolume para o novo arquivo de swap e atribua os parâmetros necessários:
truncate -s 0 ./swapfile
chattr +C ./swapfile
btrfs property set ./swapfile compression none
Gere um novo arquivo de swap. Você pode substituir “2048”, no comando abaixo, pelo tamanho que você deseja para a sua memória swap.
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
Atribua as permissões recomendadas para o novo arquivo e transforme-o em um “swapfile”:
chmod 0600 /swapfile
mkswap /swapfile
Ative o seu novo arquivo de swap:
swapon /swapfile
Adicione o novo “swapfile” no arquivo “fstab”
Abra, novamente, o arquivo “fstab”:
nano /etc/fstab
E, no final do mesmo, cole a linha a seguir:
/swapfile none swap defaults 0 0

Salve as modificações com “Ctrl + O” seguido de “Enter” e “Ctrl + X” para fechar.
Reinicie o sistema, e pronto! A transição de EXT4 para BTRFS está completa.
Se estiver satisfeito com o resultado, você já pode apagar a pasta de backup “ext2_saved” da raiz do seu sistema.
Como fazer o “rollback” da partição “/” de BTRFS para EXT4
Para realizar o “rollback” da partição raiz do seu sistema para EXT4, obviamente, você não pode ter apagado a pasta “ext2_saved”. Então, novamente, inicie o modo live do sistema que está no seu pen drive.
Abra o terminal, acesse o modo “root” e rode o comando de “rollback”.
sudo su
btrfs-convert -r /dev/vda2
Como a partição foi alterada, será necessário realizar, mais uma vez, os passos da configuração do GRUB.
Acesse o sistema instalado através do “chroot”:
mount /dev/vda2 /mnt
mount -t proc none /mnt/proc && mount -t sysfs none /mnt/sys && mount -o bind /dev /mnt/dev && mount -o bind /dev/pts /mnt/dev/pts
chroot /mnt bash
Se o seu sistema for “BIOS Legacy”:
grub-install /dev/vda2
grub-mkconfig -o /boot/grub/grub.cfg
Se o comando acima não funcionar, utilize:
grub2-mkconfig -o /boot/grub2/grub.cfg
Se o seu sistema for UEFI:
mount /boot/efi
grub-install --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg
Se o comando acima não funcionar, rode:
grub2-mkconfig -o /boot/grub2/grub.cfg
Reinicie o sistema e pronto! A sua partição está, novamente, em EXT4.
Extraindo todo o potencial do BTRFS
O sistema de arquivos BTRFS possui diversos comandos que podem ser utilizados para realizar a manutenção do sistema de arquivos. No futuro, iremos produzir um conteúdo falando sobre eles, para que você possa extrair todos os benefícios que este formato tem a oferecer.
Você já sabia ser possível alterar o sistema de arquivos de uma partição sem precisar formatá-la? Conte-nos, nos comentários, qual é a sua experiência com este assunto.
Isso é tudo pessoal! 😉