Ubuntu에서 사용자 정의 커널을 구축하고 싶습니다. 새로운 커널을 구성하고 구축했습니다. 새 커널에는 initrd가 없으며 바닐라 소스에서 나옵니다. 저는 필요한 드라이버만으로 이 새로운 모놀리식 커널을 구축했습니다.
새 커널을 부팅하려고 하면 이 단계에서 멈춥니다 mknod
. mknod
예를 들어 /dev/sda1
/dev/vca4
루트 파티션이 읽기 전용으로 마운트되었기 때문에 실패합니다 .
문제는 내 하드웨어에 뭔가가 빠져 있다는 것입니다. 기본 Ubuntu 커널로 부팅하면 아무런 문제가 없습니다. 왜 이런 일이 발생하는지 이해하도록 도와줄 수 있는 사람이 있나요?
답변1
시작 시 루트 파일 시스템은 거의 항상 읽기 전용으로 마운트되어 fsck
실행할 수 있습니다. 완료되면 루트 파일 시스템은 일반적으로 다음 명령을 사용하여 읽기 및 쓰기를 위해 다시 마운트됩니다.
mount / -o remount,rw
그러나 Ubuntu를 사용하고 있으므로 커널 컴파일은 이보다 훨씬 간단합니다. 아직 사용하지 않으신다면 kernel-package
커널 컴파일에 사용하시길 추천드립니다. 패키지와 커널 소스를 가져와서 압축을 풀고 다음과 같이 말하세요.
make-kpkg -j3 --initrd binary
그러면 .deb
일반적인 방법으로 설치할 수 있는 패키지가 빌드됩니다( dpkg -i SOME-FILE.deb
).
답변2
devtmpfs
또는 이(가 tmpfs
) 설치되어 /dev
관리 되어야 합니다 udev
. 따라서 디렉토리는 상태에 관계없이 쓰기 가능합니다 /
. Ubuntu에서는 일반적으로 initramfs에 의해 설정됩니다. 커널을 사용하여 빌드하고 로드했습니까?