: 안녕하세요...
: 커널업데이트를 정상적으로 하셨음에도 불구하고 예전 커널이 올라온다면
: /etc/lilo.conf가 새로운 커널에 맞게 수정이 안되었거나 수정하고
: lilo.conf가 갱신이 안되었기 때문입니다.
:
:
: : http://www.kernel.pe.kr/data/doc/compile.html : : 여길보고 커널 업데이트 했는데요
: : 버전업이 안되구..옛날버전이 뜨네요!
: : 혹시 커널업데이트 잘 하시는분 좀 갈켜 주세요!
/sbin/lilo
라는 명령어를 하니까.
Fatal: open /dev/hda: Read-only file system
아래와같이 나왔습니다.
제가 한 것은아래와 같습니다.
따라하기
커널 소스를 받는다.( http://www.kr.kernel.org/pub/linux/kernel/) 소스를 /usr/src 방으로 옮긴다.(예: m
v linux-2.2.12.tar.gz /usr/src ) 전에 있던 커널소스 /usr/src/linux 디렉은 다른이름으로 바꾸던지 지
워라.(예: mv linux linux-2.2.11) 만약 linux라는 이름으로 심벌릭 링크되어있다면 링크만 해제하
라.(예: rm linux) 커널 소스를 푼다.(예: tar xvvzf 커널버전.tar.gz 또는 tar xvvIf 커널버전.tar.bz2)
linux라는 디렉토리가 생겼을 것이다. 그 디렉으로 들어간다.( cd linux )
# make menuconfig ( 현재 위치 /usr/src/linux )
커널 컴파일 옵션을 보고 시스템에 맞는걸 선택한다.(중요하다!)
# make clean (예전 오브젝트 파일 제거)
# make dep (의존성을 검사)
#######################################################################
# make bzImage (커널 이미지를 압축생성한다.) ####이부분은 안되서make bzlilo
이걸로 했습니다.
#######################################################################
# mv arch/i386/boot/bzImage /boot/vmlinuz-커널버전 (예: mv arch/i386/boot/bzImage /boot/vmlinuz-2.2.12)
# mv System.map /boot/System.map-커널버전 (예: mv System.map /boot/System.map-2.2.12)
# vi /etc/lilo.conf ( 리로를 편집한다 )
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz-2.2.12 -> 새로운 커널이미지를 linux라는
label=linux ? 레이블로 한다.
root=/dev/hda1
read-only
image=/boot/vmlinuz-2.2.11 -> 혹시나 모를 커널 패닉에 대비하여
label=old 예전 커널을 old란 레이블로 해놓는다.
root=/dev/hda1 (예전 버전이 2.2.11일때)
read-only
# /sbin/lilo ( lilo.conf의 내용을 인식시켜 주기위해 )
여기까지 커널 컴파일은 과정은 끝.
모듈 인스톨 하기
커널 옵션에서 모듈(M)으로 선택한것을 컴파일 하기위해
# cd /usr/src/linux
# make modules
# make modules_install
위와같이 하면 '/lib/modules/커널버전' 디렉에 모듈들이 위치한다.