MacBook에 Ubuntu를 설치한 후에 가끔씩 grub2가 문제를 일으켜서 부팅이 되지 않는 문제가 생겼습니다.
제 경우는 apt-get update;apt-get upgrade 명령으로 업그레이드를 할 때, kernel이 업그레이가 된 후에 문제가 발생을 했습니다.
커널이 업그레이드가 되면, grub2 에서 새로 업그레이된 커널로 부팅을 하기 위해서 정보를 업데이트를 하는 데, 그때 에러가 발생해서 grub2가 제대로 갱신이 안되어서 부팅이 불가능하게 되는 문제였습니다.
일단, grub2 > 프롬프트가 뜨면... 아래와 같이 부팅을 해서 들어갑니다.
제 경우에는 첫번째 하드의 4번째 파티션이 우분투의 root 파티션이었습니다.
set root=(hd0,4)
linux /boot/vmlinuz-2.6.35-22-generic root=/dev/sda4
initrd /boot/initrd.img-2.6.35-22-generic
boot
제 경우는, sudo update-grub 을 하면 아래와 같은 문제 발생을 했습니다.
sudo apt-get upgrade 로 인해서 kernel 버젼이 올라가면 자동으로 update-grub이 실행되면서 문제가 발생하는 경우로, 마지막 에러 메세지는 아래와 같습니다.
Found Mac OS X on /dev/sda2
*** glibc detected *** grub-probe: malloc(): memory corruption: 0x000000000225e3c0 ***
======= Backtrace: =========
우분투의 grub2 관련 페이지를 읽어본 후에...
/etc/default/grub 에 아래를 추가함.
# by Young-June Woo
GRUB_DISABLE_OS_PROBER=true
다른 OS에 대한 탐색등을 중지하는 것임. (/etc/grub.d/30_os-prober 의 동작을 중지 시키는 것입니다.)
Grub2 관련해서 참고할 사이트는 아래와 같습니다.
아래는 제 맥북의 파티션 테이블 정보로, Snow Leopard와 Window7 이 설치되어서 3개의 OS로 부팅을 하면서 살고 있습니다.
파일시스템 1K-블럭 사용됨 사용가능 사용% 마운트 됨
/dev/sda4 20157308 7777776 11355584 41% /
none 2002232 296 2001936 1% /dev
none 2011872 468 2011404 1% /dev/shm
none 2011872 440 2011432 1% /var/run
none 2011872 0 2011872 0% /var/lock
none 20157308 7777776 11355584 41% /var/lib/ureadahead/debugfs
/dev/sda5 60475476 33211488 24191988 58% /home
/dev/sda2 163577856 88592816 74985040 55% /media/MacintoshHD
/dev/sda3 61440588 29142676 32297912 48% /media/BOOTCAMP