본문 바로가기

컴퓨터

grub rescue 해결법

윈도 10 레드스톤 업데이트 하다가 재부팅되더니 grub rescue가 떴다...


아마도 업데이트 도중에 MBR을 건드리는데 그게 문제가 된 듯 싶다.


예전에 잘 모를때는 grub rescue 뜨면 무조건 윈도/리눅스 부팅 usb 만들어서 복구했는데, 조금만 검색해보니 그럴 필요가 없었다!


grub rescue> ls

(hd0)    (hd0,msdos4)    (hd0,msdos3)    (hd0,msdos2)    (hd0,msdos1)

노트북에 윈도10, archlinux가 설치되어 있었는데, ls로 접근해보니 아마도 (hd0,msdos4)가 리눅스가 설치되어 있는 파티션인 듯 싶었다.


grub rescue> ls (hd0,msdos1)

error: unknown filesystem


grub rescue> ls (hd0,msdos4)

(hd0,msdos4): filesystem is ext2


다음과 같은 방법으로 임시로 grub을 살릴 수 있다.

grub rescue> set root=(hd0,msdos4)

grub rescue> set prefix=(hd0,msdos4)/boot/grub

grub rescue> insmod /boot/grub/i386-pc/normal.mod

grub rescue> normal


아마도, 리눅스 파일시스템에 grub을 설치하면 normal.mod라는 모듈이 자동으로 저장되는데, 이거를 수동으로 읽어들이는 것 같다.(사실 뭔지 잘 모르겠다)


archlinux는 i386-pc 폴더에 들어가야 하는데, 우분투 같은 경우는 grub 디렉토리 안에 normal.mod가 들어있다는 것 같다.


이제 재부팅이 되고 grub이 동작하지만 이건 임시적인 해결책으로, 나중에 재부팅하면 위의 과정을 다시 반복해야한다.

해결하려면 grub을 다시 설치해 줘야 한다.


오랜만에 리눅스로 부팅해서 pacman 동기화? 부터하고 진행했다.

sudo pacman -Syu

...

sudo pacman -S grub

sudo grub-install --target=i386-pc /dev/sda

sudo grub-mkconfig -o /boot/grub/grub.cfg

그러면 windows10이 설치되어 있는걸 감지했다고 알림이 뜬다.

(os-prober가 설치되어 있다면!)



참고.

https://wiki.archlinux.org/index.php/GRUB


끝!