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

Neste, esta raiz é um instantâneo.

$ 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 snapshot. Se eu alterar o subvolume padrão:

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

Eu posso ver o estado da captura instantânea, 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?

    
por QkiZ 02.12.2015 / 14:30

1 resposta

1

Para tornar sua vida mais fácil, recomendo que o subvolume btrfs raiz (id = 5) seja usado apenas para gerenciar outros subvolumes e snapshots. Não armazene muitos dados no subvolume raiz e não os referenciam em scripts, etc. Isso tornará muito mais fácil para você fazer snapshots, roll-backs etc.

Por exemplo, em 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 o XYZ para o seu rótulo btrfs real)

Faça isso, você pode criar um instantâneo do seu subvolume raiz e chamá-lo de corsário. Provavelmente, também faça um instantâneo somente leitura do corsário, 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 fazer com que seu 'corsário' subvolume o subvolume padrão se você quiser, mas isso não é estritamente necessário. Pode ser útil se esta for uma unidade portátil e você a mover para outra máquina com um fstab diferente. Dessa forma, o subvolume corsair seria montado por padrão, e não o subvolume raiz.

    
por 05.02.2016 / 16:14