Primeiro, criaremos o layout que queremos no subvolume padrão:
btrfs subvolume snapshot / /rootfs
mkdir /snapshots
Observe que este /rootfs
será o nosso novo sistema de arquivos raiz; portanto, não faça alterações no atual após esta etapa.
Edite /rootfs/etc/fstab
para fazer o sistema usar o novo subvolume rootfs como sistema de arquivos raiz. Para isso, você precisará modificá-lo para incluir a subvol=rootfs
opção.
monte nosso novo sistema de arquivos raiz em algum lugar, monte os sistemas de arquivos relevantes (dev, sys, proc, inicialize, se houver), faça chroot nele e atualize o grub:
mount -o subvol=rootfs /dev/sdXX /media/temporary
cd /media/temporary
mount -o bind /dev dev
mount -o bind /sys sys
mount -o bind /proc proc
mount -o bind /boot boot
chroot .
update-grub
exit
É isso aí. Reinicialize, e seu sistema de arquivos raiz deve ser o subvolume rootfs. Se isso der certo, não deve haver nenhum diretório / snapshots. Agora você pode excluir o conteúdo do antigo sistema de arquivos raiz no subvolume padrão.
Se desejar, você pode fazer um ponto de montagem permanente para o subvolume padrão:
mkdir /media/btrfs/root
você pode mount -o subvolid=0 /dev/sdXX /media/btrfs/root
criar seus instantâneos / subvolumes.
btrfs subvolume set-default ID /
.ID
pode ser encontrado usando a lista de subvolume btrfs /subvol=/rootfs
(observe o/
)fstab
como isso parece ser o caminho 'adequado', conforme descrito no (btrfs wiki) [ btrfs.wiki.kernel.org/index.php/Mount_options] .subvol=/rootfs
é que qualquer programa que não esteja ciente do seu layout (instaladores de distribuição, por exemplo) montará o subvolume padrão. Se o programa espera que o sistema de arquivos para olhar como um linux sistema de arquivos, se irá falhar, ou pior - preencher o seu subvolume padrão com as coisas que você não quer láfstab
ou configurariam o carregador de inicialização.