De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 25 de junho de 2026
Quando alguém começa a estudar Btrfs, normalmente a atenção se concentra nos recursos mais visíveis: snapshots, compressão transparente, integridade de dados e backups avançados. No entanto, existe um conceito fundamental que serve de base para praticamente todas essas funcionalidades. Esse conceito é o subvolume.
Curiosamente, muitas pessoas utilizam sistemas baseados em Btrfs há anos sem perceber que estão trabalhando com subvolumes diariamente. Distribuições como openSUSE e Fedora utilizam esse recurso de forma intensiva, especialmente para implementar snapshots automáticos e facilitar a recuperação do sistema após atualizações problemáticas.
Para compreender o Btrfs de verdade, é indispensável compreender os subvolumes.
À primeira vista, um subvolume parece apenas um diretório comum.
Por exemplo, suponha que exista a seguinte estrutura:
/dados ├── documentos ├── projetos ├── backups └── videos
Em um sistema de arquivos tradicional, todos esses elementos são simplesmente diretórios.
No Btrfs, porém, um subvolume é algo diferente. Embora visualmente se pareça com um diretório, internamente ele funciona como uma entidade independente dentro do sistema de arquivos.
Uma analogia útil é imaginar um condomínio. Os apartamentos fazem parte do mesmo edifício, mas cada unidade possui existência própria. Um subvolume funciona de forma semelhante. Ele reside dentro do mesmo sistema de arquivos, mas pode ser administrado individualmente.
Essa característica é o que torna possíveis recursos como snapshots seletivos, backups incrementais e replicação eficiente.
Essa é provavelmente a maior fonte de confusão para quem está começando.
Considere o diretório /dados/projetos:
Se ele for criado utilizando:
$ mkdir /dados/projetos
estamos criando apenas um diretório tradicional.
Agora observe:
$ sudo btrfs subvolume create /dados/projetos
Embora o resultado visual pareça semelhante, internamente estamos criando um subvolume. A diferença é enorme.
Um diretório comum faz parte da estrutura de outro diretório, já um subvolume possui identidade própria dentro do Btrfs.
Isso significa que ele pode:
btrfs send;
Em outras palavras, um subvolume é muito mais próximo de uma mini-partição lógica do que de um simples diretório.
Vamos assumir que nosso sistema Btrfs está montado em /dados:
A criação de um subvolume é extremamente simples:
$ sudo btrfs subvolume create /dados/projetos
A saída será semelhante a:
Create subvolume '/dados/projetos'
Pronto, agora existe um novo subvolume chamado "projetos".
Podemos criar outros:
$ sudo btrfs subvolume create /dados/documentos $ sudo btrfs subvolume create /dados/backups $ sudo btrfs subvolume create /dados/laboratorio
Cada um deles passa a existir como uma unidade independente dentro do sistema de arquivos.
Para visualizar os subvolumes existentes:
$ sudo btrfs subvolume list /dados
ID 256 gen 124 top level 5 path projetos
ID 257 gen 130 top level 5 path documentos
ID 258 gen 140 top level 5 path backups
ID 259 gen 142 top level 5 path laboratorio
Observe que cada subvolume recebe um identificador próprio.
Esse detalhe será importante quando começarmos a trabalhar com snapshots e restauração.
A resposta curta é: praticamente em todo lugar.
Um exemplo comum encontrado em distribuições modernas é a separação entre sistema operacional e dados do usuário.
Imagine uma estrutura como:
@ @home
Nesse modelo:
@ contém o sistema operacional;
@home contém os arquivos do usuário.
Quando uma atualização do sistema é realizada, é possível criar um snapshot apenas do sistema operacional sem afetar os documentos pessoais.
Essa separação simplifica enormemente processos de recuperação.
Outro cenário comum ocorre em servidores.
Uma empresa pode organizar seus dados desta forma:
/containers /bancos /backup /sites
Cada área é criada como um subvolume independente.
Se houver necessidade de restaurar apenas os bancos de dados, não será necessário recuperar todo o servidor.
Talvez o aspecto mais importante dos subvolumes seja o fato de que snapshots são criados sobre eles.
Na prática, não criamos snapshots de diretórios comuns, criamos snapshots de subvolumes.
Por exemplo:
$ sudo btrfs subvolume snapshot \ /dados/projetos \ /dados/snapshots/projetos-2026-06-24
Essa operação cria uma cópia instantânea do subvolume.
Mesmo que ele contenha dezenas ou centenas de gigabytes, o processo leva apenas alguns segundos.
É justamente essa capacidade que tornou o Btrfs tão atraente para servidores, estações de trabalho e distribuições Linux modernas.
Talvez a maior mudança para quem vem do ext4 seja conceitual.
Durante décadas nos acostumamos a pensar em termos de:
O Btrfs adiciona uma nova camada:
Essa arquitetura oferece uma flexibilidade extraordinária. Em vez de dividir previamente um disco em múltiplas partições, podemos criar subvolumes especializados para diferentes finalidades e administrá-los de forma independente.
É uma abordagem mais moderna, mais flexível e muito mais adequada às necessidades atuais de virtualização, containers, backups automatizados e grandes volumes de dados.
Na próxima parte da série veremos justamente o recurso que tornou os subvolumes famosos: os snapshots. Descobriremos como criar verdadeiras "máquinas do tempo" para arquivos e sistemas completos, permitindo voltar a estados anteriores em questão de segundos.