여러가지 이유로 MBR이 제거되는 경우가 있는데(저같은 경우는 윈도우와 리눅스를 같이 사용하다 윈도우를 재설치하여 MBR이 제거됨)
다음 단계를 거치면 MBR을 복구할 수 있다.
1단계 : 리눅스 설치 CD 1번(grub를 지원하는 어느 배포판이든 가능(?))을 가지고 복구 모드로 부팅을 한다. (전 우분투 6.10이 설치되어 있었는데 Fedora 6 시디를 사용)
boot: linux rescue
2단계 : 부팅을 한후 복구 모드로 들어가서 다음 명령어를 사용하여 실행한다.
sh-3.1#: grub
3단계 :grub 실행후 grub shell에서 다음 명령어를 사용하여 실행한다.
grub> root (hd0,2)
Filesystem type is ext2fs, partition type 0x83
위 명령어를 실행하였을 경우 Filesystem ... 라고 나오면 성공한것이고 그렇지 않으면
Filesystem type unknown, partition type 0x82 또는 Error 23: Error while parsing number
메시지가 출력된다.
참고 : 위의 명령어중 hd0,2 라는 것이 있는데 이것은 사용자의 파티션에 따라서 모두 다릅니다. 따라서 사용자의 하드디스크의 수및 파티션수에 따라 입력을 하여야 합니다.
저는 하드디스크 하나(hd0)에 윈도우 파티션이 2개 그외 리눅스 파티션을 이용하고 있었습니다. 만약 2개 하드디스크를 사용하고 있는데 두번째 하드디스크에 리눅스를 설치하였다면 hd1 입니다. 하드디스크의 수는 0번부터 시작합니다.
그리고 2라는 것은 /boot (만약 /boot 파티션을 별도로 잡지 않고 / 파티션에 설치하였을 경우는 / )가 설치되어 있는 파티션 번호입니다. 이것은 /dev/sda3에 설치되어 있었기 때문에 이 번호 또한 0번부터 시작하므로 2가 됩니다.
/dev/sda1 => 윈도우 C 드라이브
/dev/sda2 => 윈도우 D 드라이브
/dev/sda3 => 리눅스 /boot
/dev/sda4 => 리눅스 /
/dev/sda5 => 리눅스 swap
4단계: MBR에 GRUB를 설치한다.(대부분의 경우 첫번째 하드디스크입니다.)
grub> setup (hd0)
Checking if "/boot/grub/stage1" exists ... no
Checking if "/grub/stage1" exists ... yes
Checing if "/grub/stage2" exists ... yes
Checking if "/grub/e2fs_stage1_5" exists ... yes
Running "embed /grub/e2fs_stage1_5 )hd0)" .. . 15 sectors are embedded.
Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,2)/grub/stage2 /grub/grub.conf"... succeeded.
Done.
5단계: grub shell에서 빠져나오고 리부팅을 시켜준다.
grub>quit
sh-3.1# reboot ( 또는 ctrl + alt + del 키를 누른다.)
혹시라도 리부팅후 바로 부팅매니저가 나오지 않고 grub shell로 빠질경우 3,4단계를 다시한번 해준다. 그리고 리부팅하면 정상적으로 될 것이다.
참고사항 #1
grub 상태에서 윈도우로 부팅하려면 (C 드라이브에 윈도가 깔려있다고 할 경우) 다음 명령어를 실행하면 된다.
grub>root (hd0,0)
grub>chainloader +1
grub>boot
grub 상태에서 리눅스를 부팅하려면
grub>root(hd0,2) //여기서 2는 리눅스가 설치된 파티션을 말한다.
grub>kernel /커널파일이름 ro root=/dev/sda3 ro quiet splash (Ubuntu)
grub>kernel /커널파일이름 ro root=/dev/sda3 ro rhgb quiet (RedHat 계열)
grub>boot
=> 커널파일이름 : vmlinuz-2.6.x 와 같은 형식으로 되어 있다. (/boot/grub/menu.lst 참고)
참고 사항 #2
윈도우와 리눅스를 같이 사용하다 리눅스를 삭제한후에 혹시라도 부팅할때 부트 매니저 lilo, grub 등이 남아 있을 경우는 아래 방법으로
하드 디스크(hard disk)의 MBR 영역을 초기화 해주면 된다.
첫번째 방법 : 응급복구 디스크를 이용하여(fdsik 파일포함) 도스(DOS)로 부팅해서 명령 프롬프트(command prompt)에서 fdisk /mbr 실행
두번째 방법 : 윈도xp CD로 부팅해서 복구 모드(recovery mode)로 들어간 후 명령 프롬프트(command prompt)에서 fixmbr 실행
'Embedded Lab > linux, x86' 카테고리의 다른 글
[환경변수 삭제] (0) | 2013.03.29 |
---|---|
[리눅스 압축명령] (0) | 2013.03.28 |
[우분투에서 GRUB메뉴가 안보일 때] (0) | 2013.03.28 |
[에뮬레이터와 시뮬레이터의 차이] (0) | 2013.03.24 |
[어셈블리와 어셈블러] (0) | 2013.03.17 |