[해결] 부팅 시 grub 메뉴 리스트가 사라졌습니다

부팅할 때 나오는 GRUB 메뉴 리스트가 갑자기 사라졌습니다. 원래는 여기서 우분투와 윈도XP를 선택할 수 있는 화면이 떴는데 지금은 커서만 깜박이는 커맨드 라인 입력 상태로 들어갑니다. 아래처럼요.

grub>_

그래서 root, kernel, initrd, boot 명령어를 차례로 입력해서 수동(?)으로 부팅시켰습니다.

아무것도 건드린 것이 없는데 갑자기 왜 이런 현상이 일어나는 걸까요? 그리고 이를 고치려면 어떻게 해야 할까요?

/boot/grub/menu.lst 파일 내용은, 확인해 보니 문제 없이 부팅되던 어제와 변함이 없었습니다. hiddenmenu 옵션은 주지 않았습니다. 우분투 9.04와 윈도XP 멀티 부팅으로 사용 중입니다.

라이브 시디로 부팅해서 루트 권한 주고 grub 들어가서 find /boot/grub/stage1 했더니 (hd1,0)이 나오길래 아래와 같이 grub 재설치를 해 보았습니다.

root (hd1,0)
setup (hd1)

하지만 마찬가지였습니다.

root (hd1,0) 이거 보아 하드가 2개 이상인거 같으니 부팅 하드를 Bios에서 바꾸어 보시기 바랍니다.

네, 하드 두 개 쓰고 있습니다. 그런데 바이오스 설정이 잘못되었던 건 아니구요. 제가 질문하면서 오타를 쳤는데 그것 때문에 그렇게 대답해 주신 것 같습니다. 죄송합니다. :oops: 실제로 설치할 때는 setup(hd1)으로 입력했는데 질문 글에는 setup(hd0)라고 적었네요. 수정했습니다.

그나저나 오늘 켜 보니 갑자기 또 이상없이 부팅되는군요. 저는 아무것도 한 게 없는데요. 그러니 더 불안합니다. 하드웨어에 이상이 온 건지도 모르겠습니다. 6년 정도 썼습니다. 지금 쓰고 있는 윈도XP 설치한 것도 6년 전인데, 그러다 보니 파일 시스템을 NTFS로 하지 않고 FAT32로 했습니다. 당시에 과거 프로그램들 호환성을 위해서는 그렇게 하는 게 좋다는 이야기를 들어서요. FAT32, 이거하고는 상관 없는 일이겠죠?

뱀발. 라이브 시디로 부팅을 하면 한글을 쓸 수 없어 아예 언어를 영어로 설정해 놓고 썼는데요. 시스템 서체가 상당히 예쁘네요. :shock: 한국어로 설정했을 때 나오는 영어 서체는 미웠는데 말이죠.

[quote="saysix":aty1j2za]
grub>_

그래서 root, kernel, initrd, boot 명령어를 차례로 입력해서 수동(?)으로 부팅시켰습니다.[/quote:aty1j2za]
커서가 깜박이는 grub 프롬프트 상에서 아래와 같이 입력하면 바로 메뉴를 불러올 수 있더군요.

configfile /boot/grub/menu.lst

근본적인 해결책은 아니지만 같은 문제가 또 발생했을 때 root, kernel… 이런 명령어들을 옵션과 함께 일일이 입력하지 않아도 되는, 좀 더 편한 부팅 방법입니다. 타이핑해야 할 글자 수가 훨씬 줄어드니 좋군요. =.=

부팅할 때 가끔 저 설정 파일을 불러오지 못해서 메뉴 화면을 열지 못하고 grub 프롬프트로 떨어지는 것 같은데 이유를 모르겠습니다.

또다시 부팅 메뉴가 뜨지 않고 grub 프롬프트로 떨어지기 시작합니다. 아무리 다시 부팅해 봐도 마찬가지네요.

이제는 아래 명령도 소용 없군요.

[code:hxykgxrc]configfile /boot/grub/menu.lst[/code:hxykgxrc]

그렇다고 menu.lst 파일이 존재하지 않거나 읽을 수 없는 상태는 아닙니다.
cat /boot/grub/menu.lst 하면 파일 내용을 볼 수는 있거든요.

하드 디스크 두 개를 쓰고 있는데 그 중 첫 번째는 윈도XP, 두 번째에는 우분투를 설치했습니다. 메인보드는 Asus P4P800-E Deluxe 입니다.

grub 프롬프트에서 아래와 같이 입력하면 부팅이 되긴 합니다.

[code:hxykgxrc]root (hd1,0)
kernel /boot/vmlinuz-2.6.28-15-generic root=/dev/sdb1 ro
initrd /boot/initrd.img-2.6.28-15-generic
boot[/code:hxykgxrc]

아래는 menu.lst 내용입니다. 길이가 길어져서 #으로 시작하는 주석 행은 빼고 적었습니다.

[code:hxykgxrc]default 4
timeout 5

title Ubuntu 9.04, kernel 2.6.28-15-generic
uuid bfb67dbd-c110-4bcd-890f-764df95ba2e2
kernel /boot/vmlinuz-2.6.28-15-generic root=UUID=bfb67dbd-c110-4bcd-890f-764df95ba2e2 ro quiet splash
initrd /boot/initrd.img-2.6.28-15-generic
quiet

title Ubuntu 9.04, kernel 2.6.28-15-generic (recovery mode)
uuid bfb67dbd-c110-4bcd-890f-764df95ba2e2
kernel /boot/vmlinuz-2.6.28-15-generic root=UUID=bfb67dbd-c110-4bcd-890f-764df95ba2e2 ro single
initrd /boot/initrd.img-2.6.28-15-generic

title Ubuntu 9.04, memtest86+
uuid bfb67dbd-c110-4bcd-890f-764df95ba2e2
kernel /boot/memtest86+.bin
quiet

title Other operating systems:
root

title Microsoft Windows XP
root (hd0,0)
savedefault
makeactive
chainloader +1[/code:hxykgxrc]

부팅할 때 왜 메뉴를 불러오지 못하는 걸까요? grub 재설치도 소용 없군요.

/boot/grub 안의 내용을 모두 지우고 새로 채워 주는 아래 명령을 써서 해결했습니다.

[code:8rdevjso]sudo grub-install /dev/sdb[/code:8rdevjso]

이때 설정 파일인 menu.lst는 따로 옮겨 두었다가 다시 복사해 넣었습니다. 그렇게 하지 않으면 부팅 메뉴와 옵션까지도 모추 초기화될 테니까요.

이후 sudo su - 명령으로 루트 변신하여 grub 을 불러 오고 그 안에서 setup을 실행했습니다. 그랬더니 모든 게 정상으로 돌아왔습니다.

[code:8rdevjso]sudo su -
grub
root (hd1,0)
setup (hd1)
quit
exit[/code:8rdevjso]

일단 눈앞의 문제는 해결되었지만 왜 이런 현상이 자꾸 일어나는지 모르겠습니다. 하드웨어 궁합 문제일까요?

grub 이해와 문제 해결에 많은 도움을 받았던 페이지를 소개해 둡니다.

http://members.iinet.net.au/~herman546/p15.html

[quote="saysix":2mlmv36k]grub 이해와 문제 해결에 많은 도움을 받았던 페이지를 소개해 둡니다.

http://members.iinet.net.au/~herman546/p15.html[/quote:2mlmv36k]

도움 받았던 페이지가 재미있네요.
죽 훑어보니 grub에 대해 집중적으로 나와 있는 것 같군요.
궁금했던 부분이 많이 해소될 것 같습니다.