여러 하위 볼륨이 있는 대규모의 오래된 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에 수동으로 설치할 수 있습니다.