Grub-pc

한국 데비안 사용자 모임
둘러보기로 가기 검색하러 가기
제목 : GRUB-PC 관리하기
작성자 : HotPotato
난이도 : 중급
라이선스 : GFDL
처음 작성일자 : 2009년 9월 12일?

GRUB 세대 교체

설정정보를 /boot/grub/menu.lst 에 저장하는 GRUB 버전을 버전 1, /boot/grub/grub.cfg 에 저장하는 버전을 버전 2로 부르기로 한다.

부팅관리자의 원조격인 LILO 를 밀어내고 GRUB (버전 1)로 넘어온 것이 엊그제 같은데 이제는 새로 태어난 GRUB 2 (버전 2)가 그 자리를 차지할 때가 서서히 다가오고 있다.

(버전1 패키지명이 grub-legacy 로 바뀌었고 이제 grub 패키지명은 dummy 패키지로서 grub-pc 를 가리키게 되었다.)


GRUB 2 는 기본적으로 컬러 이미지 바탕화면을 지원하며, 그 외에도 다양한 기능이 모듈화 되었다.

GRUB 2에서 i386 (x86_64 포함?) 버전만 따로 추출한 것이 grub-pc 인 듯하다.

버전 1과 호환성 여부

버전 2는 버전 1과 설정파일 문법 자체가 다르므로 호환되지 않는다.

문제점 & 해결방법

문제1

grub-pc 는 기본적으로 리눅스 커널만 검색하도록 되어 있어서 MS Windows 류의 독점 소프트웨어는 감지하지 못한다. 즉, grub-pc 를 설치하고 시스템을 재부팅하면 윈도우즈 부팅메뉴가 OS 선택화면에 나타나지 않는다.

더구나 설정파일이 버전1과 비호환이고 아직 참고할 수 있는 문서가 많지 않아서 수작업으로 편집하기 힘들다.

해결방법

버전 2가 자체적으로 OS 정보를 검색할 수 없지만 다행히도 이를 대행해주는 os-prober 패키지가 존재한다.

os-prober 를 설치하고 update-grub 를 실행하면 상용OS 정보가 자동적으로 추가 된다.

sudo apt-get install os-prober
sudo update-grub

참고

  • grub.cfg 는 데비안 시스템에서 스크립트에 의해 자동갱신되는 파일이므로 유저가 임의로 편집할 수 없다.
  • 마치 cron, rc 데몬처럼 (데비안에서는) /etc/grub.d 에서 "순번_ "+"제목" 형식을 가진 스크립트가 존재한다.
  • 10 부터 30 까지는 시스템에서 직접 관리하는 스크립트이며 40 부터(41,42,43,...)는 유저가 조작할 수 있는 순번이다.
  • timeout 과 같이 부동적인 설정은 /etc/default/grub 에서 편집하면 된다. 편집이 끝나면 "update-grub" 을 실행해서 grub.cfg 를 갱신!
'#' 주석을 해제하고 편집!
GRUB_DEFAULT=0
GRUB_TIMEOUT=30
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
#GRUB_TERMINAL=console
#GRUB_GFXMODE=640x480
#GRUB_DISABLE_LINUX_UUID=true
#GRUB_DISABLE_LINUX_RECOVERY="true"