AnNyung Official Homepage Home > Pkgadm [ Pkgkernel ]  

HOME
What is AnNyung
Documents
Packages System
  . Packages System ?
  . pkgsysupdate
  . pkgdistupdate
  . pkgdb
  . pkginfo
  . pkgadd
  . pkgdel
  . pkgchk
  . pkgkernel
  . pkgdeveltrans
White Paper
Download
Update
FAQ
Hardware
RoadMap
Gallery

  Go oops.org
  AnNyung banner 88x31

  AnNyung banner 80x15
  AnNyung banner 80x15
  AnNyung banner 80x15
  AnNyung banner 80x15
  AnNyung banner 80x15
  AnNyung banner 80x15



pkgkernel
pkgkernel 은 안녕 리눅스의 커널을 관리하는 프로그램입니다. 커널의 설치 및 업데이트와
삭제, 정보 출력등을 지원합니.

안녕의 커널은 다음과 같이 구성이 됩니다.

kernel           펜티엄 2 이상의 CPU 용 커널
kernel-PIII      펜티엄 3 CPU 용 커널
kernel-PIV       펜티엄 4 CPU 용 커널
kernel-bigmem    펜티엄 4 CPU 용 및 4G 이상의 메모리용 커널
kernel-headers   커널 헤더 파일
kernel-source    안녕 커널 소스

이 코드들은 pkgkernel 을 사용할 때 필요한 코드들이니 잘 인식을 하시고 있어야 합니다.

kernel-source 는 안녕의 커널을 재구성 하실때 외에는 필요가 없습니다. 커널 프로그래밍
시에는 kernel-headers 만 있으면 됩니다.

다음은 pkgkernel 의 사용 예 입니다.

    1. 기본 사용법
    2. 커널 정보 보기
    3. 커널 설치/업데이트 하기
    4. 커널 삭제 하기


 
1. 기본 사용법 

 Hanterm - pkgkernel --help


 [oops@main dir]$ pkgkernel --help
  PKGADM v.2.0.0 : 커널 관리 툴

  사용법: /usr/sbin/pkgkernel [옵션] [커널이름-버전-릴리즈]
  옵션:
      -v|--verbose        상세 출력
      -i|--info           현재 커널 정보 출력
      -r|--remove         커널 삭제
      -n|--noansi         안시 출력 사용 안함
      -f|--force          같은 버전이나 예전 버전을 강제로 설치
      -h|--help           도움말 (현재 메세지).

  예제:
      * 커널 리스트 보기
        /usr/sbin/pkgkernel -i
        /usr/sbin/pkgkernel -i kernel-PIV
      * 커널 삭제
        /usr/sbin/pkgkernel -r kernel-PIV
        /usr/sbin/pkgkernel -r kernel-PIV-2.4.20-20
      * 커널 설치
        version format => epoch:version-release
        /usr/sbin/pkgkernel kernel-PIV
        /usr/sbin/pkgkernel kernel-PIV-1:2.4.20-20

 [oops@main dir]$ 


 
2. 커널 정보 보기 

  커널 정보는 -i 옵션으로 볼 수가 있습니다. -i 옵션은 현재 Packages System 에서 제공
  하는 current 커널 정보와 현재 시스템에 설치 되어 있는 정보를 제공합니다.

  만약 자신의 CPU 가 Pentium4 라면 pkgkernel -i kerne-PIV 명령을 실행하여 kernel-PIV
  용으로 제공하는 모든 버전을 확인할 수 있습니다.

 Hanterm - pkgkernel -i


 [oops@main dir]$ pkgkernel -i
  * 커널 데이터베이스 정보

  kernel          => 3:2.4.22-2
  kernel-PIII     => 3:2.4.22-2
  kernel-PIV      => 3:2.4.22-2
  kernel-bigmem   => 3:2.4.22-2
  kernel-BOOT     => 3:2.4.22-2
  kernel-headers  => 3:2.4.22-2
  kernel-source   => 3:2.4.22-2

  주의  : pkgkernel -i 커널패키지이름 명령을 이용하면
          지원 가능한 커널 버전을 확인할 수 있습니다

  * 현재 설치되어 있는 커널 정보

  kernel-PIV      => 1:2.4.20-20
                     2:2.4.22-1 boot
  kernel-headers  => 2:2.4.22-1
  kernel-source   => 1:2.4.20-20

 [oops@main dir]$ 
 [oops@main dir]$ pkgkernel -i kernel-PIV
  * 커널 데이터베이스 정보

  kernel-PIV      => 1:2.4.20-21
                     3:2.4.22-2 *
                     1:2.4.20-20
                   

  * 현재 설치되어 있는 커널 정보

  kernel-PIV      => 1:2.4.20-20
                     2:2.4.22-2 boot

 [oops@main dir]$ 


  커널 데이터베이스 정보에서 * 는 Packages System 의 current kernel 을 의미하며 설치
  되어 있는 정보에서 boot 는 현재 부팅되어 있는 커널을 의미합니다. 커널은 기본적으로
  중복 설치로 관리를 합니다.

 
