콘텐츠로 건너뛰기

RHEL 9.3, Rocky Linux 9.3 이상 grub 수정 및 적용 방법 (BLS 동작 변경)

  • 기준

VMware vSphere를 RHEL 9.4로 마이그레이션해야 하는 일이 생겨 RHEL 9를 설치했다.
RHEL 9.4에서 IOMMU를 사용하기 위해 /etc/default/grub의 GRUB_CMDLINE_LINUX 라인에 intel_iommu=on 매개변수를 추가하고 grub2-mkconfig -o /boot/grub2/grub.cfg를 실행한 뒤 재부팅했다.

부팅이 다 되고, 아래의 명령어를 실행했을 때 여전히 IOMMU가 활성화되지 않았다.
cat /proc/cmdline
grubby –info /boot/vmlinuz-5.14.0-427.22.1.el9_4.x86_64
virt-host-validate

여러 방법을 시도해도 매개변수가 추가되지 않아서 AlmaLinux, Rocky Linux 포럼, RHEL 문서 등을 열심히 뒤졌다.

RHEL 9.2까지는 grub2-mkconfig 명령이 새 grub.cfg 파일을 생성하고 항상 모든 BLS 스니펫의 명령줄 인수를 /etc/default/grub 파일에 있는 GRUB_CMDLINE_LINUX 변수 값으로 덮어썼다.

RHEL 9.3부터 BLS(Boot Loader Specification) 동작이 바뀌었다.
grub2-mkconfig 명령이 더 이상 BLS 스니펫의 커널 명령줄을 기본적으로 GRUB_CMDLINE_LINUX로 덮어쓰지 않는다.
부트로더 메뉴의 각 커널은 해당 BLS 스니펫에서 커널 명령줄을 가져온다.
이 새로운 기본 동작은 GRUB_ENABLE_BLSCFG=true 옵션에 의해 발생한다.
이것 때문에 몇 시간을 삽질했다…

RHEL 9.3 이상에서 grub 수정 및 적용 방법 세 가지를 소개하고자 한다.

1) –update-bls-cmdline 명령어 사용

/etc/default/grub 수정 후 아래 명령어 실행

grub2-mkconfig --update-bls-cmdline -o /boot/grub2/grub.cfg

2) grubby 사용

# 매개변수 추가
grubby --update-kernel=ALL --args="<NEW_PARAMETER>"
(e.g. grubby --update-kernel=ALL --args="intel_iommu=on"

# 매개변수 제거
grubby --update-kernel=ALL --remove-args="<PARAMETER_TO_REMOVE>"
(e.g. grubby --update-kernel=ALL --remove-args="intel_iommu=on"

3) /etc/default/grub 수정 (GRUB_ENABLE_BLSCFG=false)

# /etc/default/grub에 있는 GRUB_ENABLE_BLSCFG를 false로 수정한다.
GRUB_ENABLE_BLSCFG=false

커널 매개변수 확인

cat /proc/cmdline

grubby --info /boot/vmlinuz-커널버전
(e.g. grubby --info /boot/vmlinuz-5.14.0-427.22.1.el9_4.x86_64)

참고 문서, 포럼

https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/9.3_release_notes/new-features#new-features-boot-loader

https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/managing_monitoring_and_updating_the_kernel/configuring-kernel-command-line-parameters_managing-monitoring-and-updating-the-kernel#changing-kernel-command-line-parameters-for-all-boot-entries_configuring-kernel-command-line-parameters

https://forums.almalinux.org/t/changes-to-etc-default-grub-not-taking-effect/3389

https://forums.rockylinux.org/t/grub2-mkconfig-rl9-3-fresh-install-bug/12118

https://forums.rockylinux.org/t/how-do-i-remove-crashkernel-from-cmdline/13346/23?page=2

Join the conversation

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