커널 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?
댓글 달기