2.4(RH 9) -> 2.6으로 커널컴파일시 문제가 생겼습니다.
안녕하세요.
레드헷 9의 기본커널 2.4.20-8에서 2.6.8으로 커널 컴파일을 하려하는데 문제가 생겼습니다.
make menuconfig시 적당한 조치가 아닌듯해서
2.4의 .config 파일을 이용, make oldconfig를 실행하였습니다.
--- 시스템 자원 ---
Intel P-III 1GHz CPU * 2
Intel STL2 MainBoard
SCSI 36GB HDD
컴파일 순서는 아래와 같습니다.
--- module-init-tools 설치 ---
# tar -zxvf module-init-tools-3.0.tar.gz # cd module-init-tools-3.0 # ./configure --prefix=/ # make # make moveold # make install # ./generate-modprobe.conf /etc/modprobe.conf
--- modutils 는 RH9에 기본 설치되어 있는 RPM 버전을 사용했습니다. ---
# rpm -qi modutils Name : modutils Relocations: (not relocateable) Version : 2.4.22 Vendor: Red Hat, Inc.
--- 컴파일 ---
# make oldconfig ---> (ext3, aic7xxx 등.. 모듈로 안올리고 커널에 탑재하였습니다.) # make bzImage # make modules # make modules_install # pwd /usr/src/linux-2.6.8 # mv arch/i386/boot/bzImage /boot/bzImage-2.6.8 # mv System.map /boot/System.map-2.6.8 # cd /boot # rm System.map # ln -s System.map-2.6.8 System.map
--- initrd 이미지 만들기 ---
# mkinitrd /boot/initrd-2.6.8.img 2.6.8 No module aic7xxx found for kernel 2.6.8
에러가 나서
# mkdir -p /lib/modules/2.6.8/kernel/drivers/scsi/aic7xxx/ # cp /usr/src/linux-2.6.8/drivers/scsi/aic7xxx/aic7xxx.o /lib/modules/2.6.8/kernel/drivers/scsi/aic7xxx/aic7xxx.o
이렇게 해주었더니 이미지가 생성 되었습니다.
--- /etc/lilo.conf (df -k 시 / 파일시스템이 /dev/sda1으로 확인) ---
prompt timeout=50 default=2.6.8 boot=/dev/sda map=/boot/map install=/boot/boot.b message=/boot/message linear image=/boot/vmlinuz-2.6.8 label=2.6.8 read-only initrd=/boot/initrd-2.6.8.img root=/dev/sda1 image=/boot/vmlinuz-2.4.20-8 label=linux initrd=/boot/initrd-2.4.20-8.img read-only append="root=LABEL=/"
--- 커널 2.6.8 로 부팅 시 나오는 에러메세지 ---
RAMDISK : Compressed image found at block 0 VFS : Mounted root (ext2 filesystem) Red hat nash version 3.4.42 starting Loading aic7xxx .o module No module found in object insmod : error inserting '/lib/aic7xxx.o' : -1 Invaild module format Error : /bin/insmod exited abnormally! Mounting /proc filesystem Creating block device VFS : Cannot open root device "801" or unknown-bolck(8,1) Please append a correct "root=" boot option Kernel panic : VFS : Unable to mount root fs on unknown-block(8,1)
결과에 보시면..
---> VFS : Mounted root (ext2 filesystem)
이건 무슨뜻인가요..? ext3 파일시스템인데.. 왜 ext2로 나오는건지..
감이 잡히는건.. aic7xxx 가 문제를 일으키는것 같은 정도..
몇일간 이것때문에 회사에 눈치보여 죽겠습니다. 2.6 커널 만지시는 다른분들도 기본이 몇일씩 고생을 하시데요.. 헐~
고수님들... 어디가 어떻게 문제가 있는건지 scan한번 부탁드립니다. 부탁!드립니다~ ㅠㅠ
* 공부 열심히 하겠습니다... *
첨부 | 파일 크기 |
---|---|
config.txt | 39.77 KB |
Re: 2.4(RH 9) -> 2.6으로 커널컴파일시 문제가 생겼습니다.
피해가는 방법으로, /boot 파티션을 잡을때 ext2로 잡고 해보세요.(다른 파티션은 맘대로.. )
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
근데.. 그건 다른 시스템도 마찬가지이네요.. (ext2)
다른 RH9 을 쓰고 있는 ext3파일시스템의 머신의
/var/log/message 로그를 보면
Sep 7 17:20:28 mtsa kernel: VFS: Mounted root (ext2 filesystem).
라고 찍히네요..
... 머가 먼지 모르겠습니다..ㅜㅜ
타인의 지혜로는 멀리까지 갈 수 없다!!
말하지 말아라!! 오늘 공부하지 않으면서 내일이 있다고..
[code:1]RAMDISK : Compressed image f
initrd 이미지가 일반적으로 ext2로 포멧되어 있기 때문입니다.
There is no spoon. Neo from the Matrix 1999.
아.. 그럼.. 이 문제(ext2 filesystem)는 그냥 넘어가는게
아.. 그럼.. 이 문제(ext2 filesystem)는 그냥 넘어가는게 나을까요..?
aic7xxx 모듈쪽을 체크해야할까요..?
타인의 지혜로는 멀리까지 갈 수 없다!!
말하지 말아라!! 오늘 공부하지 않으면서 내일이 있다고..
자답!~
Device Drivers -> SCSI device support -> SCSI disk support 를
모듈이 아닌 커널에 직접 심어서 컴파일을 하니 정상적으로 부팅이 되었습니다.
삽질.. ㅜㅜ
도움 주신 모든분들 감사합니다!
타인의 지혜로는 멀리까지 갈 수 없다!!
말하지 말아라!! 오늘 공부하지 않으면서 내일이 있다고..
어떻게 심는지.......
------------------------------------------------------------------------------
Device Drivers -> SCSI device support -> SCSI disk support 를
모듈이 아닌 커널에 직접 심어서 컴파일을 하니 정상적으로 부팅이 되었습니다.
------------------------------------------------------------------------------
라고 하셨는데, 커널에 직접 심어서 컴파일 한다는게, 혹시 menuconfig
에서 체크 하신 담에 컴파일 한다는 말씀인가요?
Re: 어떻게 심는지.......
menuconfig에서
"M"으로 체크했느냐
"*"로 체크했느냐로 보는게 더 맞을 듯 싶군요...
커널 컴파일 옵션에서 initrd 이미지 사이즈를 주는 곳이 있습니다
커널 컴파일 옵션에서 initrd 이미지 사이즈를 주는 곳이
있습니다.
이 부분에 아주 크게 주고 컴파일 한번 해보시기 바랍니다.
아!! 벌써...끝난 거군요...
뒷북...죄송
댓글 달기