BTRFS - reverter para instantâneo

0

Eu tenho disco com sistema de arquivos btrfs, que é montado no diretório raiz.

$ sudo btrfs subvol show  /media/qkiz/Corsair/
/media/qkiz/Corsair is btrfs root

Nesta raiz, esta é uma captura instantânea.

$ sudo btrfs subvol show  /media/qkiz/Corsair/snapshot/
/media/mkukielka/Corsair/snapshot
    Name:           snapshot
    uuid:           94d5d0fa-aaf4-d84c-b716-d5121accf7a0
    Parent uuid:        -
    Creation time:      2015-12-02 13:31:18
    Object ID:      258
    Generation (Gen):   23
    Gen at creation:    23
    Parent:         5
    Top Level:      5
    Flags:          -
    Snapshot(s):

Eu faço alterações no sistema de arquivos raiz e agora quero voltar ao instantâneo. Se eu alterar o subvolume padrão:

$ sudo btrfs subvol set-default 258 /media/qkiz/Corsair/

Eu posso ver o estado do instantâneo, mas o espaço em disco ainda é usado pelo diretório raiz. Como excluir o diretório raiz e usar o instantâneo como root?

QkiZ
fonte

Respostas:

1

Para facilitar sua vida, eu recomendaria que o subvolume raiz btrfs (id = 5) seja usado apenas para gerenciar outros subvolumes e capturas instantâneas. Não armazene muitos dados no subvolume raiz e não os refira em scripts etc. Isso facilitará muito a criação de snapshots, reversões, etc.

Por exemplo, no fstab:

# Root of btrfs volume. Used for volume management.
# Do not reference /mnt/root-XYZ/ in scripts or software.
LABEL=XYZ /mnt/root-XYZ btrfs noauto,subvolid=5

# Software using data on this subvolume should reference this path:
#     /media/qkiz/Corsair/...
# and NOT /mnt/root-XYZ/corsair/...
#
LABEL=XYZ /media/qkiz/Corsair btrfs noauto,subvol=corsair

(você mudaria XYZ para o rótulo btrfs atual)

Coloque isso em prática, você poderá criar um instantâneo do subvolume raiz e chamá-lo de corsário. Provavelmente também faça um instantâneo de corsário somente leitura, para fins de backup. Em seguida, exclua os arquivos do subvolume raiz. Por exemplo:

umount /mnt/qkiz/Corsair
mount /mnt/root-XYZ
cd /mnt/root-XYZ
btrfs subvol snap . corsair
btrfs subvol snap -r corsair corsair-YYMMDD

Verifique se corsair-YYMMDD / contém seus dados importantes e exclua os dados do seu subvolume raiz:

rm -rf ./datafiles....

Por fim, monte seu novo subvolume:

mount /mnt/qkiz/Corsair

Você pode tornar seu subvolume 'corsair' o subvolume padrão, se desejar, mas isso não é estritamente necessário. Pode ser útil se for uma unidade portátil e você a mover para outra máquina com um fstab diferente. Dessa forma, o subvolume de corsário seria montado por padrão, e não o subvolume raiz.

Gregor
fonte