Linux VM 부팅 과정에서 GRUB 모드로 변경되어 부팅 불가 시 점검

Prev Next

VPC 환경에서 이용 가능합니다.

GRUB 관련 파일이 손상되거나 삭제되었을 때 Linux OS가 정상 부팅이 되지 않고 GRUB 프롬프트(grub rescue> 또는 grub>)로 진입하고 부팅이 안되는 현상이 발생하게 됩니다. 다양한 원인에 의해서 GRUB 모드로 진입할 수 있으며, 이에 대해서 네이버 클라우드 플랫폼에서 기술 지원을 해드리지 않습니다. GRUB과 관련된 자세한 내용은 Linux OS 벤더에서 제공하는 공식 문서를 참조해 주십시오.

참고

XEN 기반 Rocky Linux 8 VM에서 dnf(yum) update로 패키지를 전체 업데이트한 뒤, 재부팅 시 부팅이 되지 않고 GRUB 프롬프트로 진입하는 현상은 XEN 기반 Rocky Linux 8 업데이트 후 부팅 이슈 점검을 참조해 주십시오.

주의

OS 커널 패치나 패키지 업데이트를 진행하기 전에는 반드시 내서버 이미지를 생성하여 충분히 검증한 후, 실제 서비스에 적용해 주시기 바랍니다.
OS 내 변경에 의해서 발생하는 문제는 고객의 책임 영역이며, 이로 인해 발생한 이슈에 대해서는 기술 지원이 제공되지 않습니다.
이 가이드는 고객 스스로 문제 해결을 위한 참고용 가이드이며, KVM 환경에서 유효합니다.

grub.cfg 파일을 삭제하여 GRUB 모드로 진입

주의

운영 중인 VM에서 동일하게 수행 시 복구 불가로 데이터 손실이 될 수 있으므로, 동일한 테스트는 수행하지 마십시오. 가이드 설명을 위해서 grub 모드로 강제로 진입하기 위한 설명입니다.

RedHat 계열 OS(NAVIX, Rocky Linux, RedHat Enterprise Linux)

  1. 서버에 원격으로 접속해 주십시오.
  2. grub.cfg 파일을 삭제해 주십시오.
    • Rocky Linux 8
    [root@kvm-rockylinux810 ~]# rm /boot/grub2/grub.cfg
    rm: remove regular file '/boot/grub2/grub.cfg'? y
    
    • Rocky Linux 9
    [root@kvm-rockylinux96 ~]# rm /boot/grub2/grub.cfg
    rm: remove regular file '/boot/grub2/grub.cfg'? y
    
  3. VM을 재부팅해 주십시오.
    [root@kvm-rockylinux810 ~]# sync;reboot
    
  4. 서버가 정상적으로 부팅되지 않으므로, MC 콘솔에서 [서버 접속 콘솔] 을 확인해 주십시오.
    linux-grub-mode_rocky-01

Ubuntu OS

  1. 서버에 원격으로 접속해 주십시오.
  2. grub.cfg 파일을 삭제해 주십시오.
    • Ubuntu 22.04
    root@kvm-ubuntu2204:~# rm /boot/grub/grub.cfg
    rm: remove regular file '/boot/grub/grub.cfg'? y
    
    • Ubuntu 24.04
    root@kvm-ubuntu2404:~# rm /boot/grub/grub.cfg
    rm: remove regular file '/boot/grub/grub.cfg'? y
    
  3. VM을 재부팅해 주십시오.
    [root@kvm-ubuntu2204 ~]# sync;reboot
    
  4. 서버가 정상적으로 부팅되지 않으므로, MC 콘솔에서 [서버 접속 콘솔] 을 확인해 주십시오.
    linux-grub-mode_ubuntu-01

GRUB로 진입한 OS를 부팅 시키는 방법

참고

GRUB 모드로 진입했을 때, 모든 케이스에서 부팅을 시킬 수 있는 것은 아닙니다. 아래의 방법으로 부팅이 되지 않는다면, 스냅샷을 통한 복구 방법으로 필요한 데이타를 복사하고 기존 VM은 반납을 해주십시오.

