제임스딘딘의
Tech & Life

개발자의 기록 노트/Linux

[Ubuntu 12.04] GRUB : 부트로더 환경설정

제임스-딘딘 2012. 10. 2. 06:14

*본 설명은 Ubuntu 12.04 를 기준으로 합니다.


1. GRUB

GRUB 혹은 GNU GRUB은 GNU 프로젝트의 부트로더이다. 

GRUB의 이전 이름은 GRand Unified Bootloader 이었으며, 이는 대통일 이론[각주:1]의 영문 이름을 패러디한 것 이라고 한다.

 대부분 리눅스 배포판에서 부트로더로 사용한다.

 GRUB은 LILO와 달리 설정 변경 후에 재설치가 필요 없다. GRUB은 스테이지 단위로 부팅 과정이 구성되어 있으며, GRUB의 스테이지 1은 MBR에 존재한다. GRUB 설정 파일은 대개 스테이지 2에서 불리며 이들은 GRUB이 읽을 수 있는 파티션에 존재한다. 만약 설정 파일이 없으면 명령줄로 간다. 이들 설정 파일은 /boot/grub에 있으며 배포판마다 파일 이름이 다르다. 이러한 구조 때문에 GRUB 설정 파일이 있던 파티션만 지웠다면 평소 보던 메뉴가 사라지므로, 초보자들은 부팅이 되지 않는다는 것으로 착각할 수 있다


  • GRUB 부팅과정

  1. BIOS가 부팅 장치를 찾고 MBR을 읽어온다.
  2. MBR에 GRUB 스테이지 1이 있으며, 이는 스테이지 1.5나 2를 불러온다.
  3. 스테이지 1.5는 MBR 직후 30 킬로바이트 영역에 저장되며 이는 스테이지 2를 불러온다.
  4. GRUB 스테이지 2는 부트 메뉴나 명령 프롬프트를 보여 준다.
  5. 그 이후 기본값 커널이나 사용자가 선택한 커널을 불러 온다.



2. GRUB 환경설정

GRUB 부트로더의 환경설정을 위한 파일의 이름은 'grub' 이다.

이 파일은 /etc/default 에 존재한다. (12.04 LTS 기준)


sudo vi /etc/default/grub (관리자권한으로 실행)




vi로 환경설정 파일을 열 경우 이와 유사한 내용일 것이다.

grub 환경설정시 어떻게 해야 하는지 맨 처음 4줄의 주석이 중요한 내용을 가지고 있으니 꼭 숙지해야 한다.


설정값에 대해 간단히 설명을 하겠다.


● GRUB_DEFAULT

GRUB메뉴 진입시 기본값. (기본값은 0으로 되어있다)

0부터 시작 한 숫자 값을 줄 수 있다.

혹은 메뉴 항목의 이름을 값으로 줄 수 있다.

 menuentry 'Example GNU/Linux distribution' --class gnu-linux {

  ...

 } 

 로 되어있다면, 

GRUB=DEFAULT='Example GNU/Linux distribution' 

이렇게 줄 수 있다는 뜻


혹은 특별한 값으로 'saved' 라는 문자열 값을 줄 수 있다.

이 경우 기본 메뉴 진입점은 GRUB_SAVEDEFAULT, grub-set-default 혹은 grub-reboot 에 의해 저장될 수 있다.



● GRUB_TIMEOUT

GRUB 메뉴가 화면에 표시되는 시간값

0 이면 즉시부팅, 

-1 이면 무한 대기



하나하나 다 설명하기는 힘들고 2개만 대표적으로 설명했다.

자세한 매뉴얼을 보려면 터미널에서 다음 명령을 수행하면 된다.

info -f grub -n 'Simple configuration'


  1. 양자장론에서, 대통일 이론(大統一理論, grand unified theory, GUT)은 표준 모형을 확장하여 강력과 전약력을 통합하는 여러 이론 중 하나를 일컫는다. 아직까지 대통일 이론 가운데 실험적으로 검증된 것은 없다. [본문으로]