Altere o subvolume padrão do btrfs para excluir o instantâneo

1

Eu usei snapper com o Fedora 26 para criar instantâneos do meu sistema btrfs, e estou tentando começar de novo (ou seja, remover snapper e qualquer coisa ele fez), mas eu tenho um instantâneo que não posso remover, pois parece ser meu subvolume padrão (não me lembro por que teria feito isso, talvez eu tentei uma reversão).

# snapper delete 535
Deleting snapshot failed.
# btrfs subvolume get-default /
ID 1630 gen 112224 top level 275 path .snapshots/535/snapshot
# btrfs subvolume show /
/
    Name:                   root
    UUID:                   544f9215-4537-fe4b-b1b5-4da21d9abb9c
    Parent UUID:            -
    Received UUID:          -
    Creation time:          2017-07-19 21:28:42 +0100
    Subvolume ID:           257
    Generation:             112591
    Gen at creation:        8
    Parent ID:              5
    Top level ID:           5
    Flags:                  -
    Snapshot(s):

Não tenho certeza se o que estou fazendo aqui faz sentido, mas quero alterar meu subvolume padrão de volta para o volume pai (; mestre; raiz, não tenho certeza da palavra correta) que tinha quando configurei originalmente o sistema no nível superior do sistema de arquivos, ou seja, antes da alteração padrão.

# btrfs subvolume list / -a -p -t
ID      gen     parent  top level       path
--      ---     ------  ---------       ----
257     112604  5       5               <FS_TREE>/root
258     112604  5       5               <FS_TREE>/home
263     112214  257     257             root/var/lib/machines
275     112593  257     257             root/.snapshots
276     112577  258     258             <FS_TREE>/home/.snapshots
1630    112224  275     275             <FS_TREE>/root/.snapshots/535/snapshot
1639    112604  257     257             root/var/log
1641    111548  257     257             root/mnt/virtualbox

Posso executar um btrfs subvolume set-default para um desses para conseguir isso. Eu não estou certo sobre o significado de / ... como eu estava supondo que eu deveria mudar o padrão para a raiz com ID 257, mas isso me jogou fora.

Os arquivos dentro deste instantâneo agora estão desatualizados em comparação com aqueles em / e, portanto, não estou olhando para substituir / com o conteúdo do instantâneo.

    
por Jdog 25.10.2017 / 13:03

1 resposta

2

Com a montagem de um sistema de arquivos BTRFS, é possível especificar qual subvolume montar ou não:

A Btrfs filesystem has a default subvolume, which is initially set to be the top-level subvolume [who's ID is always 5] and which is mounted if no subvol or subvolid option is specified. - https://btrfs.wiki.kernel.org/index.php/SysadminGuide#Snapshots

Você pode substituir o subvolume padrão usando a opção subvol ao montar o sistema de arquivos:

mount /dev/sda / -o subvol=root/.snapshots/535/snapshot

No seu caso, o subvolume 275 foi alterado para ser o padrão quando você realizou uma reversão.

rollback [options] [number]

Creates two new snapshots and sets the default subvolume. Per default the system boots from the default subvolume of the root filesystem. - http://snapper.io/manpages/snapper.html

O que a página do mapa do Snapper está dizendo aqui implicitamente é que ela espera que o ponto de montagem do sistema de arquivos raiz não especifique um subvolume. Caso contrário, o comando rollback não teria efeito, uma vez que seria sobrescrito pela opção subvol .

Seu subvolume padrão original era o nível superior (ID 5). Você certamente pode usar btrfs subvolume set-default para torná-lo o padrão novamente, mas ... talvez você não devesse.

Se você estiver inicializando a partir do seu subvolume 535, talvez tenha acumulado um grande número de alterações ao longo do tempo nesse subvolume. Reverter para o seu subvolume de nível superior significaria a perda dessas alterações; Eu estou usando a palavra loss livremente, dado que as mudanças ainda existiriam, apenas em um subvolume diferente.

    
por 28.10.2017 / 16:12