콘텐츠로 건너뛰기

grub rescue 해결법

* 이 글은 기존에 티스토리 블로그에 작성했던 포스트(2016.10.7)를 옮겨온 것이다.

윈도 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

 

끝.

 

Share this post!
태그:

답글 남기기

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

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.