mknod 단계에서 사용자 정의 커널로 부팅이 실패하는 이유는 무엇입니까?

mknod 단계에서 사용자 정의 커널로 부팅이 실패하는 이유는 무엇입니까?

Ubuntu에서 사용자 정의 커널을 구축하고 싶습니다. 새로운 커널을 구성하고 구축했습니다. 새 커널은 초기화되지 않았으며 바닐라 소스에서 나왔습니다. 나는 필요한 드라이버만으로 이 새로운 모놀리식 커널을 구축합니다.

새 커널을 부팅하려고 하면 해당 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에 의해 설정됩니다. 커널로 빌드하고 로드했습니까?

관련 정보