Dividi minha unidade em duas partições btrfs: uma é montada como / (dev/sda1)
, a segunda como /home (/dev/sda2)
.
Eu fiz meu instantâneo inicial de /home
:
mkdir -p /home/snapshots/mnt
mount -o subvolid=0 /dev/sda2 /home/snapshots/mnt
btrfs subvolume snapshot /home /home/snapshots/mnt/snapshots/init
Depois disso, tornei meu init
snapshot padrão e reiniciei o sistema. Como eu queria que o init
snapshot permanecesse limpo, decidi fazer um snapshot dele e chamá-lo current
:
mount -o subvolid=0 /dev/sda2 /home/snapshots/mnt
btrfs subvolume snapshot /home /home/snapshots/mnt/snapshots/current
Funcionou, mas depois de criar current
o subvolume padrão e reiniciar o sistema, percebi que ls
isso /home/snapshots
me deu resultados inesperados:
# ls /home/snapshots
init mnt
# ls /home/snapshots/init
#
A questão é: por que a init
pasta está visível? Minha intuição é que o init
instantâneo é criado no subvolume com id 0 e deve ser visível somente a partir daí.
Responder1
Quando o instantâneo de um determinado subvolume é feito, todos os subvolumes contidos nele (no sentido de estarem anexados na árvore de arquivos) são tratados como diretórios vazios. Daí o comportamento. Você pode simplesmente removê-los do instantâneo, sem perda de dados aqui :)