본문 바로가기

Programming/Linux

[Ubuntu] Grub2 복구


Ubuntu는 어느시점에선가 부터 grub가 아닌 grub2가 사용된다.


grub설정파일은 /boot/grub.cfg이고 해당 파일은 수정하지 않기를 강력히 권고하고 있다.


/etc/default/grub 파일을 수정하여 update-grub명령을 통해 변경된 내용을 grub.cfg에 적용 되도록 권고한다.




나는 그 경고를 무시하고 /boot/grub/grub.cfg파일을 수정하여 부팅 순서와 부팅 시간을 변경 하던 중 파일을 날렸다..


마침 그때에는 update-grub를 사용할 수 없는 CentOS로 작업을 하던 상태이다. 진즉에 백업을 했어야 되는데...


암튼 grub2 복구를 찾아보던 중 올바른 참조 Site를 찾게되어 문제를 해결 할 수 있게 되었다.





아래 사항은 /boot/grub/grub.cfg파일이 손상되어 복구하는 방법을 제공한다.

작업 환경은 Windows7 - CentOS - Ubuntu 이 세가지 OS가 설치되었고 Ubuntu의 grub2이 BootLoader로 사용된다.


1. Ubuntu Desktop으로 Live-CD Booting을 진행한다.


2. sudo fdisk -l 을 통해 파티션 상황을 Check


3. 파티션에서 Ubuntu의 /가 설치된 파티션을 /mnt에 mount한다.        sudo mount /dev/sda2 /mnt

    boot파티션을 다른 파티션으로 나누었다면 /mnt에 같이 mount        sudo mount /dev/sda1 /mnt/boot

( 기타 다른 파티션들도 위처럼 /mnt를 /로 보고 같이 mount한다. grub2의 주인인 Ubuntu만을 Mount한다. )


4. LiveCD에서 HDD로 dev 드라이버를 바인딩한다.        sudo mount --bind /dev /mnt/dev

    LiveCD에서 HDD로 proc 드라이버를 바인딩한다.      sudo mount --bind /proc /mnt/proc


5. grub.cfg파일을 만들기 위해 chroot를 사용하여 최상위 Root를 변경한다.        sudo chroot /mnt


6. grub.cfg를 생성한다.             sudo update-grub

( 위 과정에서 에러가 발생한다. Ubuntu 외의 OS는 Grub2가 인식하지 못한다. 일단 Local Ubuntu로 Boot )


7. 재부팅을 하면 Ubuntu는 grub2에서 잡아주게 된다. 일단 Ubuntu로 Boot 후 sudo  update-grub 를 통해 

완벽한 /boot/grub/grub.cfg파일을 복구한다.


교훈 : 중요하다고 생각되는 파일은 제발 백업좀 해놓자.....



참조 : http://blog.foxb.kr/89

http://ubuntu.or.kr/viewtopic.php?p=59221

http://sncap.tistory.com/218

http://tigrisian.tistory.com/34


'Programming > Linux' 카테고리의 다른 글

[Mount] ntfs usb Mount  (0) 2012.07.02
[FTP] FTP 부가설명  (0) 2012.06.30
[FTP] vsftpd source Install - 한글패치  (0) 2012.06.28
[FTP] vsftp 설정 - yum install 기준  (0) 2012.06.23
[Setup] Multi Operating System #4  (0) 2012.06.18