btrfs 하위 볼륨을 마운트할 수 없습니다.

btrfs 하위 볼륨을 마운트할 수 없습니다.

여러 하위 볼륨이 있는 대규모의 오래된 BTRFS RAID 어레이가 있습니다.

# btrfs subvolume list -u /bulk
ID 256 gen 56429 top level 5 uuid 11b16b2e-8f75-ec46-8cgd-4a001c70a4ba path @
ID 257 gen 56428 top level 256 uuid 0c81c066-dge1-464d-bd50-6f56e9d83e0a path @mine
ID 258 gen 56430 top level 256 uuid 6139b708-3226-324b-8bae-9eb810cfd226 path @shared

@fstab 을 통해 마운트된 루트 하위 볼륨은 하위 볼륨을 내 홈 디렉터리 어딘가에 마운트 bulk하고 싶지만 @mine어떤 이유로 계속 실패합니다.

# mount -t btrfs -o subvol=/@mine,defaults,nossd,user /dev/sdd2   /home/me/bulk
mount: /home/me/bulk: mount(2) system call failed: No such file or directory.
       dmesg(1) may have more information after failed mount system call.

흥미롭게도 마스터-하위 볼륨에는 이러한 문제가 없습니다.

# mount -t btrfs -o subvol=/@,defaults,nossd,user /dev/sdd2   /home/me/bulk

위의 작업은 불만 없이 직접 작동했습니다. 를 통해 마운트하려고 하면 동일한 문제가 발생합니다 /etc/fstab. 또한 UUID를 통해 마운트를 시도했지만 하위 볼륨 UUID를 전혀 찾을 수 없으며 @share정확히 동일한 동작을 보여줍니다.

하위 볼륨 대신 마운트하면 @읽기/쓰기 문제 없이 하위 볼륨을 포함하여 사용자로서 일반적으로 모든 것에 액세스할 수 있습니다. 하지만 실제로는 홈 디렉토리에 특정 하위 볼륨만 마운트하는 것을 선호합니다. 확실히 이것은 가능해야합니다. (예, 설치 직후 "/@"을 제거했기 때문에 마운트 지점이 비어 있습니다)

루트 볼륨과 비교하여 하위 볼륨을 마운트하는 데 필요한 특정 옵션이 있습니까?

이것이 관련된 경우: Manjaro Plasma, 커널 버전 5.15.109-1-MANJARO를 사용하고 있습니다.

답변1

하위 볼륨 목록은 적어도 나에게는 약간 오해의 소지가 있습니다. 하위 볼륨을 해결하는 올바른 방법은 /@/@mine기다리는 것입니다. 프롬프트는 하위 볼륨 목록에 다음과 같이 표시됩니다.

ID 256 gen 56429 top level 5 uuid 11b16b2e-8f75-ec46-8cgd-4a001c70a4ba path @
ID 257 gen 56428 top level 256 uuid 0c81c066-dge1-464d-bd50-6f56e9d83e0a path @mine

top level 256두 번째 줄에서는 @mine그 안에 중첩되어 있음 을 의미합니다 @(ID는 256).

따라서 올바른 설치 명령은 다음과 같습니다.

mount -t btrfs -o subvol=/@/@mine,defaults,nossd,user /dev/sdd2   /home/me/bulk

...그렇습니다. 끝났습니다.

완전성을 위해 다음은 내가 입력한 해당 줄이며 /etc/fstab작동합니다.

UUID=xxxUIDxxx-ofthe-btrfs-rootxxx /home/me/bulk btrfs subvol=/@/@mine,defaults,nossd,user 0 0

/dev/sdd2추가 드라이브를 추가하거나 제거하면 장치(예:)를 통한 설치가 실패할 수 있으므로 UUID를 통해 설치하고 있습니다. 또한 표시된 하위 볼륨 UUID는 btrfs subvolume list특정 사용자 access btrfs명령 으로만 액세스할 수 있다는 것도 알게 되었습니다.하지만 다른 방법으로는 사용할 수 없습니다, 따라서 mount 명령은 루트 디렉터리의 주소를 지정한 다음 하위 볼륨 경로를 제공해야 합니다.

답변2

그 이후로 문제가 해결된 것 같아요.

커널 6.6.26-1-MANJARO의 경우:

sudo btrfs subvolume create /home/user/test
sudo btrfs subvolume list /
ID 257 gen 90511 top level 5 path @home
ID 627 gen 90465 top level 257 path @home/user/test

이 fstab을 사용하면 완벽하게 마운트됩니다.

UUID=74684edf-64af-4e9a-a7ae-33842a4ff298   /home              btrfs   subvol=/@home,lazytime,compress-force=zstd:1             0 0 
UUID=74684edf-64af-4e9a-a7ae-33842a4ff298   /home/user/test    btrfs   subvol=/@home/user/test,lazytime,compress-force=zstd:1   0 0

핵심 부분은

subvol=/@home/user/test

동일한 위치에 하위 볼륨을 수동으로 마운트할 필요가 없으며 자동으로 마운트됩니다. 그러나 /test에 수동으로 설치할 수 있습니다.

관련 정보