나는 최근에 Kubuntu 컴퓨터에 Linux 커널을 컴파일하고 설치했습니다. 제가 이 작업을 수행한 방법은 kernel.org에서 소스 .tar.gz를 다운로드하고 압축을 푼 후 다음 명령(소스 패키지의 최상위 디렉터리에서 실행)을 사용하여 컴파일하고 설치하는 것입니다.
make oldconfig
make -j4
sudo make modules_install
sudo make install
그러나 재부팅할 때 "오류: 메모리 부족"이라는 메시지가 표시되고 계속하기 위해 키를 눌렀을 때 "동기화되지 않음: VFS: 알 수 없는 블록 마운트 루트 파일에서 실행하지 못했습니다"라는 커널 패닉 화면이 표시되었습니다. 시스템은 (0,0)"입니다.
다른 코어는 잘 작동하므로 여전히 부팅할 수 있습니다. 하지만 나는 왜 이 커널이 작동하지 않는지, 그리고 커널을 작동시키기 위해 무엇을 할 수 있는지 알고 싶습니다.
여러 버전(5.9.12, 5.9.14, 5.10.2)을 시도했지만 동일한 결과를 얻었으므로 여기서는 정확한 버전이 문제가 되지 않는 것 같습니다. 그러나 나는 이전에 이와 같은 커널을 컴파일한 적이 있으며 문제 없이 실행되었다는 것을 알고 있습니다. 그래서 이것저것 시도해봤더니 결국 UEFI가 원인인 것 같다는 걸 발견했습니다. 이 동일한 커널을 이전 시스템에 설치하면 작동합니다. 문제의 (UEFI) PC에서 보안 부팅이 비활성화되어 있으므로 이것이 보안 부팅 키와 관련이 없다고 생각합니다. 이는 UEFI와 관련된 것으로 보이지만 보안 부팅이 아닌 것으로 보이며 이로 인해 충돌이 발생합니다.
그러나 인터넷을 검색하는 동안 UEFI를 사용하여 컴파일된 Linux 커널을 부팅하는 방법에 대한 정보를 찾을 수 없었습니다. 그렇다면 실제로 추가 작업을 수행해야 합니까? 아니면 다른 문제가 있는 걸까요?
편집하다:내 질문이 왜 종료되었는지 이해가 되지 않습니다. 하지만 더 명확한 설명이 필요하면 다음과 같이 질문하겠습니다. kernel.org에서 Linux 커널 소스 코드를 다운로드하거나 여기에서 Ubuntu 커널을 빌드하는 코드를 다운로드하는 경우(https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.10.4/) 위 명령을 사용하여 컴파일한 결과 BIOS에서는 제대로 부팅되지만 UEFI에서는 부팅되지 않는 것으로 나타났습니다. 내 질문은 이유입니다.
답변1
sudo update-initramfs가 트릭을 수행해야 합니다.