막강한 부트로더, GRUB

|


[출처 : 책]


GRUB 는 GRand Unified Bootloader의 약자로 리눅스 계열에서 가장 많이 사용하는 부트로더이다.




1. 리눅스 및 GRUB 에서의 하드디스크, 파티션 표시 법


리눅스에서 나타내는 장치 표시 방법과 GRUB에서 나타내는 장치 표시 방법에는 조금의 차이가 있다.



1) 리눅스






각각의 하드디스크를 여러 파티션으루 나누었을 때






2) GRUB -> IDE, S-ATA, SCIS 방식을 구분하지 않음.




각각의 하드디스크를 여러 파티션으루 나누었을 때




※ 정리


리눅스는 하드디스크 표시를 hdx, sdx 처럼 a부터, 파티션은 1부터 시작되지만

GRUB에서는 하드디스크를 구분 없이 hdx 방식으로 0부터 시작하며, 파티션 또한 하드디스크 번호와 괄호로 묶어 0부터 표시한다.





2. GURB 설정 파일


설정 파일은 /boot/grub/grub.conf  에 있다. vi 등의 편집기로 열면 된다.

GRUB 파일은 아래처럼 구성되어 있다.


# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE:  You have a /boot partition.  This means that

#          all kernel and initrd paths are relative to /boot/, eg.

#          root (hd0,0)

#          kernel /vmlinuz-version ro root=/dev/sda7

#          initrd /initrd-[generic-]version.img

#boot=/dev/sda

default=0                                     // GRUB에 있는 부팅 목록 중 0번째(첫번째)로 부팅하기

timeout=5                                    // 5초 뒤에 자동으로 default 에 지정된 OS 로 부팅된다. 나는 빠른 부팅을 위해 1로 바꿨다. 

splashimage=(hd0,0)/grub/splash.xpm.gz  // GRUB 메뉴의 배경그림

hiddenmenu                                 // 히든 메뉴 설정할 수 있는 듯 하다.

title CentOS 6 (2.6.32-504.el6.i686)        // 첫번째, 즉 0번에 나타날 이름 설정

        root (hd0,0)                            // 마운트 할 하드 및 파티션 정보

        kernel /vmlinuz-2.6.32-504.el6.i686 ro root=UUID=81b1dda3-6776-4d4f-9e96-b3274cf5d32f rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

                                             // OS 부팅 시 읽어올 커널 파일.

        initrd /initramfs-2.6.32-504.el6.i686.img         // initrd 파일을 지정



위 파일에는 없지만 다른 명령어들도 있다고 한다.


rootnoverify : root 명령과 비슷하지만 해당 파티션을 마운트 하진 않는다. 윈도우로 부팅할 경우 사용한다.

displaymem : BIOS에 있는 정보에 기반하여 현재 메모리 사용을 보여준다.   // 해봤는데 너무 빨리 지나가서 다시 지웠다.

chainloader : 연쇄 로더로 지정된 파일을 읽어온다. 파일이 지정된 파티션의 첫번째 섹터에 위치하고 있을 경우, 파일명을 사용하는 대신 블록리스트 표기법 +1을 사용한다. 윈도우와의 멀티부팅을 이용할 때 사용한다.



* 윈XP 멀티 부팅할 때의 예시


title Windows XP

        rootnoverify (hd0,1)  

        chainloadere +1





3. GRUB 명령어


쉘 프롬프트에서 grub를 입력하거나 부팅 시 grub 메뉴에서 c 를 입력하면 grub 명령행 모드로 들어갈 수 있다.

grub 명령어를 통해 특정 파일을 block 시키거나 부팅에 관련된 것들을 막강하게 편집할 수도 있다.

quit를 입력하면 grub 명령행 모드를 나올 수 있다.


※ GRUB에 대한 막강한 기능에 대해 잘 설명해 둔 곳이 있어 기록을 남겨둔다.

http://www.linuxlab.co.kr/docs/01-05-5.htm




And