리눅스마스터1급 : 커널 컴파일 및 설치
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 1,243 조회
- 0 추천
- 목록
본문
리눅스마스터1급 : 커널 컴파일 및 설치
커널 컴파일 설정 이후의 커널 컴파일 과정을 정리하면 다음과 같다.
|
|
|
| # make clean # make bzImage (커널 생성) # make modules (모듈 컴파일) # make modules_install (모듈 설치) # depmod -ae -F System.map <kernel-version> # make install |
|
|
|
|
① 이전 수행 내용 삭제와 커널 이미지 생성
∙make clean : 이전에 수행했던 컴파일 과정에서 생성된 오브젝트 파일(*.[oas]), 커널, 임시파일(.tmp*), 설정값(configure) 등을 삭제한다.
∙make bzImage : 아래 명령으로 압축된 커널 이미지를 생성한다.
I는 I의 대문자이다.
커널을 만드는 명령은 몇 가지가 있는데 커널 이미지 자체의 용량이 커짐에 따라 이것이 가장 많이 쓰인다.
커널 컴파일이 성공하면 /usr/src/linux/arch/i386/boot 디렉토리에서 커널 이미지 "bzImage"를 볼 수 있다.
② 모듈 컴파일 및 설치
∙make modules : 커널 환경설정에서 모듈로 설정한 기능들을 컴파일.커널 이미지를 생성한 후에는 커널 모듈들을 생성하는 컴파일 작업을 해야 한다.
즉, 옵션 설정 단계에서 커널 모듈로 선택했던 기능들에 대한 모듈 파일 생성작업을 해야 한다.
이를 위해서 이 명령을 사용한다.
커널 컴파일 전체 과정에서 가장 오랜 시간이 걸린다.
컴파일 후에 생성되는 모듈 파일들은 목적 파일의 형태로 생성된다.
∙make modules_install : 컴파일 된 모듈을 /lib/modules 아래 설치.이 명령은 생성된 커널 모듈들을 새로운 커널이 사용할 수 있도록 “/lib/modules/ <kernel-version>/kernel” 디렉토리로 복사한다.
리눅스 시스템의 “/lib/modules” 디렉토리는 각 커널 버전별로 각각 사용할 모듈 파일들이 존재하는 곳이다.
이곳에 새로 생성한 커널버전 디렉토리를 생성하고 앞에서 생성한 모듈 파일들을 설치하는 것이다.
③ 일괄 명령
상기의 명령들은 다음의 명령으로 한 번에 수행할 수 있다.
|
|
|
| # make clean bzImage modules modules_install |
|
|
|
|
또는
|
|
|
| # make all |
|
|
|
|
또는
|
|
|
| # make |
|
|
|
|
④ 모듈의 의존성 검사 및 modules.dep 파일 생성
위 과정 이후에는 모듈 사이의 의존성을 검사하고 커널과 모듈 간의 의존성을 갖도록 하기 위해 다음과 같이 depmod 명령을 실행한다.
이 경우 “/lib/modules/<kernel-version>” 디렉토리에 modules.dep이라는 파일을 생성한다.
|
|
|
| # depmod -ae -F System.map <kernel-version> |
|
|
|
|
⑤ 커널 파일의 복사 및 GRUB 설정 파일 등록
마지막으로 이후에 새로운 커널로 부팅하기 위해서 커널 파일을 /boot 디렉토리로 복사하고 GRUB 설정 파일에 커널을 등록해야 한다.
다음과 같이 “make install” 명령으로 이것이 자동으로 수행된다.
|
|
|
| # make install |
|
|
|
|
이제 GRUB가 제대로 설정이 되었는지 확인하고, 문제가 있다면 직접 수정할 수 있다.
|
|
|
| title SULinux Server (3.11.8) root (hd0,0) kernel /boot/vmlinuz-3.11.8 ro root=LABEL=/ rhgb quiet vga=771 initrd /boot/initrd-3.11.8.img ...중략... title SULinux Server-base (2.6.18-92.el5) root (hd0,0) kernel /boot/vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet vga=771 initrd /boot/initrd-2.6.18-92.el5.img |
|
|
|
|
설정이 끝난 후에 GRUB 정보를 갱신할 필요는 없다.
만약 MBR에 문제가 생겨서 꼭 갱신해야 한다면 다음과 같이 갱신하도록 한다.
|
|
|
| # /sbin/grub-install /dev/hda |
|
|
|
|
기본적으로는 구버전의 커널과 새로 컴파일 된 커널 버전의 두 가지 커널을 동시에 쓸 수 있게 되었다.
만약 그대로 두 커널 버전을 모두 사용하는 경우 또는 새로운 커널이 문제가 발생할 수 있는 경우를 대비하여 구버전의 커널 모듈 디렉토리는 삭제하지 말고 그대로 두도록 한다.
이제 설치된 새 커널로 재부팅하여 다음과 같이 “uname –r” 또는 “uname –a” 명령으로 리눅스 커널 버전을 확인할 수 있다.
커널 컴파일 및 설치 작업 이후에는 정상적으로 작업이 완료되었는지 확인해 보아야 한다.
|
|
|
| # uname –r 3.11.8 # uname –a Linux sulinux.net 3.11.8 #1 SMP sat Nov 16 20:45:19 KST 2013 x86_64 x86_64 x86_64 GNU/Linux # |
|
|
|
|
관련자료
-
이전
-
다음