커널 2.6 컴파일 후 Kernel panic
성의없이 끄적거린 글을 읽어주시고 답변 주신 모든 분들께 감사드립니다.
질문을 하려면 무엇을 어떻게 해서 어떻게 됐는지 자세하게 올려야 그에 대한 답변도 할 수 있는데
아침에는 제가 너무 졸려서 적을 수가 없었습니다.
(레드햇 리눅스 9(커널 버전 2.4.20-8)에서 커널 2.6.14 버전 소스를 커널 컴파일 중 입니다.)
커널 컴파일 모든 작업을 끝내고 리부팅하니까
Kernel panic - not syncing No init found. Try passing init= option to kernel.
이라고 뜨면서 부팅이 멈춥니다.
커널 컴파일한 과정을 최대한 설명드려 보겠습니다.
귀찮으시더라도 아무쪼록 끝까지 읽어주시고 아주 작은 조언이라도 부탁드립니다.
linux-2.6.14.tar.gz 다운로드받아서 /usr/src 디렉토리에 압축을 풀었습니다.
# tar zxvf linux-2.6.14.tar.gz
오브젝트 파일을 지웠습니다.
# make mrproper
커널 옵션을 설정했습니다.
# make menuconfig
대부분 그대로 유지했습니다.
PCMCIA 슬롯의 사용이 꼭 필요하기 때문에 PCMCIA 설정과 몇몇 설정만 바꿨습니다.
기타 작업을 했습니다.
# make bzImage
# make modules
# make modules_install
module-init-utils를 다운로드받아 압축을 풀고 설치했습니다.
압축 푼 후
# ./configure --prefix=/usr/local
# make
# make install
여기까지 커널 컴파일 과정이고
/boot/에 있던 vmlinuz, System.map라는 이름의 링크를 지우고
/boot/vmlinuz-2.6.14
/boot/System.map-2.6.14
의 링크를 걸었습니다.
/boot/grub/grub.conf에서도
title Red Hat Linux
root (hd0,0)
kernel /boot/vmlinuz-2.4.20.8 ro root=LABEL=/
initrd /boot./initrd-2.4.20.8.img
위에서
kernel /boot/vmlinuz-2.6.14 ro root=LABEL=/
로 바꿨습니다.
마지막으로
# grub-install /dev/hda
하고 재부팅했습니다.
이렇게 설정하고 재부팅해서
Kernel panic - not syncing No init found. Try passing init= option to kernel.
이런 Kernel panic 메시지에 대한 이유나 해결을 아시는 분 알려주셨으면 감사하겠습니다.


