/etc/fstab에 rootfs를 나열하는 목적은 무엇입니까?

/etc/fstab에 rootfs를 나열하는 목적은 무엇입니까?

BuildRoot 2015.08.1 /etc/fstab에는 다음 줄이 포함되어 있습니다.

/dev/root / ext2 rw,noauto 0 1

암호화된 Ubuntu 노트북의 /etc/fstab에는 다음 줄이 포함되어 있습니다.

/dev/mapper/ubuntu--vg-root / ext4 errors=remount-ro 0 1

질문:/etc/fstab에 rootfs를 나열하는 목적은 무엇입니까?

답변이 아닙니다:

  • 커널은 root= 매개변수 또는 initramfs에서 읽기 전용으로 rootfs를 마운트합니다. 따라서 /etc/fstab은 읽기 전용 모드에서 rootfs를 마운트하는 데 도움을 줄 수 없습니다.

  • init 프로세스는 읽기 및 쓰기를 위해 rootfs를 다시 마운트합니다. 이 작업은 BuildRoot의 /etc/inittab 및 Ubuntu의 /etc/rcS.d/S06checkroot.sh에서 수행됩니다. 따라서 /etc/fstab은 읽기 및 쓰기를 위해 rootfs를 다시 마운트하는 데 도움이 되지 않습니다.

배경: 저는 멋진 initramfs를 사용하여 임베디드 시스템을 구축하고 있습니다. 적절한 rootfs를 찾을 때까지 네트워크와 로컬에서 다른 rootfs 후보를 찾습니다. switch_root를 호출하기 전에 파일 시스템을 확인하고 읽기/쓰기로 다시 마운트하는 일을 담당합니다.

보너스 질문:/etc/fstab에 rootfs를 나열하지 않으면 어떤 영향이 있습니까?

그렇지 않다면 좋을 것입니다. 각 rootfs마다 다른 /etc/fstab을 유지하고 싶지 않습니다. 그런데 BuildRoot와 Ubuntu가 이를 유지하는 이유는 무엇입니까?

스포일러: 시도해 봤는데 효과가 있는 것 같지만 숨겨진 결과가 조심스럽습니다.

답변1

fstab의 옵션을 사용하여 다시 마운트하고 지정된 옵션(rw 액세스를 포함하지 않을 수 있음)을 적용해야 합니다. fstab에 문의하지 않고 rw를 사용하여 루트 fs를 다시 마운트하도록 하드코딩된 부팅 스크립트가 손상되었습니다. 따라서 fstab에서 제외하는 유일한 결과는 다시 마운트되지 않고 다른 옵션이 적용되지 않은 ro 상태로 유지된다는 것입니다.

관련 정보