사용자 정의 커널을 시작할 수 없습니다

사용자 정의 커널을 시작할 수 없습니다

우분투 11.04를 사용하고 있습니다

사용자 정의 2.6.36.4 커널 소스 코드(예 linux_src: ) 가 있습니다.

Did는 make mrproper 내 현재 구성을 /bootDid linux_src/.config a 에 복사하여 make menuconfig구성 파일을 로드하도록 지시했습니다 .config. 일반 설정에서는 rr커널 버전 번호에 문자열을 추가합니다. 구성을 종료합니다.

슈퍼유저 가 되세요 make && make modules_install && make install. 그러면 /boot에 vmlinuz-2.6.36.4rr 이미지가 생성되고 /lib/modules에 해당 디렉터리가 생성됩니다. System.map은 /boot에 있지만 initrd 이미지에는 없습니다.

그래서 다음 명령을 실행했습니다.

cd /boot && sudo mkinitramfs -k -o initrd.img-2.6.36.4rr

마침내 나는 달렸다 sudo update-grub. Grub은 내 새 Linux 이미지와 새 initrd 이미지를 찾았습니다.

부팅 시 새로 설치된 커널이 내 부팅 옵션에 나열됩니다. 그것을 선택했는데 화면이 꺼졌습니다(그러나 그렇지 않았습니다).검은색, 일부 기본 우분투 테마 색상의 빈 화면만 표시되고 거기에서 멈춥니다.

나는 makeinitramfs 프로세스가 범인이라고 생각합니다.

반면에 다음을 make-kpkg사용하여 동일한 dpkg커널을 설치했을 때아니요이 방법으로 커널을 설치하고 싶습니다).

도와주세요.

편집: 약간의 진전이 있었습니다

사용하는 대신:

cd /boot && sudo mkinitramfs -k -o initrd.img-2.6.36.4rr 나는 사용했다 cd /boot && sudo mkinitramfs -k -o initrd.img-2.6.36.4rr 2.6.36.4rr

나는 이것이 mkinitramfs를 사용하는 올바른 방법이라고 믿습니다.

그러나 이제 부팅 프로세스는 "Abandoned wait for root device" 및 initramfs 프롬프트로 끝납니다.

답변1

설명을 읽어보니 구성 단계에서 한 가지 중요한 작업을 수행하지 않은 것으로 보입니다. make oldconfig파일을 복사한 후 .config실행하기 전입니다 make menuconfig(그런데 구성이 .config소스 디렉터리의 파일에 저장되어 있으면 다음 작업을 수행할 필요가 없습니다). 명시적으로 로드합니다. 이는 기본적으로 수행됩니다. 이는 새 커널 버전이 원래 커널 버전과 조금이라도 다를 때 모든 경우에 필요합니다 .config.

귀하의 initramfs 생성 방법은 잘 모르겠습니다. 제가 사용한 유일한 방법은 입니다 genkernel. 그러나 initramfs가 범인인지 확인하려면 간단히 이전 initramfs 파일(에서 사용하는 파일)을 가리키도록 grub 항목을 수정하면 됩니다. 현재 시스템) . 또한 시스템이 부팅될 때 일반적으로 키를 눌러 부팅 메시지를 볼 수 있습니다 ( 먼저 부트 로더 메뉴 항목에서 해당 항목을 제거 F1해야 할 수도 있습니다 ).quiet

편집하다: 생각해 보세요: grub 메뉴 항목( /boot/grub/grub.cfg또는 에서 발견 /boot/grub/grub.conf)에 문제가 있을 수 있습니다. 이전 메뉴 항목과 새 메뉴 항목을 비교해 보세요. 커널 매개변수가 잘못되었을 수도 있습니다(예: bug real_root). 간단히 말해서 다음 줄은 kernel커널 위치와 initrd를 제외하고 동일해야 합니다.

관련 정보