Re: 태어나서 처음으로 해 본 커널 컴파일 (2)
예, /boot 디렉토리에 보면 vmlinuz-xxx 파일들이 커널 이미지 파일입니다. make install 하면 커널이미지 등을 /boot 디렉토리로 복사해 줍니다. 커널 컴파일할 때는 커널 패닉이 발생할 수 있기 때문에 이전의 이미지를 보관하고 있는 것이 좋습니다.
바꾸는 것보다 새로 추가하는 것이 좋습니다. 그러면 부팅할 때 Grub 메뉴에서
원하는 이미지로 부팅해 들어갈 수 있습니다. grub-install은 자꾸 하지 않으셔도 됩니다. 이미 grub이 설치되어 있으므로...
아마도 커널 설정에서 IDE 드라이버 등 부팅할 때 필요한 드라이버들을 넣지 않았기 때문일 것 같습니다. 커널 컴파일할 때 이전의 설정을 가져와서 초기설정을 하는데 2.4 커널이 initrd 이미지를 필요로 하는 것을 보면 2.6 커널 설정이 위 드라이버를 모듈로 만들어지도록 설정된 것 같습니다. 그래서 mkinitrd 를 이용해서 initrd 이미지를 만들어서 2.4 커널 처럼 grub의 menu.lst에 적어주셔야 합니다. mkinitrd 사용법은 잘 모르겠습니다. 그냥 커널 이미지에 넣어서 컴파일해보기만 해서...
아미도 파티션에 붙여진 label을 찾아서 root 파티션으로 지정하는가 봅니다.
지금 root 파티션으로 쓰는 파티션에 "/" 라고 label이 붙여진 것 같습니다.
그냥 계속 쓰시면 됩니다.
잘 모르지만 아는체 해 봤습니다. ^^
http://wiki.kldp.org/wiki.php/Kernel%202
http://wiki.kldp.org/wiki.php/Kernel%202.6%20Intro#s-1.6
mkinitrd 사용법이 있네요.
커널 컴파일하고 설치하고 나서 /lib/modules 디렉토리에 가시면 2.6.xxx 와 같은 디렉토리가 있을 것입니다.
/lib/modules 디렉토리에서
# mkinitrd 2.6.xxx -o /boot/initrd-2.6.xxx
하시면 /boot 디렉토리에 initrd 이미지가 생성되는 것 같습니다.
그리고 나서 /boot/grub/menu.lst 를 고쳐주세요. 2.4 커널처럼
initrd 부분을 넣으세요. 물론 initrd 이미지 파일 이름은 그에 맞게 고쳐주세요.
손님 감사합니다.
친절하고 자세한 답변에 진심으로 감사드립니다.
알고 싶었던 많은 것을 알게 되었습니다.
일단 mkinitrd로 initrd-2.6.14 만들었습니다.
그런데, mkinitrd 2.6.14 -o /boot/initrd-2.6.14.img 라는 형식이 안먹혀서
에러 메세지의 example의 형식대로
mkinitrd /boot/initrd-2.6.14.img 2.6.14 로 했습니다.
/boot/ 디렉토리에 initrd-2.6.14.img 만들어졌고
/boot/grub/grub.conf에
kernel /boot/vmlinuz-2.6.14 ro root=LABEL=/
initrd /boot/initrd-2.6.14.img
로 바꿨습니다.
도와주셔서 감사합니다.^^
아직은
Kernel panic -> not syncing No init found. Try passing init= option to kernel.
에러 메세지 뜨면서 부팅이 멈춥니다.
더 도와주세요~
redhat 9를 사용하신다면 패도라 커널 올리는 것도 가능합니다
레드햇 9를 사용하신 다면 몇가지 의존성 설치후 패도라 커널 올리시는 것도 가능합니다.
예전에 제가 테스트 해본 적이 있어서 글 남깁니다.
3.rpm -ivh 패도라커널(fedora 3 커널 사용) 여기서 의존성 나온다.
module-init-tools is needed by kernel-2.6.9-1.6_FC2
mkinitrd >= 3.5.5 is needed by kernel-2.6.9-1.6_FC2
nfs-utils < 1.0.3 conflicts with kernel-2.6.9-1.6_FC2
initscripts < 7.23 conflicts with kernel-2.6.9-1.6_FC2
4.module-init-tools-0.9.14 설치
tar -zxvf module-init-tools-3.0.tar.gz
cd module-init-tools-3.0
./configure --prefix=/sbin
make
make install
5.rpm -Uvh mkinitrd-3.5.14-1.i386.rpm
6.rpm -Uvh nfs-utils-1.0.6-22.i386.rpm
modutils >= 2.4.26-9 is needed by nfs-utils-1.0.6-22
7.rpm -Uvh modutils-2.4.26-16.i386.rpm
8.rpm -Uvh initscripts-7.31.6.EL-1.i386.rpm
ethtool >= 1.8-2 is needed by initscripts-7.31.6.EL-1
9.rpm -Uvh ethtool-1.8-3.1.i386.rpm
10. 다시 커널 설치 완료후 재부팅하면
이후 재부팅시 rpm 오류
rpmdb: unable to join the environment
error: db4 error(11) from dbenv->open: Resource temporarily unavailable
error: cannot open Packages index using db3 - Resource temporarily unavailable (11)
error: cannot open Packages database in /var/lib/rpm
package rpm is not installed
11.그래서 rpm -Uvh rpm-4.2-1.i386.rpm
이렇게 하면 패도라 2.6 커널을 가진 Redhat 9가 돌아간다.
이렇게 설치하셔서 생성된 config 파일과 컴파일 하시면서 사용하신 config 파일 비교해 보시는 것도 도움이 될듯 하네요
what is my wish?