Как создать подраздел BTRFS с именем, содержащим «@»?

Как создать подраздел BTRFS с именем, содержащим «@»?

Я пытаюсь автоматизировать создание и монтирование подтомов btrfs. Мне легко их создать и создать запись fstab, но сложнее разобрать идентификатор подтома.

Я заметил, что другие подтома имеют предсказуемые имена с префиксом «@» и они монтируются таким образом в /etc/fstab

UUID=280d6f04-6ad0-4647-96b9-580aec12bbdc /var/log btrfs noatime,subvol=@/var/log 0 0

Действительно, монтаж по такой этикетке работает

$ mount -o subvol=@/var/log photoshop-32

Монтирование подтома с «обычным» именем завершается ошибкой

$ 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

Поэтому я попытался создать подтом с таким именем, но безуспешно.

# 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

Как создать подтома с '@' в имени? Или как можно монтировать подтома без необходимости находить идентификатор подтома?

решение1

Спасибо каналу #btrfs на IRC (полная ссылка), я узнал следующее:

  • эти подтома подтома создаются подтомами subvolid=0, которые по умолчанию не монтируются
  • Чтобы создать такие подтома, сначала смонтируйте подтом верхнего уровня, а затем создайте подтом под ним.

Например, в моем сценарии:

# 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

Связанный контент