2007년 4월 5일 목요일

부트로더 GRUB 설치에러 복구하기

근래 데스크탑에 SuSE Linux Enterprise Server10, Kubuntu 6.10, Ubuntu 6.10, Fedora Core 6을 설치하려 하였으나 모두 실패하였다. Red Hat Enterprise AS4의 경우 입수한 iso가 깨진 것인지 DVD가 부팅이 되지 않았다.

Kubuntu처럼 설치 도중 진행이 멈춰버리 경우 외에는 항상 아래와 같이 부팅에 문제가 있었다.

GRUB Loading stage2...... 후에 부트메뉴가 아니라

grub> 프롬프트가 나와버린다. (1)

부트로더 설치 중에는 아무런 오류가 발생하지 않았다.

설치 프로세스 중에서 GRUB이 제대로 설치되지 않은 것으로 보인다.


현재 하드와 보드의 건강상태를 확신할 수 없는 상태이고 나름대로 석연치 않은 징조도

이미 오래 전부터 보이고 있는 지라 무턱대고 삽질을 해서 해결을 볼 상황도 아니다.


일단 이를 확인하기 위해서 Rescue 모드로 부팅을 한다.

여기에선 Fedora Core 6의 설치DVD를 이용해 Rescue 모드에 들어갔다.

이미 설치되어 있는 시스템은 /mnt/sysimage에 마운트된다.

chroot /mnt/sysimage명령을 사용하면 이 시스템을 쉘에서 사용할 수 있게 된다.

들여다 보면 /boot/grub/ 하위의 파일들이 정상적으로 존재하지 않을 것이다. 필요한 파일이 존재하지 않다거나 파일 사이즈가 0인 경우 등일 수 있다.

하지만 내 시스템에서는 다 정상으로 보였다. 커널이미지 파일도 정상적인 것 같고 설정파일들도 정상인데.

하드디스크의 부트섹터에 write하는 데에 문제가 있는 것이 아닌지.....

(윈도우스의 복구모드에서 fixmbr을 실행하면 grub은 지워지고 기존의 윈도우스 부트로더로

돌아는 데에는 아무런 문제가 없다.)


이 경우 해볼 수 있는 방법은 다음과 같이,

배포판 CD의 Rescue 모드로 부팅하여, 'grub-install /dev/hda‘ 명령으로 GRUB을 재설치 하는 것이다.

grub-install은 쉘스크립트로 그 대신 다음과 같이 세부명령을 사용할 수도 있다.

/sbin/grub명령으로 GRUB 프롬프트를 얻는다.

grub> root (hd0,2)          # for hda3

grub> setup (hd0)          #  GRUB을 hda의 mbr에 설치

grub> quit


(1). GRUB 프롬프트에서도 다음과 같은 방법을 통해 기존의 커널로 부팅할 수 있다

grub> root (hd0,2)

grub> kernel /boot/vmlinuz-2.x.x-x.x.fc6

grub> boot

댓글 1개:

  1. 잘보았습니다. 내용을 좀 담아갑니다. 출처는 밝힐께요 문제가 된다면 연락주세요~

    답글삭제