Restaurar instantâneo Btrfs do subdiretório para pai

4

Eu tenho uma partição Btrfs que tem um único subvolume no nível superior ( /root ). Tem a opção subvol=root em / etc / fstab.

Toda semana, faço um instantâneo somente leitura em /root/snapshots/... usando:

btrfs subvolume snapshot -r / /snapshots/"$(date --rfc-3339=date)"

(os caminhos não têm /root porque estão montados como subvol=root ).

Agora vamos dizer que algo deu errado e eu quis restaurar meu subvolume raiz de um snapshot, eu inicializo de um disco USB e montei a partição como /mnt/disk sem subvol=root . Se eu tentar executar:

btrfs subvolume snapshot /mnt/disk/root/snapshots/2015-05-01 /mnt/disk/root

Cria o novo subvolume como /mnt/disk/root/2015-05-01 em vez de substituir /mnt/disk/root/ . Se eu tentar excluí-lo primeiro executando

btrfs subvolume delete /mnt/disk/root

Dá a mensagem de erro:

ERROR: cannot delete '/mnt/disk/root' - Directory not empty

Existe uma maneira de fazer isso? Ou devo criar o hábito de criar instantâneos fora sendo o subvolume instantâneo?

    
por imgx64 29.05.2015 / 06:23

1 resposta

1

Acho que foi aí que você errou:

If I try to run:

btrfs subvolume snapshot /mnt/disk/root/snapshots/2015-05-01 /mnt/disk/root

It creates the new subvolume as /mnt/disk/root/2015-05-01 instead of replacing /mnt/disk/root/.

btrfs subvolume snapshot é usado para criar um instantâneo do primeiro argumento, e colocá-lo no diretório fornecido pelo segundo argumento. Parece que você está esperando para substituir /mnt/disk/root .

Antes de tentar substituir o subvolume /mnt/disk/root , você precisará movê-lo ou excluí-lo (por exemplo, mv /mnt/disk/root /mnt/disk/root-backup-during-restore ). Então faça:

btrfs subvolume snapshot /mnt/disk/root/snapshots/2015-05-01 /mnt/disk/

E então:

mv /mnt/disk/2015-05-01 /mnt/disk/root
    
por 05.05.2017 / 15:07