Xen 기반 Rocky Linux 8 VM에서 dnf(yum) update로 패키지를 전체 업데이트한 뒤, 재부팅 시 부팅되지 않고 GRUB 프롬프트로 진입하는 현상이 발생합니다.
이 문제는 XEN 기반의 Rocky Linux 8 환경에서만 발생하며, 특히 8.10 버전의 최신 grub2 패키지가 설치된 경우에 나타납니다.
네이버 클라우드 플랫폼에서는 OS 전체 패키지의 업데이트 수행을 권고하지 않습니다.
커널 패치나 패키지 업데이트를 진행하기 전에는 반드시 내 서버 이미지를 생성하여 충분히 검증한 후, 실제 서비스에 적용해 주시기 바랍니다.
OS 업데이트로 인해 발생하는 문제는 고객의 책임 영역이며, 이로 인해 발생한 이슈에 대해서는 기술 지원이 제공되지 않습니다.
본 가이드는 기술 지원을 위한 목적이 아니며, 고객이 스스로 문제를 해결하기 위한 참고용 가이드입니다.
문제 현상 재현 방법
-
서버에 원격으로 접속합니다.
-
OS 전체 패키지를 업데이트합니다.
참고Rocky Linux 8에서 dnf update는 Ubuntu OS의 apt update와 완전히 다른 명령어입니다.
Ubuntu에서 사용하는 apt update는 OS Package Repository의 Meta 정보를 최신 상태로 갱신하는 명령어로, apt 관련 명령어를 실행하기 전에 매번 수행해야 합니다.
dnf(또는 yum) update는 Rocky Linux OS의 전체 패키지를 최신으로 업데이트하는 명령어로, 해당 명령어를 실행하면 이전 버전으로 원복(롤백)이 어렵기 때문에, 반드시 신중하게 실행해야 합니다.[root@xen-rockylinux810 ~]# dnf update Rocky Linux 8 - AppStream 97 MB/s | 18 MB 00:00 Rocky Linux 8 - BaseOS 80 MB/s | 24 MB 00:00 Rocky Linux 8 - Extras 1.6 MB/s | 15 kB 00:00 Dependencies resolved. ================================================================================================================================================================================================== Package Architecture Version Repository Size ================================================================================================================================================================================================== Installing: kernel x86_64 4.18.0-553.53.1.el8_10 baseos 10 M kernel-core x86_64 4.18.0-553.53.1.el8_10 baseos 43 M kernel-devel x86_64 4.18.0-553.53.1.el8_10 baseos 24 M kernel-modules x86_64 4.18.0-553.53.1.el8_10 baseos 36 M kernel-modules-extra x86_64 4.18.0-553.53.1.el8_10 baseos 11 M Upgrading: ... 생략 ... grub2-common noarch 1:2.02-165.el8_10.rocky.0.1 baseos 897 k grub2-pc x86_64 1:2.02-165.el8_10.rocky.0.1 baseos 47 k grub2-pc-modules noarch 1:2.02-165.el8_10.rocky.0.1 baseos 929 k grub2-tools x86_64 1:2.02-165.el8_10.rocky.0.1 baseos 2.0 M grub2-tools-extra x86_64 1:2.02-165.el8_10.rocky.0.1 baseos 1.1 M grub2-tools-minimal x86_64 1:2.02-165.el8_10.rocky.0.1 baseos 215 k ... 이하 생략 ...
-
업데이트 완료 후에 VM을 재부팅합니다.
[root@xen-rockylinux810 ~]# sync;reboot
-
서버가 정상적으로 부팅되지 않는 경우, MC 콘솔에서 서버 접속 콘솔을 확인합니다.
grub으로 빠지는 현상을 완화하는 방법
- OS 전체 패키지를 업데이트(dnf update)하는 명령어를 수행하지 않습니다.
- 만약 grub2 패키지가 재설치되었다면, grub2-install 명령어로 GRUB을 재설치합니다.
[root@xen-rockylinux810 ~]# grub2-install /dev/xvda
이미 grub으로 빠진 상태에서 OS를 부팅시키는 방법
- 파일 시스템이 정상 상태인지 확인합니다.
- 부팅할 커널 버전 및 관련 파일을 점검합니다.
- 아래의 GRUB 명령어를 입력하여 부팅을 시도합니다.참고
아래 예시에서 사용할 커널은 4.18.0-553.53.1.el8_10.x86_64입니다.
부팅이 가능한 커널이라면 해당 버전 대신 다른 버전을 선택해도 무방합니다.grub> set root=(hd0,msdos1) grub> linux /vmlinuz-4.18.0-553.53.1.el8_10.x86_64 root=/dev/xvda2 ro grub> initrd /initramfs-4.18.0-553.53.1.el8_10.x86_64.img grub> boot
- 부팅이 정상적으로 완료되면, 서버에 로그인하여 GRUB 파일을 재설치합니다.
MC 콘솔에서 강제 정지 버튼을 클릭하여 VM을 종료한 뒤, 다시 시작해야 운영중 상태로 전환됩니다.# grub2-install /dev/xvda
- 위 방법으로도 부팅되지 않는 경우, 해당 VM의 스냅샷을 생성한 후, 다른 VM에 스냅샷을 마운트하여 데이터를 복사합니다.
서버 복구 불가 시, 스냅샷을 통한 데이터 복구 방법 가이드를 참조해 주십시오.