
Estou tentando automatizar a criação e montagem de subvolumes Btrfs. É fácil criá-los e criar a entrada fstab, mas é mais difícil analisar o ID do subvolume.
Percebi que outros subvolumes têm nomes previsíveis prefixados com '@' e são montados desta forma em/etc/fstab
UUID=280d6f04-6ad0-4647-96b9-580aec12bbdc /var/log btrfs noatime,subvol=@/var/log 0 0
Na verdade, a montagem com tal etiqueta funciona
$ mount -o subvol=@/var/log photoshop-32
A montagem de um subvolume com um nome 'normal' falha
$ mount -o subvol=var/users/robert/wines/photoshop-32 /var/users/robert/wines/photoshop-32/
mount: mount(2) failed: /var/users/robert/wines/photoshop-32: No such file or directory
Portanto, tentei criar um subvolume com esse nome, mas falhei
# btrfs subvolume create /var/users/robert/wines/blah/@/var/users/robert/wines/blah
ERROR: cannot access '/var/users/robert/wines/blah/@/var/users/robert/wines': No such file or directory
# btrfs subvolume create /@/var/users/robert/wines/blah
ERROR: cannot access '/@/var/users/robert/wines': No such file or directory
# btrfs subvolume create //@/var/users/robert/wines/blah
# ERROR: cannot access '//@/var/users/robert/wines': No such file or directory
Como posso criar subvolumes com um '@' no nome? Alternativamente, como posso montar subvolumes sem a necessidade de encontrar o ID do subvolume?
Responder1
Obrigado ao canal #btrfs no IRC (referência completa), descobri o seguinte:
- esses subvolumes subvolumes são criados no
subvolid=0
subvolume, que não é montado por padrão - para criar esses subvolumes, primeiro monte esse subvolume de nível superior e, em seguida, crie o subvolume abaixo dele
Por exemplo, no meu cenário:
# mount UUID=280d6f04-6ad0-4647-96b9-580aec12bbdc -o subvolid=0 btrfs-sys/
# tree -L 2 /mnt/btrfs-sys/
/mnt/btrfs-sys/
└── @
├── boot
├── etc
├── opt
├── srv
├── tmp
├── usr
└── var