[RedHat] 커널 부팅 순서 변경하기: Default Kernel 설정 방법

Default Kernel 이란 시스템 시작 시 로드 되는 GRUB의 기본 커널을 말한다. 커널은 하드웨어를 관리하는 리눅스의 핵심 소프트웨어라고 볼 수 있다. 커널에는 많은 버그들이 발견되기 때문에 OS 설치 후에 종종 커널을 업데이트하는 경우가 발생하게 된다. 일반적으로 우리가 yum update 명령을 이용해 커널을 업데이트하면 이전 버전 위에 커널이 업데이트되는 것이 아니고 신규 버전의 커널이 따로 설치된다. yum은 총 3개의 커널을 유지하고 순차적으로 가장 오래된 버전을 덮어쓰게 된다. 커널이 새로 설치되는 이유는 만약 업데이트된 커널이 기존에 설치된 소프트웨어와 호환되지 않는 경우 동작하지 않게 되고 그럴 땐 이전 커널로 복구해야 하기 때문이다. 이번 글에서는 리눅스에서 설치된 커널을 확인하고 Default Kernel을 이전 버전으로 변경하는 방법에 대해 알아본다.

환경

Red Hat Enterprise Linux 8

Red Hat Enterprise Linux 9

현재 커널 버전 확인

리눅스 부팅 시 한 번에 하나의 커널을 실행하여 부팅할 수 있는데 현재 어떤 버전의 커널로 부팅되어 있는지 확인한다. 가장 많이 사용하는 방법으로는 uname 명령어 실행 또는 /proc/cmdline 파일을 열어서 확인해 보는 두 가지 방법이 있다.

  • uname 사용
[root@rhel8 ~]# uname -r
4.18.0-513.24.1.el8_9.x86_64
  • /proc/cmdline 파일 확인

    /proc 디렉터리 아래 위치한 파일의 경우 사용자가 생성하는 파일이 아니고 실행 중인 커널과 프로세스 정보 등을 담고 있는 특별한 파일이다.

[root@rhel8 ~]# cat /proc/cmdline
BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-513.24.1.el8_9.x86_64 root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet

GRUB2 Default Kernel 확인 및 변경

시스템에 어떤 커널 버전이 설치되어 있는지 확인하고 부팅되는 커널 버전을 변경해 보도록 하겠다. grubby 명령을 이용하면 이런 작업을 간편하게 진행할 수 있다.

1. 부팅 가능한 커널 항목 조회

[root@rhel8 ~]# grubby --info=ALL
index=0
kernel="/boot/vmlinuz-4.18.0-513.24.1.el8_9.x86_64"
...
index=1
kernel="/boot/vmlinuz-4.18.0-477.10.1.el8_8.x86_64"
...
index=2
kernel="/boot/vmlinuz-0-rescue-c361b3c194e5471eb1827bd5b7d66e8e"
...

현재 시스템에 2개의 일반 커널과 1개의 rescue 커널이 존재하는 걸 확인할 수 있다. rescue 시스템 복구를 위한 특수한 커널이므로 무시하고 우리가 사용할 수 있는 일반 커널이 513과 477 커널이 있는 걸 확인할 수 있다.

2. Default Kernel 조회

위에선 본 3개의 커널 중 어떤 커널로 시스템이 부팅되는지 조회하기 위해 –default-kernel 옵션을 이용해 볼 수 있다.

[root@rhel8 ~]# grubby --default-kernel
/boot/vmlinuz-4.18.0-513.24.1.el8_9.x86_64

명령어 출력 결과에 의하면 4.18.0-513.24.1.el8_9 버전의 커널로 시스템이 부팅되는 걸 확인할 수 있다.

3. Default Kernel 변경

다른 버전으로 부팅하기 위해 커널을 변경해 볼 것이다. grubby info 명령으로 조회한 커널 중 이전 버전인 477버전을 선택한다.

[root@rhel8 ~]# grubby --info=ALL
...
kernel="/boot/vmlinuz-4.18.0-477.10.1.el8_8.x86_64"
...

[root@rhel8 ~]# grubby --set-default=/boot/vmlinuz-4.18.0-477.10.1.el8_8.x86_64
The default is /boot/loader/entries/c361b3c194e5471eb1827bd5b7d66e8e-4.18.0-477.10.1.el8_8.x86_64.conf with index 1 and kernel /boot/vmlinuz-4.18.0-477.10.1.el8_8.x86_64

[root@rhel8 ~]# grubby --default-kernel
/boot/vmlinuz-4.18.0-477.10.1.el8_8.x86_64

복사가 안되는 환경이라면 커널 버전을 입력하지 않고 아래처럼 index 번호로 변경할 수 있다.

[root@rhel8 ~]# grubby --set-default-index=1

변경된 커널을 적용하기 위해서는 재부팅 하는 방법밖에 없다. 커널이 설치되면 꼭 재부팅을 해야되는 이유도 이러한 이유 때문이다.

[root@rhel8 ~]# reboot

4. Default Kernel이 올바르게 설정되었는지 확인

재부팅 후 커널을 확인해 보면 이전 버전으로 로드된 걸 확인할 수 있다.

[root@rhel8 ~]# uname -r
4.18.0-477.10.1.el8_8.x86_64

참고

https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/proc_changing-the-default-boot-entry-with-the-grub-2-configuration-file_assembly_building-a-customized-boot-menu

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Scroll to Top