[출처]( http://open.asianux.co.kr/openproject/mapping.php?bbsId=TIPNTECH&action=View&doc_number=65&pageNo )
리눅스의 부트로더로 가장 많이 사용되는 것은 Grub 부트매니저 이다. 오늘은 이 Grub의 기능들에 대해 하나하나 알아보도록 하자.
[1] Grub 설정파일 해부
리눅스가 설치된 파티션에서 /boot/grub/grub.conf 또는 /boot/grub/menu.lst 설정파일로서 그 안에는 다양한 설정 내용을 담고 있다.
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,5)
# kernel /boot/vmlinuz-version ro root=/dev/hda6
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,5)/boot/grub/splash.xpm.gz
hiddenmenu
title Haansoft Linux (2.6.19-5hs)
savedefault
root (hd0,5)
kernel /boot/vmlinuz-2.6.19-5hs ro root=LABEL=/ vga=0x314 splash=silent
initrd /boot/initrd-2.6.19-5hs.img
title Other
savedefault
rootnoverify (hd0,0)
chainloader +1
■ 라인 앞 부분에 샵(#)이 붙어 있는 곳은 주석이다.
즉 컴퓨터 상에서는 인식되지 않고 일반적인 설명이나 도움말 등을 적어 놓은 부분이다.
■ boot : Grub가 설치되어 있는 파티션의 디바이스명이다.
리눅스 설치시 Grub을 어디에 설치할지를 묻는 항목이 나왔을 것이다. 이때 어디에 지정하였는가? MBR에 설치한다고 지정하였다면 위의 예제와 같이 boot 항목이 /dev/hda로 나와 있을 것이다. 만약 hda5에 설치했다면 /dev/hda5로 나왔을 것이다.
■ default : 여러개의 운영체제 중 어느 것으로 부팅할지를 기본 세팅해 두는 곳이다.
부팅시 기본적으로 부팅할 운영체제를 선택해 둠으로써 일정 시간이 경과되면 별도의 조작을 하지 않더라도 자동으로 부팅할 수 있게 되는 것이다. 주의할 것은 숫자 0부터 시작한다는 것이다. 아래에 있는 { title ... } 로 시작되는 3라인이 하나의 운영체제를 뜻하므로 이들 중 몇번째 운영체제를 기본으로 선택한다고 보면 된다.
위의 예제에서는 default 값이 "0" 이므로 가장 첫번째 선언된 운영체제로 부팅될 것이다.
추가로 saved를 사용할 수도 있다. 이 옵션은 가장 마지막으로 부팅된 OS를 기억하고 있다가 다음번에 기본 부팅값으로 사용하겠다는 의미다. 이러한 방식을 사용하기 위해서는 추가적인 작업이 필요한데, 각 title마다 "savedefault"란 옵션을 줘야한다.
■ timeout : 부트로더가 동작한 후 몇초 동안 사용자의 입력을 기다려줄 것인지를 설정하는 부분이다. 보통 부트로더가 가동된 뒤 사용자가 별도의 입력을 하지 않으면 기본으로 설정되어 있는 운영체제로 바로 부팅해 버린다. (위의 default에 명시된 운영체제로...)
그러므로 이곳에서 기다리는 시간을 설정하는데 기본이 5초이므로 너무 짧다고 생각되는 사람들은 시간을 조금 더 주어도 되고, 시간 세팅을 하지 않고 싶다면 "0"이라고 입력하라. "0" 값은 시간 제한을 하지 않겠다는 뜻이므로 별도 입력을 하지 않는한 다음으로 넘어가지 않고 계속 사용자의 입력을 기다리게 된다.
■ splashimage : 부트로더 화면이 나타났을때 배경으로 사용할 이미지를 지정하는 부분이다. 오픈에디션의 경우 배경에 푸른색 화면에 "오픈에디션"이라는 글자가 나타날 것이다. 이 것이 배경스플래쉬 이미지로 보통 리눅스 운영체제 마다 고유한 이미지들을 가지고 있다. 만약 다른 이미지를 배경에 나타나도록 변경하고 싶다면 splashimage 항목의 경로값을 다른 것으로 변경해 주자. 여기서 주의할 점은 *.xpm.gz 포맷을 사용해야 한다는 것이고 지원가능한 색상수에 제한이 있다는 것이다. 이미지 포맷은 Gimp 프로그램에서 grub-image.scm 플러그인을 통해 제작이 가능하며, 사용가능한 색상수에 제한이 있어 이미지들이 조금은 거칠게 나오게 됨을 유의하자. 그러므로 가급적 단색으로 깔끔하게 처리된 이미지들을 사용하는 것이 좋으며, www.gnome-look.org 등과 같은 사이트에서 "grub"으로 검색하면 *.xpm.gz 포맷으로된 샘플 이미지들을 많이 확인할 수 있다.
■ hiddenmenu : 커널 2.6대로 들어오면서 Grub 화면이 2개로 구성되었다. 예전에는 부팅 가능한 운영체제를 모두 보여주는 화면이 나타났었으나, 이제는 기본으로 선택되어 있는 운영체제의 제목만을 간단하게 보여주는 화면이 나타나서 사용자의 별도 입력이 없으면 바로 해당 운영체제로 부팅해 버리는 구조이다.
(자세한 메뉴의 내용을 숨기고 간단하게 보여주는 것이므로 hiddenmenu라고 불리운다.)
물론 이 화면이 나타났을때 아무키나 누르면 종전의 기본 화면이 나타나서 사용자의 운영체제 선택을 기다리므로 크게 달라진건 없다 하겠지만, 사용자에 따라서는 이러한 hiddenmenu가 불편할 수도 있으므로, 이 경우 위의 hiddenmenu 앞에 샵(#)을 달아 주석처리 해주면 다음번 부팅부터는 hiddenmenu가 뜨지 않고, 운영체제를 선택할 수 있는 기본 화면이 바로 뜬다.
■ title ... : 부팅할 운영체제들을 설정하는 곳이다.
설정하는 방법은 크게 2가지가 있다. 부팅에 필요한 커널 이미지와 커널 파라미터, 파티션 위치 등을 직접 기술해 주는 방법이 있고, 부팅할 운영체제가 설치된 파티션에 별도의 부트로더가 설치되어 있는 경우에 해당 부트로더를 불러오는 형태로 기술하는 방법이 있다. 일반적으로 Windows 설치 후 Linux를 설치하였다면 위의 예제와 같이, Linux는 직접 기술해서 부팅하는 형태일 것이고, Windows는 해당 부트로더를 다시 불러오는 형태로 되어 있을 것이다.
[직접 기술하는 방법]
① title : 부팅할 운영체제의 제목을 표시하는 부분이다. 원하는 형태로 이름을 지정할 수 있다.
② savedefault : default 옵션값이 saved인 경우 그 설정을 저장하기 위한 옵션이다.
③ root : 부팅할 운영체제가 설치되어 있는 파티션을 지정한다.
(hd0,5)는 hda의 6번째 파티션을 뜻한다. (`0`부터 시작하므로...)
④ kernel : 부팅에 필요한 커널 이미지와 루트(/) 경로 및 커널 파라미터를 설정한다.
⑤ initrd : init 초기화에 필요한 이미지 경로를 지정한다.
[다른 부트로더 로딩 방법]
① title : 부팅할 운영체제의 제목 (Windows 등과 같이 이름을 변경해서 사용하면 된다.)
② rootnoverify : 부팅할 운영체제의 부트로더가 저장되어 있는 파티션을 지정한다.
③ chainloader +1 : chains-loader 형태로 부트로더를 불러온다.
※ 하나의 시스템에 여러개의 리눅스를 설치할때, 위와 같이 부트로더를 불러오는 방식을 사용해서 여러 리눅스를 Grub에 등록할 수도 있을 것이다. 즉 리눅스 설치시 메인이 되는 하나의 리눅스는 MBR에 설치하고, 나머지 리눅스들은 해당 리눅스가 설치되는 각각의 파티션 앞부분에 grub을 설치하여, 메인이 되는 리눅스에서 다른 리눅스의 부트로더를 불러오게끔 설정하는 것이다.
[2] Grub 복구 방법
리눅스 설치 후 다시 Windows를 설치한다거나 하는 경우, 리눅스의 부트로더인 Grub가 지워지는 경우가 있다. 이 경우 설치CD를 이용하여 지워진 부트로더를 다시 복구하는 방법이 있는데 아래의 2가지로 요약해 볼 수 있다.
■ 설치CD를 이용하여 리눅스로 부팅한 후 grub 복구 방법
① 설치에 사용했던 CD (1번CD)를 넣고 boot: 프롬프트가 나타나면,
아래와 같이 리눅스가 설치된 파티션을 입력해준다.
boot: linux root=/dev/hda5 initrd=
※ hda5에 리눅스가 설치되어 있다는 가정하에서의 설명이다.
② 리눅스로 부팅이 완료되면 아래의 명령으로 grub를 복구한다.
# grub-install /dev/hda
※ 부트로더를 MBR(/dev/hda)에 설치한다는 가정하에서의 설명
③ 재부팅하여 Grub가 제대로 설치되었는지 확인한다.
■ 복구모드(rescue)로 부팅하여 grub 복구 방법
① 설치 CD (1번CD)를 넣고 boot: 프롬프트가 나타나면 아래와 같이 복구 모드로 진행한다.
boot: linux rescue
② 언어/키보드/네트워크 등을 설정하고 리눅스가 설치된 파티션을 지정해주면,
해당 파티션이 /mnt/sysimage로 마운트 된다.
③ chroot 명령을 이용해서 리눅스가 설치된 파티션으로 시스템 루트(root)를 전환한다.
# chroot /mnt/sysimage
④ 아래의 명령으로 grub를 복구한다.
# grub-install /dev/hda
※ 부트로더를 MBR(/dev/hda)에 설치한다는 가정하에서의 설명
'Computer > System' 카테고리의 다른 글
JBoss 탐험기: JBoss 소개와 설치 (0) | 2007.12.05 |
---|---|
apache configure: error: Cannot use an external APR-util ... (0) | 2007.08.02 |
[펌]linux xterm 에서 beep off (0) | 2007.07.13 |
TFTP (0) | 2007.06.05 |
[펌]마운트 (0) | 2007.05.29 |