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

RHEL 8/9에서 GRUB Default Kernel을 확인하고 이전 커널로 변경하는 방법을 단계별로 안내합니다.


GRUB Default Kernel 변경 방법: 커널 선택과 복구 전략

리눅스 시스템에서는 부팅 시 기본적으로 GRUB 설정에 따라 특정 커널이 로드됩니다. 이때 선택되는 커널을 Default Kernel이라고 하며, 이는 리눅스의 핵심 구성요소로서 하드웨어와 소프트웨어를 제어하는 역할을 합니다.

커널에는 지속적으로 보안 패치와 기능 개선이 이루어지기 때문에, 시스템 운영 중 yum update 명령으로 커널을 종종 업데이트 하게됩니다. 이때 기존 커널을 덮어쓰고 업데이트 하는것이 아니라 새로운 커널이 별도로 설치되며, YUM은 최대 3개의 커널을 유지하면서 가장 오래된 커널을 순차적으로 제거합니다. 이는 새로운 커널이 시스템과 호환되지 않을 경우, 이전 커널로 부팅해 문제를 복구할 수 있도록 하기 위함으로 해석됩니다.


환경

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 확인 및 변경 절차

GRUB 설정을 통해 현재 시스템에 설치된 커널 목록을 확인하고, 부팅 시 사용할 기본 커널을 변경할 수 있습니다. 이를 위해 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"
...

위 결과를 보면, 현재 시스템에는 일반 커널 두 개(513, 477)와 시스템 복구용 rescue 커널 하나가 설치되어 있습니다. 일반적으로 rescue 커널은 복구 용 이므로 제외하고 최신 또는 안정적인 커널 중 하나를 선택하게 됩니다.

2. 현재 Default Kernel 조회

다음 명령어로 현재 시스템이 부팅 시 사용하는 기본 커널을 확인할 수 있습니다.

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

출력 결과에 따라 현재 시스템은 최신 버전인 513 커널로 부팅되고 있는 상태입니다.


3. Default Kernel 변경

다른 버전의 커널로 시스템을 부팅하고자 할 경우, grubby 명령을 이용해 기본 부팅 커널을 지정할 수 있습니다. 여기서는 이전 버전인 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. 변경 사항 확인

재부팅이 완료된 후 현재 적용된 커널을 다시 확인합니다.

[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

댓글

이 블로그의 인기 게시물

[Linux] RHEL Local YUM Repository 구성

[Linux Command] sudo command 설명

[Ansible Modules] Fetch module 설명 및 활용