커널 패닉
글쓴이: vimania / 작성시간: 일, 2008/12/14 - 10:52오후
젠투 리눅스를 설치하고 부팅을 하는데 다음과 같은 에러가 나오면서 커널 패닉상태가 됩니다.
VFS: Cannot open root device "sda4" or unknown-block(0,0) Please append a correct "root=" boot option
"root=" 옵션을 말하면 grub 인거 같아 grub.conf를 확인했습니다.
Title linux 2.6.26.7 root (hd0,1) kernel /boot/kernel-2.6.26.7 root=/dev/sda4
디스크 구성
sda2 /boot (ext2) sda3 swap sda4 / (XFS)
/etc/fstab 구성
/dev/sda2 /boot ext2 defaults,noatime 1 2 /dev/sda3 none swap sw 0 0 /dev/sda4 / xfs noatime 0 1
grub.conf에 root=/dev/sda4 를 root=/dev/hda4로 해도 안되고
grub.conf 수정하고 grub-install --no-floppy /dev/sda 해도 그대로입니다.
어느 부분을 확인해야 할까요?
Forums:
제 느낌에는 커널에
제 느낌에는 커널에 xfs 관련 지원이 built-in으로 들어가지 않았거나, initrd에 모듈이 들어가지 않았거나 initrd는 정상이지만 grub에 등록되지 않았거나... 그런 상태인 것 같은데요?
--
"The love you take is equal to the love you make." The End, by Beatles
--
"The love you take is equal to the love you make." The End, by Beatles
kernel
kernel menuconfig에서
File system --->
<*> XFS support
선택했습니다. 근데 XFS support 선택하면 보이는 하위 목록은 선택하지 않았습니다. 하위 목록 중에 선택해야 하는게 있나요?
설치하면서 initrd 에 관해서는 커널 컴파일 옵션 선택할때 아무것도 해준게 없는거 같은데 어느부분에서 선택해 줘야 하나요?
그리고 genkernel를 사용해서 커널을 컴파일 하지 않으면 initrd는 필요 없는거 아닌가요?
.
주어진 정황상으로는 이유를 알 수 없네요.
혹시 SCSI 같은 버스/브릿지 류의 커널 컴파일 옵션을 다시 보시는 것도 좋을 것 같네요
알려주신대로 kernel
알려주신대로 kernel configuration을 다시 확인했습니다.
제 생각으로는 커널 패닉에 관련된 부분이 이정도인거 같은데 혹시 제가 빠뜨린거 있나요?
HDD는 SATA방식입니다.
.
에러 메시지를 위아래 몇 줄 더 보여주시면 정보가 더 있을 것 같습니다..
정확한 에러
정확한 에러 메세지를 적어왔습니다.
available partitions을 보여주려는 부분인거 같은데 커널 패닉되면서 멈춰 버립니다.
많은 조언 부탁 드립니다.
AHCI 가 맞는지 lspci
AHCI 가 맞는지 lspci 확인은 마치셨나요?
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/
https://xenosi.de/
lspci 했더니 intel...
lspci 했더니 intel... AHCI... 라고 나오길래 선택했습니다.
그런데
이 옵션 꼭 들어가야 하나요?
올려주신거 중에 다른거는 다 했습니다.
필요할겁니다. sata 는
필요할겁니다.
sata 는 어쨌든 ide 기반인데 scsi 처럼 잡히죠.
emerge money
http://wiki.kldp.org/wiki.php/GentooInstallSimple - 명령어도 몇개 안되요~
http://xenosi.de/
https://xenosi.de/
genkernel로 커널을 만드셨다면....
우선 젠투에서는 가능한 genkernel을 이용해서 커널을 빌드하시는 게 가장 편리합니다. ^^
위에서 지적하신 XFS 관련 부분을 menuconfig를 통해 모두 선택하신 상태이시고,
genkernel로 커널을 빌드했다고 보구요.
grub option을 확인하셔야 할 것 같습니다.
현재 제가 쓰고 있는 머신의 grub.conf입니다.
보시면 real_root=/dev/sdb1으로 옵션을 주었죠. 여기서, /dev/sdb1은 실제 / 파티션입니다.
/를 XFS 혹은 LVM으로 선택한 경우 initrd가 꼭 필요합니다.
There's always another way, dear.
---------------------------------
There's always another way, dear.
한가지 더.....
저도 2.6.27-gentoo-r4를 컴파일하면서 경험한 것인데...
SATA 라이브러리와 PATA가 한 집으로 합쳤더군요.
장치명 mapping 구조가 바뀌었습니다.
저 같은 경우 IDE HDD 1개, SATA HDD 1개를 달았더니
예전같으면
/dev/hda
/dev/sda
로 인식이 되던것이....
/dev/hda -> /dev/sdb
/dev/sda -> /dev/sda
로 바뀌더군요. SATA가 먼저 mapping이 되는 방식입니다.
재밌는 것은 Gentoo LiveCD에서는 예전방식으로 그대로 인식을 한다는 겁니다. 커널 버전이 낮아서요.
이게 ROM BIOS 옵션하고 꼬이면 별것도 아닌게 디게 헛갈립니다.
참고하시구요.
XFS를 선택할 때 저는 항상 디버그 옵션을 제외하곤 모두 사용하는 걸로 합니다.
실제로 해당 기능을 쓰는 경우도 있어서요.
Quota나 ACL, Realtime subvolume을 사용하실 계획이 전혀 없다면 선택하지 않으셔도 부팅과는 상관없습니다.
도움이 되시길 바랍니다.
There's always another way, dear.
---------------------------------
There's always another way, dear.
genkernel 사용
genkernel 사용 안했습니다.
처음에 커널 컴파일할때 옵션을 모두 no 로 세팅한다음에
필요한거 추가하고 컴파일(make && make modules_install)했는데 커널 패닉이라서 질문을 올린건데
패닉생기는 .config파일 백업하고
한다음에 옵션 변경 안하고 그냥 컴파일 하니까 부팅이 되네요.
뭐가 빠져서 패닉이 생겼는지 어찌 알 수 있을까요?
SATA부분에서 옵션을 하나씩 지우면서 컴파일 해보면 알 수 있을거 같은데 엄청난 시간이 걸릴거 같습니다.
우분투 live cd 부팅 시간도 엄청 오래 걸리고 컴파일 시간도 오래걸리네요.
알아내는 좋은 방법이 있을까요?
이렇게 해서 보면 필요 없어 보이는 옵션이 엄청 많습니다. 그런데 함부로 옵션을 지우기 겁나네요.
좋은 팁있으면 알려주세요.
저와는 반대로 하시네요.
저는 우선 시스템 설정할 때 잦은 Live CD 부팅은 엄청 귀찮아 하는터라.....
우선, 커널 설정을 Live CD의 설정을 그대로 이용합니다.
zcat /proc/config.gz > /root/kernel_config
하여 이걸 이용해서 커널 컴파일을 먼저하고 이걸로 우선 부팅이 되도록 합니다.
부팅이 잘 되는 커널이미지를 확보한 후 커널 최적화를 하기 위해 이것 저것 만집니다.
이게 좀 더 실수를 줄이는 방법이더라구요.
말씀 하신대로 커널 옵션이 너무 방대해서.... 두개의 config 파일을 diff 해보는 것도 별 의미가 없겠습니다. ㅠㅠ
그래서, 일단 최소옵션으로 시작해서 사용하는 옵션을 일일이 다 설정하고 다니려면 시간 무지하게 까먹습니다. 오히려 시간이 더 많이 걸리시지 않나요?
저같은 경우에는 우선 불필요한 모듈을 모두 꺼버리구요.
이렇게 해도.... 커널 사이즈나 메모리 사용량이 일반 배포판보다 낮습니다.
저는 우선 이 정도에서 만족하는 편이어서...
genkernel을 제가 추천하는 이유는요.
우선 젠투에서 사용하는 /etc/make.conf 체계를 그대로 사용할 수 있어서 컴파일할 때 손댈 일이 확 줄어들기 때문입니다. 커널에도 CFLAGS를 그대로 적용해 주니까요.
젠투의 특성을 가장 많이 살릴 수 있는 유틸리티입니다.
그리고, 어떤 모듈이 빠졌는지를 보시는 방법은 부팅시에 커널 메시지를 잘 관찰하셨다가 해당 메시지를 가지고 커널 소스를 뒤지는 방법 밖에 모르겠습니다. 이것 역시 만만치 않은 작업이라 저는 그냥 앞서 설명드린 대로 default configuration -> 내가 확실히 아는 거 빼기 정도입니다.
시간도 귀중한 자원이니까요.
그리구, 커널 설정을 애써서 하나 만들어 놓으신 경우에도 커널 버전이 올라가면 없어지거나 통폐합되는 옵션들이 꽤 있어서 장기적으로 도움이 안되는 경우가 있더군요.
예전엔 커널 컴파일 옵션을 일일이 모았었는데.... 지금은 그냥 참조만 할 뿐입니다.
There's always another way, dear.
---------------------------------
There's always another way, dear.
koseph님이
koseph님이 말씀하신대로 우선 부팅이 되게끔 하고 확실히 필요 없는 옵션을 제거하면 되겠군요.
좋은 팁 감사합니다.
댓글 달기