Experimentando o BTRFS em um ambiente de VM.
Eu criei 2 sub-volumes (estrutura plana)
ID 256 gen 13 top level 5 path @
ID 256 gen 9 top level 5 path @home
Eu montei o @
e @home
abaixo /mnt & /mnt/home
respectivamente, assim:
mount -o noatime,space_cache=v2,compress=zstd,subvol=@ /dev/vda3 /mnt
mount -o noatime,space_cache=v2,compress=zstd,subvol=@home /dev/vda3 /mnt/home
Quando obtenho a lista de subvolumes, /mnt/home
vejo os dois subvolumes
btrfs subvolume list /mnt/home
ID 256 gen 13 top level 5 path @
ID 256 gen 9 top level 5 path @home
Este é o comportamento esperado? Eu teria esperado ver apenas@home
Estou fazendo algo errado (talvez não criando os subvolumes corretamente ou não os montando corretamente)?
Este é o comportamento esperado. Da página de manual :
Portanto, por padrão, o caminho fornecido existe apenas para identificar o sistema de arquivos a ser inspecionado.
Para obter mais do que você esperava, você pode usar a opção
-o
.Mas observe que esta opção imprime apenas subvolumes abaixo do caminho fornecido e, novamente, o caminho é apenas um identificador para o subvolume começar.
Por exemplo, eu tenho um subvolume raiz (/), um subvolume /usr separado e um volume instantâneo fora da raiz normal.
Se eu adicionar a
-o
bandeiraEu só recebo o
usr
subvolume porque está abaixo da raiz. O subvolume raiz (ID 256) está fora porque é o subvolume identificado pelo caminho/
e, portanto, não abaixo e o instantâneo (ID 277) foi removido porque é irmão de@rootfs
.Para tornar as coisas um pouco confusas novamente, algo como
produz o mesmo resultado mesmo se /usr não estiver abaixo de /var mas /var for um caminho no subvolume @rootfs.