/boot 파일 시스템 지원 없이 커널 빌드

/boot 파일 시스템 지원 없이 커널 빌드

RPi용 사용자 정의 커널을 구축 중입니다. 문제는 RPi 부트로더에 vfat /boot 파티션이 필요하고 커널 크기를 최소화할 계획이므로 vfat 지원을 커널에서 제거해야 한다는 것입니다.

나는 "Embedded Linux 소개"와 "Linux Kernel Development"라는 책을 읽었습니다. 내가 이해한 바에 따르면, 부트로더는 /boot 파티션을 사용하여 커널과 initramfs 및 기타 중요한 파일을 찾는 것 같습니다.

/boot 형식을 vfat로 유지하면서 커널에서 vfat 지원을 제거하려고 했습니다. 커널이 정상적으로 부팅됩니다. 그러나 systemd가 어딘가에 멈춰서 /boot를 마운트할 수 없다고 말했습니다. 이는 커널이 vfat를 지원하지 않기 때문에 완전히 괜찮습니다. 그런 다음 Systemd는 나에게 구조 쉘을 제공했습니다.

이제 RPi 부트로더가 이미 vfat를 지원하고 문제 없이 커널을 로드할 수 있으므로 systemd가 /boot 마운트를 전혀 방지할 수 있는 방법이 있는지 궁금합니다. 내가 이해한 바로는 이 단계에서 커널이 이미 로드되었으므로 커널은 /boot 파티션에 액세스할 필요가 없습니다.

어떤 도움이라도 대단히 감사하겠습니다.

답변1

systemd는 목록에 있는 파일 시스템을 마운트하려고 시도하므로 해당 /etc/fstab파일 /boot시스템에서 제거 하는 경우 /etc/fstab마운트를 시도해서는 안 됩니다 .

(방금 Fedora 시스템에서 이것을 테스트한 후 제거 /etc/fstab하고 설치되지 않았음을 확인했습니다.)

systemd에는 EFI 파티션을 특별히 처리하는 코드가 있으므로 RPi에 있는 코드일 수도 있고 마운트를 트리거하는 것일 수도 있습니다. 하지만 일반적으로 자동 마운트 장치를 사용하여 수행됩니다. 즉, 설치를 시도합니다. 누군가가 내부를 들여다볼 경우에만 /boot.

장착 논리는 /etc/fstab다음과 같은 방식으로 구현됩니다.systemd-fstab-생성기EFI 파티션을 마운트하는 논리는 다음과 같습니다.systemd-gpt - 자동 생성기.

또 다른 유용한 명령은 systemctl status /boot(vfat를 지원하는 커널과 함께 설치할 때) 해당 명령이 어디에서 왔는지에 대한 힌트를 더 줄 수 있다는 것입니다.

관련 정보