이름에 "@"이 포함된 BTRFS 하위 볼륨을 만드는 방법은 무엇입니까?

이름에 "@"이 포함된 BTRFS 하위 볼륨을 만드는 방법은 무엇입니까?

btrfs 하위 볼륨을 자동으로 생성하고 마운트하려고 합니다. 저에게는 이를 생성하고 fstab 항목을 생성하는 것이 쉽지만 하위 볼륨 ID를 구문 분석하는 것은 어렵습니다.

다른 하위 볼륨에는 "@" 접두사가 붙은 예측 가능한 이름이 있고 /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

이름에 "@"이 포함된 하위 볼륨을 만드는 방법은 무엇입니까? 또는 하위 볼륨 ID를 조회하지 않고도 하위 볼륨을 마운트하려면 어떻게 해야 합니까?

답변1

IRC의 #btrfs 채널 덕분에(전체 참조), 다음을 발견했습니다.

  • 이러한 하위 볼륨은 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

관련 정보