systemd는 "/proc/cmdline"에 따라 "rootfs"를 마운트합니다.

systemd는 "/proc/cmdline"에 따라 "rootfs"를 마운트합니다.

설정

저는 systemd를 사용하여 Debian 8(jessie/testing) amd64를 실행하고 있습니다.

btrfs 파일 시스템이 포함된 시스템 파티션에는 다음과 같은 레이아웃이 있습니다.

/dev/sda1  
|-root  
|-root_snapshots/  
   |-snapshot#1
   |-snapshot#2

스냅샷에서 완전히 부팅하려면 현재 하위 볼륨을 변경해야 합니다.

  • /etc/fstab에서
  • Grub 콘솔(편집 모드)

시작할 때.

질문

"/etc/fstab"을 변경하려면 실행 중인 시스템(예: 플래시 드라이브)이 필요합니다. 이를 피하고 싶습니다.

상상하다

무언가가 실제로 손상되어 스냅샷 #1에서 부팅해야 한다고 가정하면,
grub 콘솔에서 하위 볼륨을 변경하고 올바른 하위 볼륨(여기서는 스냅샷 #1)에 rootfs를 마운트하는 편이 낫습니다.

/etc/fstab이 변경되지 않은 경우 systemd는 /etc/fstab에 지정된 항목에서 rootfs를 계속 마운트합니다. -> 마운트하려면 rootfs 오류가 발생합니다.

질문

  • "/proc/cmdline"의 "rootflags=subvol=" 매개변수에서 rootfs를 마운트하도록 systemd에 지시할 수 있습니다.
  • 아니면 이 문제를 피할 수 있는 다른 해결책이 있나요?

답변1

나는 이것이 도움이 될 것이라고 생각했습니다. systemd가 이해하는 커널 명령줄 인수 목록이 있습니다.http://www.freedesktop.org/software/systemd/man/kernel-command-line.html
fstab= 및 rd.fstab 옵션이 있습니다.

부울 매개변수를 사용합니다. 기본값은 "예"입니다. "아니요"인 경우 생성기가 /etc/fstab에 구성된 모든 마운트 또는 스왑을 무시합니다. rd.fstab= 뒤에는 초기 RAM 디스크(initrd)만 오고, fstab= 뒤에는 기본 시스템과 initrd가 모두 옵니다.

따라서 grub/grub2에서 root=/dev/required_dev fstab=no를 설정하면(무엇을 사용하고 있는지 모르겠습니다) 예상대로 부팅됩니다.

관련 정보