2023년 8월 18일
주의: 다른 배포판의 경우, 또는 우분투의 경우에도 다른 복구 방법이 있다고 하므로 다른 방법을 시도 하는 것도 추천 한다. 이 글은 개인적인 성공 사례로 기록해 둔다.
Ubuntu 20.04가 설치된 랩탑에 18.04를 설치하는데, 선택의 실수로 GRUP이 부팅 경로를 찾지 못하는 문제가 발생 하였다.
GRUB이 /boot/grub/grub.cfg 파일을 제외한 모든 항목을 찾았을 때는 아래와 같이 GRUB2 터미널이 표시 된다.
GRUB 폴더를 찾을 수 없거나 손상된 경우에는 아래와 같이 GRUB2 터미널이 표시된다. 이 글에서 아래 문제는 다루지 않는다.
먼저 GRUB2에게 부팅 방법을 수동으로 알려주어 부팅을 한 후
부팅 된 우분투에서 GRUB을 복구 하도록 한다.
먼저 set명령으로 현재 상태를 파악 한다:
grub> set
?=0
color_highlight=black/white
color_normal=white/black
default=0
gfxmode=640x480
lang=en_US
local_dir=(hd0,msdos1)/boot/grub/locale
pager=
prefix=(hd0,msdos1)/boot/grub
root=hd0,msdos1
grub> _
/boot/grub/grub.cfg 파일을 찾지 못하는 경우는 prefix가 잘못된 경로를 가르키고 있는 경우이다.
먼저 목록을 확인 한다:
hd0는 물리적 디스크 장치, gpt?는 파일 시스템에 따라 다르며 파티션을 나타내며 장비의 장치와 파티션 및 파일 시스템에 따라 다르게 표시 될 것이다.
어느 장치에 /boot 경로가 있는지 확인 한다. 참고로 이 /boot 경로는 리눅스가 설치되면 / 에 나타나는 /boot 폴더와 일치 한다.
모르겠으면 각 파티션별로 ls 명령으로 확인한다:
만일 /boot 폴더가 있다면 아래처럼 표시 될 것이다:
/boot 폴더에 vmlinuz와 initrd 파일들이 있어야 한다.
/boot 폴더를 찾았으면 root경로를 알려 준다. 이 작업은 디스크에 저장되지 않는다:
linux 명령으로 리눅스 커널 이미지 경로와 최상위 마운트 경로가 있는 /dev 경로를 지정해 준다. 이 작업은 디스크에 저장되지 않는다. 경로가 제대로 지정않는 경우 부팅이 되지 않고 busybox가 실행 될 것이다. 이 경우 다시 시작하여 반복 할 수 있다:
마지막으로 초기 마운트 파일 시스템 이미지 경로를 지정해 준다:
이제 부팅을 시작 한다:
부팅이 성공하면 리눅스에서 터미널을 통해 GRUB를 복구 한다.
리눅스 터미널을 시작 한다:
디스크에 GRUB를 재설치 한다:
다시 부팅을 해본다.
https://blog.neonkid.xyz/225
https://ko.linux-console.net/?p=4119#gsc.tab=0