ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 커널 업그레이드 CentOS6
    Linux 2021. 4. 5. 22:53
    반응형

    커널 업그레이드를 해보자

    커널은 리눅스 운영체제에서 하드웨어와 소프트웨어에게 할당하고 관리하는 역할을 한다.

    운영체제에게 특정기능을 수행하도록 지시하고, 하드웨어 장치 드라이버를 하드웨어와 통하고, 소프트웨어에 리소스(cpu, ram, hdd)를 할당해서 소프트웨어를 작동시킨다.

    <-- 네트워크에서의 리소스는 데이터, 사용자, 호스트, 장치, 대역폭 등을 말한다.

    현재 사용하고 있는 os는 커널위에 레이어를 올린것이다.

    즉 커널이 날아가면 os도 사용할수 없다!!!!!

    커널은 작은 이진 파일로써 /boot 디렉터리에 위치한다.
    일단 현재 커널의 시스템을 확인하도록 하자

    uname -r

    uname -a

    등을 이용해서 현재 커널의 버전을 확인할수 있다.

    2(major:주요 커널 버전).6(minor : 마이너 커널 버전 짝수는 안정버전이고, 홀수는 개발버전이다).32-754(패치버전) 이다.

     

    lsmod 명령어로는 현 리눅스 커널에 있는 모듈들의 정보를 볼수있다.

    insmod 는 모듈을 리눅스 커널에 넣는 프로그램이다. modprobe랑 비슷하지만 insmod set location으로부터 모듈을 읽을수 없고, 자동으로 넣거나 의존성을 관리할수 없다.

    modprobe는 읽고자하는 모듈의 종속적 모듈이 있을 경우 현재 실행중인 커널의 모듈에서 종속적인 모듈을 찾아서 해당 모듈로 로딩할때 자동으로 함께 로드시켜준다.

    <- etc/modprobe.conf 구성파일, /etc/modprobe.d 디렉터리에서 읽어 올린다.

    linux 부팅시 특정 모듈을 읽지 않게 하려면 /etc/modprobe.d 아래, blacklist.conf 파일에서 해당 모듈을 지정해주자

    으락캬!!!!

    <== 이렇게~!

    cd /usr/src

    <== 작업하기 편하게 src 폴더로 이동하였다.

    https://www.kernel.org/
    https://mirrors.edge.kernel.org/pub/linux/kernel/

    <== 해당 사이트에 들어가서 원하는 커널 버전을 우클릭한뒤 링크 주소를 복사하고

    <== wget으로 다운받자

    <== 잘 받아졌나 확인후

    cd /usr/src 

    <== 작업하기 쉽게하기위해 해당 디렉터리로 이동하자

    <== 압축을 풀어주고

    yum -y groupinstall "Development Tools"

    <== 컴파일을 위한 도구들을 다운받아주자

    시간이 좀 걸린다.(3~5?) 만약 귀찮다면 gcc-c++만 다운받자

     

    다음은 프로그래밍 라이브러리를 다운받자

    nucrses-devel <-- text gui 화면

    qt-devel <-- gui 화면

    <== 해당 폴더로 이동한뒤,

    <== 만약 커널 업그레이드 하려는 버전과 현재 커널이 차이가 심할경우 이런에러가 뜨면서 진행이 되지 않는다. (최소 메인버전이 1 이상 차이나지 않게 해주자(old config로 하게되면 설정 진행이 되긴하지만 컴파일이 되지 않는다.)

    make mrproper

    <== 커널파일을 시스템에 적용시키도록 하자

    cp /boot/config-현재 사용중인 커널 ./.config

    <== 현재 커널 설정을 복사해서 업데이트 할때 참고하도록하자

    make xconfig 를 쳐서(=make oldconfig, = make menuconfig)

    <== 커널 설정파일로 가서 Load(불러오자)

    <== 아까 복사했던 설정파일을 연뒤,

    General setup 탭에 들어가서

    Enable deprecated sysfs features to support old userspace tools

    <== 를 누른뒤에 save를 해주자

    그뒤 나가고

    <== make all을 해준뒤에      

    <== 시간 많이 걸린다. ♚♚히어로즈 오브 더 스☆톰♚♚을 4판정도 돌리자

    make modules_install

    <== 해서 빌드된 모듈을 /lib/modules 디렉터리에 넣자

    ls /lib/moduules

    <== 설치된 모듈 디렉터리를 확인해보자

    mkinitrd /boot/원하는이름.img 버전

    <== 부팅 이미지를 만들어 부팅시 블록 디바이스 모듈을 이미지로 만들자

    make install

    <== 생성한 커널 이미지를 /boot 디렉터리로 이동시켜야 /boot/vmlinuz-'버전' 으로 grub에 반영된다.

    <== 에러는 해당 부분의 정보가 커널에 없을때 나타나는데 무시해도 된다.

    <== 부팅때 grub 화면으로 가보니 잘 떳다

    vim /etc/grub.conf

    <== 만약 부팅시 자동적으로 해당 커널을 사용하고싶다면 이 설정파일에서 default=값 에 원하는 숫자를 넣어 자동부팅을 해주자

    위에서부터 차례로 0부터 이다.

    반응형

    'Linux' 카테고리의 다른 글

    하둡-아직 미완성 추후 공개  (0) 2021.05.02
    Ubuntu 메일 서버 iRedMail  (0) 2021.04.24
    CentOS6 yum.repo error  (0) 2021.04.04
    kali로 centos암호 알아내기  (0) 2021.03.28
    centos root패스워드 분실시  (0) 2021.03.27

    댓글

Designed by Tistory.