Linux는 루트로 마운트할 btrfs 하위 볼륨을 어떻게 알 수 있습니까?

Linux는 루트로 마운트할 btrfs 하위 볼륨을 어떻게 알 수 있습니까?

다음과 같은 btrfs 파일 시스템이 있습니다.

root_subvol        # subvolid=5 - the root subvolume for the btrfs filesystem
  - snapshots/     # Folder that contains btrfs snapshots of the subvol_root that I take before I do system updates
  - subvol_root/   # A btrfs subvolume. Gets mounted as /. Contains /etc, /home, /proc, ...

이제 subvol_root부팅 시에는 my 로 마운트됩니다 /. Linux는 이것이 부팅 시 마운트될 하위 볼륨인지 어떻게 알 수 있습니까 /?

물론 내 subvol_root/etc/fstab에는 다음 항목이 있습니다.

UUID=84ee... /  btrfs  subvol=subvol_root,...

/etc/fstab그러나 서로 다른 하위 볼륨에는 mount 에 대한 서로 다른 하위 볼륨을 나열하는 자체 버전이 있을 수 있으므로 /이는 모호합니다.

/etc/fstab기본 btrfs 하위 볼륨 등을 보나요 ?

답변1

예를 들어 다음을 사용하여 커널 부팅 매개변수를 확인하세요 cat /proc/cmdline.

root=파일 시스템(아마도 레이블이나 UUID로)을 지정하는 옵션과 rootflags=include가 있을 수 있습니다 subvol=subvol_root. 이 옵션은 일반적인 커널 명령줄을 결정하므로 부트로더 구성에 포함됩니다.

또는 부팅 프로세스에서 /etc/fstabinitramfs에 이미 포함된 복사본을 사용할 수 있습니다.

배포판마다 다른 작업을 수행할 수 있지만 내 경험에 따르면 루트 파일 시스템의 위치는 커널 부팅 매개변수에 의해 지정되는 경향이 있으므로 하드웨어 구성을 크게 변경하는 경우 부팅 시 쉽게 수정할 수 있습니다.

루트 파일 시스템이 initramfs에만 지정된 경우 Catch-22와 유사한 상황에 처할 수 있습니다. "initramfs를 수정할 때까지 루트 파일 시스템에 액세스할 수 없지만 필요한 것을 얻을 수 없습니다. 루트 파일 시스템에 액세스할 수 있을 때까지 내 initramfs Tools.initramfs를 수정하세요!"

관련 정보