커널 컴파일후 Grub에서 이미지를 읽지 못합니다.
안녕하세요~리눅스 초짜입니다.
간단한 시스템콜을 넣어보고자 커널 소스를 좀 주물럭 댄다음에
make mrproper //설정파일 다 날리고
make menuconfig //다시 설정해주고..몰랐는데 1시간 넘게 걸리더군요..OTL
make dep // 의존성 검사하고
make clean // 기존 Object 파일 다 지우고
make bzImage // 커널 이미지 생성!!
커널에서 특별히 바뀐게 없는거 같아서 모듈 생성은 하지 않았습니다. 나중에
make modules
make modules_install
해도 마찬가지인거 같았지만...
여튼 모듈은 건너뛰고 이미지가 생성되서 그것을 /boot로 옮긴뒤에 grub.conf에 이미지 로드 하는 부분을 아래와 같이 삽입했습니다.
title Test
kernel /mylinux ro root=/dev/sda2
라는 것을 추가했습니다.(책에 보니까 요렇게 하믄 된대요-_-;; )
책에서는 뭐라냐 기존 커널이 있으니 모듈은 재컴파일할 필요 없다고 하고요. 뒤에 initrd인가 먼가 붙는건 안붙이더라고요. 뭐 읽어보니까 모듈 이미지인거 같은데 빼도 돌아간다고..ㅡㅡ;;
머 여튼 이렇게 해서 설정을 마치고..기쁜맘으로 리부팅해서 제가
생성한 이미지로 부팅하려고 떡 누르니까~
Error 13 : Invalid or unsupported executable format
이라는게 뜨더군요..ㅡ.ㅡ;;; 첨엔 제가 커널 옵션줄때 잘못준줄 알고 다시 씨름해서 컴파일 해봤으나...계속 저놈이 뜨는군요.
원인이 뭘까요?? 찾아봐도 이런 증상이 없었던거 같아서요.
OS는 레드헷 리눅스 9였구요, 커널은 2.4 글구 노트북서 VM Station에서 한거거든요..답변 부탁드립니다!!
아 그리구요...menuconfig에서 파일 읽어들이거나 쓸때요..키보드에서 입력을 받을때 지워지는건 안되던데..예를 들어 config 읽어볼때 파일이름이 안지워지고 쳐지기만 되는데 이건 어떻게 처리하는지도 알려주세요~~
kernel /mylinux ro root=/dev/sda2 왜 이렇
kernel /mylinux ro root=/dev/sda2
왜 이렇게 되야 하는지 궁금하네요.
그리고 커널 설정을 다시 해줬으면 모듈 컴파일 해주는게 좋을 듯합니다.
인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com
아..죄송합니다. 중간에 하나 뺴먹었네요 정확히 치면
아..죄송합니다. 중간에 하나 뺴먹었네요 정확히 치면
title test
root(hd0, 1)
kernel /mylinux(요건 이름 제가 바꾼거예요) ro root=/dev/sda2(노트북이라 그런지 h가 아니고 s로 잡히네요)
요거 였습니다.
질문 제대로 못해서 죄송합니다..ㅠ_ㅠ
댓글 달기