linux - grub2 config

System/Linux 2014. 2. 15. 12:12


GNU GRUB(대개 GRUB)은 GNU 프로젝트의 부트로더이다. 대부분 운영 체제의 커널을 불러올 수 있으며, 인자를 넘겨 줄 수도 있다. GNU GRUB의 이전 이름은 GRand Unified Bootloader이었고 이는 대통일 이론의 영문 이름의 패러디이다. 대부분 리눅스 배포판에서 부트로더로 사용한다.

대부분 사용되는 GRUB은 "GRUB Legacy"로 분류된다. 현재의 버전은 기능 추가 대신 버그 수정이 이뤄지고 있다. 현재는 GRUB 2 개발에 집중하고 있으며 이는 PUPA 프로젝트의 코드를 기반으로 한다. 2006년 5월 현재까지도 GRUB 2는 안정 버전이 아니다.

기능[편집]

  • 동적으로 설정 가능하다. 심지어 부팅 시간에도 커널의 인자를 조정할 수 있다.
  • Bash와 같은 명령줄 인터페이스가 있다.
  • 사용자 정의 부팅 기능
  • 파일 시스템 직접 접근 기능
  • 다양한 실행 파일 형식 지원
  • 비 멀티부팅 운영 체제 지원
  • 사람이 읽을 수 있는 설정 파일 제공
  • 메뉴 인터페이스
    • 그래픽 메뉴 및 배경 그림도 사용할 수 있다.
    • 비 GUI 인터페이스도 쓸 수 있다.
  • 다양한 파일 시스템 지원
  • 자동으로 압축 해제 지원
  • 지오메트리 정보 독립
  • 모든 RAM을 바이오스와 관계없이 인식
  • LBA 및 네트워크 지원
  • 디스크 없는 시스템 지원


설치[편집]

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

CDDVD 같은 다양한 장치에서의 부팅도 지원한다.

지원하는 파일 시스템[편집]

이 자료는 2005년 현재 자료이다.

지원하는 운영 체제[편집]

GNU GRUB 구성 파일의 예. 이 파일은 사용자가 윈도 XP나 우분투를 불러올 수 있게 한다.

체인 로딩 기능을 쓰면 마이크로소프트 윈도같은 상용 운영 체제도 불러올 수 있다.

GRUB 부팅 과정[편집]

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

바깥 고리[편집]



출처 - http://ko.wikipedia.org/wiki/GRUB








Grub2 OS 추가 설정, Bios 바꿔치기. 우분투

우분투 9.10 부터 추가된 Grub2 의 설정을.. 10.04가 나올 때나 돼서야 할 수 있게 되었다.
방법은 간단한 건데, 1.x 와 전혀 다른 방식이라서 좀 알아먹기가 어려웠었다.

하고자 하는 바는 이렇다.
현재 하드디스크는 2개이다.

첫번째 하드디스크에는 윈도우가 설치되어 있다.
두번째 하드디스크에는 우분투가 설치되어 있다. 
두번째 하드디스크에 Grub 이 설치되어 있고, 바이오스에서 부팅 순서를 바꿔서 둘째 하드디스크로 부팅이 되도록 설정했다.

이렇다면, 윈도우로 부팅하고자 할 때 바이오스의 힘을 빌어서 또 순서를 바꿔줘야 한다. Grub 설정만으로 윈도우 부팅이 가능할 수 있을까? 그것이 이 글의 핵심이다.

참고로, 윈도우7은 아래 방법으로는 안된다. 윈도우7은 바이오스 장난(?)을 인식하지 못하는 것 같다. 안되면.. 안쓴다! 젠장.

..................................................................................
Grub2 관련파일은 아래와 같다. (참고 : https://wiki.ubuntu.com/Grub2)

1. /boot/grub/grub.cfg
설정을 모두 포함하고 있는 파일이며, 읽기전용이다. 즉, 설정을 하기 위해 이 파일을 직접 건드리는 것이 아니다.

2. /etc/default/grub
기본적인 설정을 할 수 있다. 이 파일을 편집하고 명령을 내리면 위 1. 파일에 반영된다.

3. /etc/grub.d/ (폴더)
/etc/default/grub 파일로는 간단한 설정만을 할 수 있고, grub 1.x 때처럼 좀 더 복잡한 설정을 하려면 여기를 건드려줘야 한다.
여기엔 다음과 같은 파일이 들어있다.

  00_header 
  05_debian_theme
  10_linux
  20_memtest86+
  30_os-prober
  40_custom

자세히 보면, 저 파일들이 반영되어 Grub2 초기화면에 나타나는 것이다. 30 파일에 의해 MS 윈도우 같은 것들이 찾아지고 등록이 되는데, 바이오스를 바꿔친 경우는 잘 동작하지 않았다. 따라서, 그런 경우엔 이렇게 한다.

40_custom 파일을 열고 아래와 유사한(?) 내용을 넣는다.
menuentry "Microsoft Windows (on /dev/sda1)" {
set root=(hd1,1)
drivemap -s hd0 hd1
chainloader +1
}

저 명령어는 grub1 때와 좀 달라졌다. set root 내 숫자는 환경에 따라 좀 달라지는데.. 저게 정확하게 뭘 의미하는지는 잘 모르겠다. grub2 초기 화면에서 e 인가 눌러서 설정값을 직접 바꿀 수 있는 화면으로 들어간 후에 직접 고친 후에 그 값을 적용해줘도 될 것 같다.

아무튼, 저렇게 넣어주고나서 마지막 명령을 준다.

sudo update-grub

이러면 저 설정들이 grub.cfg 에 반영되어 다시 작성된다.
grub1 과 달라진 건, 직접 고치는 게 아니라 간접으로 고친다는 것! 따라서 다른 곳에서 변경사항이 발생하여 grub.cfg 파일이 고쳐진다고 해도 저 내용이 다시금 반영되게끔 된다. 좀 더 직관적으로 된 거라 볼 수도 있겠다.

만약, 인위로 추가한 OS가 Grub 목록에서 우분투보다 앞 쪽에 나오길 바란다면, 07_custom 등을 만들고 같은 식으로 하면 된다. 물론, 실행가능하게 만들어야 하고, 40_custom 파일에 나오는 앞쪽 내용도 넣어야 할 것 같다.

원문 : Tip: If the user wants his custom entries to appear at the top of the menu, the file can be named a value less than"10_linux", such as "07_custom". Check that the "DEFAULT" value in /etc/default/grub points to the correct menuentryafter making this change.



출처 - http://nemonein.egloos.com/4722068





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

linux - /var  (0) 2014.02.23
linux - install problem wine in fedora 17  (0) 2014.02.16
linux - rsh set up in fedora  (0) 2013.12.08
linux - rsync  (0) 2013.12.08
linux - 특정 디렉토리 및 파일만 chmod 실행  (0) 2013.11.08
Posted by linuxism
,