3. 커널 설치/업데이트 하기 

  커널은 중복 설치로 관리가 되기 때문에 실제로 설치 모드나 업데이트 모드의 차이가 없
  습니다.

  단 주의할 것은, 커널을 설치하면, /boot 에서 링크로 처리되어 있는 것들이 새로 설치한
  커널의 것으로 교체가 되기 때문에, 새로 설치한 커널로 부팅할 것이 아니라면 이 링크를
  수작업으로 복구해 주셔야 합니다. 대상 링크들은

    /boot/System.map
    /boot/kernel.h
    /boot/vmlinuz

  입니다. 이 파일들은 항상 가장 마지막에 설치한 커널의 정보로 향하고 있기 때문입니다.

 Hanterm - pkgkernel kernel-PIV


 [oops@main dir]$ pkgkernel kernel-PIV
  kernel-PIV      : 성공

 [oops@main dir]$ 
 [oops@main dir]$ pkgkernel -i kernel-PIV
  * 커널 데이터베이스 정보

  kernel          => 3:2.4.22-2
  kernel-PIII     => 3:2.4.22-2
  kernel-PIV      => 3:2.4.22-2
  kernel-bigmem   => 3:2.4.22-2
  kernel-BOOT     => 3:2.4.22-2
  kernel-headers  => 3:2.4.22-2
  kernel-source   => 3:2.4.22-2

  주의  : pkgkernel -i 커널패키지이름 명령을 이용하면
          지원 가능한 커널 버전을 확인할 수 있습니다

  * 현재 설치되어 있는 커널 정보

  kernel-PIV      => 1:2.4.20-20
                     2:2.4.22-1 boot
                     3:2.4.22-2
  kernel-headers  => 3:2.4.22-2
  kernel-source   => 1:2.4.20-20

 [oops@main dir]$ 


  만약, current 버전이 아닌 상외 버전이나 하위 버전을 설치할 경우에는, 버전을 명기해
  줍니다. 버전 포맷은 pkgadd 에서와 비슷합니다. Epoch:Version-Release 로 사용합니다.
  이 정보는 -i 옵션에서 확인할 수 있습니다.

 Hanterm - pkgkernel kernel-PIV


 [oops@main dir]$ pkgkernel kernel-PIV-1:2.4.20-21
  kernel-PIV      : 성공

 [oops@main dir]$ 


  설치를 한 커널로 부팅을 하실 것이라면 다음의 과정을 수행 하셔야 합니다. 먼저

  /boot/System.map
  /boot/kernel.h
  /boot/vmlinuz

  파일들의 링크가 새로 설치한 커널의 파일로 되어 있는지 확인 하여야 합니다.  다음 과
  정은 아래의 예제를 참고 합니다. 아래의 예제는 현재 2.4.22-1PIV 로 부팅이 되어 있고
  2.4.22-2PIV 를 설치한 후에 리부팅을 하기 위한 과정입니다.

 Hanterm - lilo -R 2.4.22-2PIV


 [oops@main dir]$ lilo
  Added 2.4.22-2PIV
  Added 2.4.22-1PIV *
  Added 2.4.20-20PIV
 [oops@main dir]$ 
 [oops@main dir]$ lilo -R 2.4.22-2PIV
 [oops@main dir]$ 
 [oops@main dir]$ reboot

 [oops@main dir]$ 


  위이 과정은 커널 설치 후에, lilo 를 실행하여, /etc/lilo.conf 에 새로 등록된 커널의
  정보를 MBR 에 기록하게 합니다. 이 상태는 새로운 커널정보를 MBR 에 기록만 하지 실제
  부팅은 여전히 현재 부팅이 되어 있는 2.4.22-1PIV 로 하게 됩니다.

  두번째, lilo -R 작업은 디폴트 부팅 커널은 그대로 유지한 채, 다음 한 번만 지정한 커
  널로 부팅을 하게 하는 옵션입니다.  커널이라는 것이 부팅한다고 무조건 올라온다는 보
  장이 없기 때문에 이런 식으로 부팅을 한후에, 부팅에 실패하면, 그냥 cool 부팅을 다시
  하면 이전 커널로 올라오게 하는 방법입니다. 안녕의 부트로더가 grub 를 사용하지 않고
  lilo 를 사용하는 가장 큰 이유가 여기에 있습니다.

  이 과정 후, 새로운 커널이 정상적으로 올라오면 /etc/lilo.conf 의 default= 옵션의 값
  을 새로운 커널의 label 로 지정하시고 다시 lilo 를 실행하여 부팅 커널을 변경해 주시
  면 됩니다.  역시 이 과정에서도 /boot 에 있는 3개의 symlink 파일의 목적지를 잘 체크
  해야 합니다.

 
4. 커널 삭제하기 

  커널 삭제는 -r 옵션을 사용합니다만,  중요한 것은 커널은 중복 설치이기 때문에 꼭 버
  전을 사용해야 한다는 것입니다.

  삭제를 할 경우는 버전 형식이 다르니 주의 하셔야 합니다. 삭제시의 버전 형식은 Epoch
  를 제외한 Version-Release 입니다.

 Hanterm - pkgkernel -r


 [oops@main dir]$ pkgkernel -r kernel-PIV-2.4.20-20
  kernel-PIV      : 2.4.20-20 삭제 성공

 [oops@main dir]$ 
 [oops@main dir]$ ls -l /boot/System.map /boot/kernel.h /boot/vmlinuz
  lrwxrwxrwx  1 root  root   22 11월 17 20:33 System.map -> System.map-2.4.22-2PIV
  lrwxrwxrwx  1 root  root   20 11월 17 20:33 kernel.h -> kernel.h-2.4.22-2PIV
  lrwxrwxrwx  1 root  root   19 11월 17 20:33 vmlinuz -> vmlinuz-2.4.22-2PIV

 [oops@main dir]$ 


  삭제 후에는 꼭 /boot 에 있는 3개의 링크들의 방향을 확인하셔야 합니다. 부팅을 할 커
  널을 향해 있도록 수정을 해 주셔야 합니다.


    



 Home > Pkgadm [ Pkgkernel ]

Copyright 2013 OOPS Development Organization 
LAST MODIFIED: 2012/08/28