가상 머신 환경에서 BTRFS를 실험해보세요.
2개의 하위 볼륨을 만들었습니다(플랫 구조).
ID 256 gen 13 top level 5 path @
ID 256 gen 9 top level 5 path @home
아래와 같이 각각 설치 @
하고 @home
다운로드했습니다 ./mnt & /mnt/home
mount -o noatime,space_cache=v2,compress=zstd,subvol=@ /dev/vda3 /mnt
mount -o noatime,space_cache=v2,compress=zstd,subvol=@home /dev/vda3 /mnt/home
아래 하위 볼륨 목록을 보면 /mnt/home
두 개의 하위 볼륨이 표시됩니다.
btrfs subvolume list /mnt/home
ID 256 gen 13 top level 5 path @
ID 256 gen 9 top level 5 path @home
이것이 예상되는 동작입니까? 나만 볼 줄 알았는데@home
내가 무엇을 잘못하고 있습니까(하위 볼륨을 올바르게 생성하지 않거나 올바르게 마운트하지 않은 것일 수 있음)?
답변1
이는 예상된 동작입니다. ~에서매뉴얼 페이지:
파일 시스템에 있는 하위 볼륨을 나열합니다
<path>
.
따라서 기본적으로 지정된 경로는 확인할 파일 시스템을 식별하는 데에만 사용됩니다.
원하는 콘텐츠를 더 많이 얻으려면 이 옵션을 사용할 수 있습니다 -o
.
지정된 볼륨 아래의 하위 볼륨만 인쇄합니다
<path>
.
하지만 이 옵션은 하위 볼륨만 인쇄한다는 점에 유의하세요.다음과 같은주어진 경로와 경로는 단순히 하위 볼륨의 시작에 대한 식별자입니다.
예를 들어 루트(/) 하위 볼륨, 별도의 /usr 하위 볼륨, 일반 루트 디렉터리 외부에 스냅샷 볼륨이 있습니다.
$ btrfs subvolume list -ta /
ID gen top level path
-- --- --------- ----
256 564502 5 <FS_TREE>/@rootfs
265 564432 256 @rootfs/usr
277 564433 5 <FS_TREE>/@snapshots
-o
플래그를 추가하면
$ btrfs subvolume list -o /
ID 265 gen 564432 top level 256 path @rootfs/usr
usr
루트 디렉토리 아래에 있기 때문에 하위 볼륨 만 얻습니다 . 루트 하위 볼륨(ID 256)은 경로로 식별된 하위 볼륨이므로 /
아래에 있지 않기 때문에 제거되었으며, 스냅샷(ID 277)은 형제이기 때문에 삭제되었습니다 @rootfs
.
다시 조금 혼란스럽게 만들려면
$ btrfs subvolume list -o /var
ID 265 gen 564432 top level 256 path @rootfs/usr
/usr이 /var보다 낮지 않지만 /var가 @rootfs 하위 볼륨의 경로인 경우에도 동일한 결과가 발생합니다.