cria '@' como subvolume em outra partição

0

Eu tenho / var / log como um sistema de arquivos btrfs em uma partição separada da raiz. Eu estou usando instantâneos para atualização e, posteriormente, reversão.

# mount
/dev/sda2 on / type btrfs (rw,relatime,ssd,subvol=@)
/dev/sda1 on /boot type ext2 (rw,relatime)
/dev/sda2 on /home type btrfs (rw,relatime,ssd,subvol=@home)
/dev/sda3 on /var/log type btrfs (rw,relatime,ssd)

# fstab
# / was on /dev/sda2 during installation
LABEL=root      /               btrfs   relatime,ssd,subvol=@ 0       1
# /boot was on /dev/sda1 during installation
LABEL=boot      /boot           ext2    relatime        0       2
# /home was on /dev/sda2 during installation
LABEL=root      /home           btrfs   relatime,ssd,subvol=@home 0       2
# /var/log was on /dev/sda3 during installation
LABEL=log       /var/log        btrfs   relatime,ssd    0       2

Tudo funciona bem para minha partição raiz, o problema é com minha partição de log. Todos os instantâneos criados em / var / log estão visíveis no diretório / var / log e não consigo descobrir como reverter o instantâneo / var / log. Eu gosto da maneira como a partição raiz oculta os subvols e gostaria de fazer o mesmo para a partição de log.

Aqui estão minhas partições raiz e de log com alguns instantâneos

[~]$ sudo btrfs subvolume list /
ID 257 gen 3165 top level 5 path @
ID 258 gen 3142 top level 5 path @home
ID 262 gen 2086 top level 5 path fr-root
ID 263 gen 2086 top level 5 path fr-home
[~]$ sudo btrfs subvolume list /var/log
ID 257 gen 519 top level 5 path fr-log

Como não há '@log' para criar o instantâneo fr-log, tive que:

sudo mount -L log /mnt/up
sudo btrfs subvolume snapshot /var/log /mnt/up/fr-log

Em vez de criar a partir da montagem, como fiz para o root:

sudo mount -L root /mnt/up
sudo btrfs subvolume snapshot /mnt/up/@ /mnt/up/fr-root

Eu tentei as etapas aqui Criando subvolume btrfs como @ ou @home mas minhas edições no fstab causariam falha na inicialização da caixa.

    
por riotejas 23.01.2015 / 04:22

1 resposta

1

Aqui está a maneira como obtive os resultados necessários do meu script de instalação em pré-requisitos:

# create @log subvolume for mounting /var/log
# this is kludgy but since preseed didn't provide a way...
# this the only way i could create a hidden '@' handle for the /var/log partition 
if [ ! -d /mnt ]; then mkdir /mnt; fi
mount -L log /mnt
btrfs subvolume create /mnt/@log
mv -f /var/log/* /mnt/@log/ || true
umount /mnt
while read -r line
do
    if [[ "$line" =~ "LABEL=log" ]]; then
        echo "LABEL=log       /var/log        btrfs   relatime,ssd,subvol=@log    0       2" >> /tmp/fstab
    else
        echo "$line" >> /tmp/fstab
    fi
done < /etc/fstab
cp -v /tmp/fstab /etc/fstab
btrfs subvolume list /
btrfs subvolume list /var/log
    
por riotejas 30.01.2015 / 16:38