RedHat 계열 OS(NAVIX, Rocky Linux, RedHat Enterprise Linux)

  1. 파일 시스템이 정상적으로 조회되는지 확인해 주십시오.
    linux-grub-mode_rocky-02

    참고

    정상적인 경우에는 /grub2/grub.cfg 파일이 보여야 되나, rm 명령어로 삭제하여서 파일 조회가 되지 않습니다.

  2. 부팅할 커널 버전 및 관련 파일을 점검해 주십시오.

    • Rocky Linux 8
      linux-grub-mode_rocky-03

    • Rocky Linux 9
      linux-grub-mode_rocky-04

  3. 아래의 GRUB 명령어를 입력하여 부팅을 시도해 주십시오.

    참고

    아래 예시에서 사용할 커널은 다음과 같습니다.
    Rocky Linux 8 : 4.18.0-553.51.1.el8_10.x86_64
    Rocky Linux 9 : 5.14.0-570.18.1.el9_6.x86_64
    해당 버전이 아닌 다른 버전을 선택해도 무방합니다.

    • Rocky Linux 8
    grub> set root=(hd0,msdos1)
    grub> linux /vmlinuz-4.18.0-553.51.1.el8_10.x86_64 root=/dev/vda2 ro net.ifnames=0 console=ttyS0,115200n8 console=tty0
    grub> initrd /initramfs-4.18.0-553.51.1.el8_10.x86_64.img
    grub> boot
    
    • Rocky Linux 9
    grub> set root=(hd0,msdos1)
    grub> linux /vmlinuz-5.14.0-570.18.1.el9_6.x86_64 root=/dev/vda2 ro net.ifnames=0 console=ttyS0,115200n8 console=tty0
    grub> initrd /initramfs-5.14.0-570.18.1.el9_6.x86_64.img
    grub> boot
    
  4. 부팅이 정상적으로 완료되면, 서버에 로그인하여 grub.cfg 파일을 다시 만들어 주십시오.

    # grub2-mkconfig -o /etc/grub2.cfg
    

    MC 콘솔에서 [강제 정지] 버튼을 클릭하여 VM을 종료한 뒤, 다시 시작해야 운영 중 상태로 전환됩니다.

  5. 위 방법으로도 부팅되지 않는 경우, 해당 VM의 스냅샷을 생성한 후 다른 VM에 스냅샷을 마운트하여 데이터를 복사해 주십시오.
    서버 복구 불가 시 서버 복구 > 서버 복구 불가 시 스냅샷을 통한 데이타 복구 방법 가이드를 참고해 주십시오.

Ubuntu OS

  1. 파일 시스템이 정상 상태인지 확인해 주십시오.
    linux-grub-mode_ubuntu-02

    참고

    정상적인 경우에는 /boot/grub/grub.cfg 파일이 보여야 되나, rm 명령어로 삭제하여서 파일 조회가 되지 않습니다.

  2. 부팅할 커널 버전 및 관련 파일을 점검해 주십시오.

    • Ubuntu 22.04
      linux-grub-mode_ubuntu-03

    • Ubuntu 24.04
      linux-grub-mode_rocky-04

  3. 아래의 GRUB 명령어를 입력하여 부팅을 시도해 주십시오.

    참고

    아래 예시에서 사용할 커널은 다음과 같습니다.
    Ubuntu 22.04 : 5.15.0-140-generic
    Ubuntu 24.04 : 6.8.0-84-generic
    해당 버전이 아닌 다른 버전을 선택하셔도 무방합니다.

    • Ubuntu 22.04
    grub> set root=(hd0,gpt2)
    grub> linux /boot/vmlinuz-5.15.0-140-generic root=/dev/vda2 ro net.ifnames=0 console=ttyS0,115200n8 console=tty0
    grub> initrd /boot/initrd.img-5.15.0-140-generic
    grub> boot
    
    • Ubuntu 24.04
    grub> set root=(hd0,gpt2)
    grub> linux /boot/vmlinuz-6.8.0-84-generic root=/dev/vda2 ro net.ifnames=0 console=ttyS0,115200n8 console=tty0
    grub> initrd /boot/initrd.img-6.8.0-84-generic
    grub> boot
    
  4. 부팅이 정상적으로 완료되면, 서버에 로그인하여 grub.cfg 파일을 다시 만들어 주십시오.

    # update-grub
    

콘솔에서 [강제 정지] 버튼을 클릭하여 VM을 종료한 뒤, 다시 시작해야 운영 중 상태로 전환됩니다.

  1. 위 방법으로도 부팅되지 않는 경우, 해당 VM의 스냅샷을 생성한 후 다른 VM에 스냅샷을 마운트하여 데이터를 복사해 주십시오.
    서버 복구 불가 시 서버 복구 > 서버 복구 불가 시 스냅샷을 통한 데이타 복구 방법 가이드를 참고해 주십시오.

자주 하는 질문

Q. grub 명령어 수행 과정의 예시에서 net.ifnames=0 console=ttyS0,115200n8 console=tty0 은 꼭 필요한 옵션인가요?

KVM VM의 경우 해당 옵션은 꼭 필요한 boot 옵션입니다. 해당 옵션의 대략적인 설명은 아래와 같습니다.

  • net.ifnames=0 :: Network Interface Device 이름을 eth0로 사용하도록 설정합니다.
  • biosdevname=0 :: 해당 옵션은 OS 버전이 올라가면서 더 이상 사용하지 않는(deprecated) 옵션입니다.
  • console=ttyS0,115200n8 console=tty0 :: 콘솔로 사용할 장치를 지정하는 옵션으로 직렬(Serial) 포트 콘솔을 사용하도록 설정, 해당 옵션이 없으면 정상 부팅의 확인이 어려워 부팅중으로 유지됩니다.

OS 부팅 완료후에 cat /proc/cmdline 명령어로 boot 옵션을 확인할 수 있습니다.
/etc/default/grub 파일에서 GRUB_CMDLINE_LINUX 항목에 해당 옵션이 포함되어 있으며, 이를 제거하지 말아 주십시오.
자세한 내용은 OS 벤더의 문서를 참고 부탁드립니다.