LINUX GRUB 설정을 해보자 (linux 5,6)
- GRUB 부트 로더
부트로더 중 가장 일반적인 Grub 의 설정방법 및 부팅 과정에 대해서 알아 본다.GNU GRUB 은 원래 처음에는 GNU Hurd 를 위해 개발되었지만 그 막강한 기능 때문에 리눅스에서도 점차 LILO 대신 GRUB 사용이 늘고 있다. (현재 LILO는 거의 사용 하지 않음)
1. GRUB 부팅 과정
기본적으로 GRUB 부트 화면에서, 아무 키나 한 번 입력 후에는 그림“멀티부트 메뉴”와 같이 멀티부트 메뉴를 볼 수 있다. 멀티부트 메뉴에서는 키보드의 상/하 방향키로 부팅하고자 하는 메뉴를 선택한 후 [RETURN]키를 입력하여 부팅하고자 하는 OS로 부팅을 진행할 수 있다. 또한 GRUB은 여러 형태의 모드를 제공한다.
2. GRUB의 모드 ( multi-boot)
GRUB의 멀티부트 메뉴 화면에서 [a], [c], [e] 키를 누르면 각각의 모드로 진입 할 수 있다. 각 모드에 관해 더 자세히 살펴보도록 하자.
[a]를 입력한 모드는 kernel의 파라미터를 추가할 수 있게 하는 모드이다. 예를 들면 kernel /boot/vmlinuz-2.6.9-36 ro root=LABEL=/ 라는 부분이 있을 경우 [a]키를 누르면 ro root=LABEL=/ 이후 부분을 편집할 수 있게 된다. 이는 시스템에 장애가 발생하여 단일 사용자 모드(single)로 들어가야 할 경우가 발생할 때 커널 파라미터 맨 뒤에 single 이라고 입력하고 단일 사용자 모드로 진입 할 수가 있다.
[e]모드는 멀티부트 메뉴의 리스트 항목을 직접 편집 할 수 있도록 도와 준다.
간혹 [a]키를 눌러 단일 사용자 모드(single) 진입할 경우 커널 패닉 현상이 발생할 수 있다. (e를 눌러 싱글모드 진입하는 것이 안정적)
[e]모드에서 vmlinuz-2.6.9-36라는 뒤에 single 이라고 추가하고 부팅하면 단일 사용자 모드(single)로 안전하게 진입할 수 있다.
편집모드에서 지원하는 키
e : 해당 라인을 편집한다. d : 해당 라인을 삭제한다.
o : 명령 라인을 추가한다. b : 부팅을 시작한다.
[단일 사용자 모드(single) 접근방법]
멀티부트메뉴에서 'e'를 입력하면 전체 내용을 볼 수 있다. 키보드의 방향키로 아래의 내용이 나오는 부분으로 이동한다.
'kernel /vmlinuz-2.6.9-34.EL ro root=LABEL=/ vga=773' 이렇게 적혀 있는 라인에서 키보드의 'e'를 입력하면 해당 줄의 수정이 가능하게 되며, 줄의 맨끝에 'single'이라는 값을 추가 입력한 뒤에 엔터하면 'kernel /vmlinuz-2.6.9-34.EL ro root=LABEL=/ vga=773 single' 이 상태에서 키보드의 'b'를 입력하면 단일 사용자 모드로 부팅이 된다.
※ 단일 사용자 모드는 root 패스워드 분실 시 root 패스워드를 수정할 수 있다.
[e]모드에서 메뉴를 편집한다고 해서 다음 번 부팅시에도 적용되는 것이 아니라 현재부팅시에만 일시적으로 적용받는 것이며, 또한 편집이 잘못 되었을 경우에 [ESC]키를 눌러 원래 값으로 초기화되게 되어 있다.
[c]모드는 상호대화식 모드이다. grub 설정이 잘못 되어 있는 경우 직접 부팅관련 명령어를 입력하며 부팅할 수 있도록 도와준다. 명령어는 Bash shell과 유사한 명령행 자동완성기능을 사용할 수 있으며 또한 [ESC]키를 사용하여 실행한 명령어를 취소 있도록 설계되어 있다. 이는 전문가가 아니면 사용이 힘든 부분이므로 주의를 요한다.
3. GRUB 설정
(1) 설명: grub의 주 환경설정 파일은 grub.conf이다. 다른 환경 설정 파일들은 /etc 디렉터리에 위치하지만 (/etc/grub.conf) grub의 경로는 /boot/grub/grub.conf이다.
(2) 기본 구성 예
[root@www root]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# 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,3)
# kernel /boot/vmlinuz-version ro root=/dev/hda4
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,3)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
root (hd0,3)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.img
title DOS
rootnoverify (hd0,0)
chainloader +1
(3) 항목설명
1) default=0
=> 기본값으로 부팅되도록 설정하는 부분이다. grub 선택화면에서 특별히 선택하지 않으면 여기에 설정되어진 값에 해당하는 운영체제를 로딩한다. 현재 설정인 0 값은 아래 항목 중에서 제일 먼저 설정되어 있는 운영체제를 의미한다.
2) timeout=10
=> grub 부트화면에서의 대기시간이다. 단위는 초이다. 현재 설정은 10초 간 선택이 없으면 default에 설정된 값으로 부팅된다.
3) splashimage=(hd0,3)/boot/grub/splash.xpm.gz
=> 부트 화면의 배경이미지를 지정하는 부분이다. xpm형태의 그림이미지를 압축한 xpm.gz 파일을 사용한다. (hd0,3)의 뜻은 /dev/hda4 라는 뜻이다.
(참고) 리눅스 디바이스 와 grub 디바이스와의 관계
1. 기본관계
/dev/fd0 : (fd0)
/dev/hda : (hd0) => SCSI 하드디스크인 경우에 첫 번째 물리적인 디스크도 이 값에 해당한다.
/dev/hdb : (hd1)
2. 사용 예
/dev/hda1 : (hd0,0)
/dev/hda4 : (hd0,3)
4) title Red Hat Linux (2.4.18-14)
root (hd0,3)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/initrd /boot/initrd-2.4.18-14.img => 엔트리를 나타낸다. 위의 예는 리눅스의 전형적인 기본구조이다.
(기본구조)
title 부트_엔트리_설명
root (하드디스크디바이스명,부트파티션명)
kernel /커널이미지경로 ro root = 루트 디바이스명
initrd /초기화에_필요한_이미지경로
5) title DOS
rootnoverify (hd0,0)
chainloader +1
=> 엔트리를 나타낸다. 윈도우계열의 전형적인 기본구조이다.
(기본구조)
title 부트_엔트리_설명
rootnoverify (윈도우가_설치되어_있는_하드디스크_디바이스명)
chainloader +1 : 윈도우 운영체제는 chains-load에 의해서 부팅 되는데 이것에 관한 설정이다.
4. GRUB 패스워드 설정하기
(1) 설명: 단일 사용자모드로 누구나 들어갈 수 있으면 루트패스워드를 관리자도 모르는 상태에서 변경이 가능하다. GRUB 메뉴에 패스워드를 걸어 단일사용자모드로 접근 시에 패스워드를 입력하도록 설정할 수 있다.
(2) 설정
1) 쉘 프롬프트에서 grub 이라고 입력한다.
2) 다음과 같이 grub 프롬프트가 나타난다.
GRUB version 0.92 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub>
3) md5crypt 이라고 입력하고 패스워드를 입력한다.
grub> md5crypt
Password: ********
Encrypted: $1$t.z8h/$NXKVZ2A9ovCk1LLRNPCAI0
=> 패스워드를 입력하면 암호화된 패스워드값이 생성된다.
(암호화를 원하지 않고 그냥 설정을 원한다면 password : password#001 과 같은 형식으로도 삽입 할 수 있다.)
4) 생성된 패스워드를 /boot/grub/grub.conf 파일에 아래의 내용을 추가
password --md5 $1$t.z8h/$NXKVZ2A9ovCk1LLRNPCAI0
(3) 사용 예: grub에 패스워드 설정시 그 위치가 중요하다.
1) 단일 사용자모드와 같이 편집을 통한 접근만 막을 경우
default=0
timeout=10
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
password --md5 $1$/gphl/$oBCc00qqTPHqIDQpimlXC0 // 이 부분에 삽입한다.
title Red Hat Linux (2.4.18-14)
root (hd0,1)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.img
2) 부팅시 무조건 패스워드를 입력하고 부팅하려는 경우
default=0
timeout=10
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
root (hd0,1)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.img
password --md5 $1$/gphl/$oBCc00qqTPHqIDQpimlXC0 // 이 부분에 삽입한다.
(4) 참고: grub 패스워드를 잃어버렸을 경우
1) 설치 CD-ROM 을 이용한다.
- 설치한 리눅스 1번 CD-ROM 으로 부팅한다.
- 업그레이드모드로 들어가서 LILO 같은 부트로더를 다시 설치한다.
2) 부팅디스크를 이용한다.
- 설치 시에 부팅디스크를 만들었을 경우 부팅디스크로 부팅한다.
- 'boot:'라는 화면에서 vmlinuz root=/dev/hda1 (설치한 곳에 따라 다름)로 부팅한다.
- /boot/grub/grub.conf를 편집기로 열어 패스워드 설정한 부분을 삭제한다.
참고: 리눅스 설치 시 각 설치 모드
1) [ F1-Main ]
boot : <Enter> : 그래픽 모드로 설치
boot : linux text : text 모드로 설치
2) [ F2-Options ]
boot : linux noprobe : 하드웨어 검사없이 설치
boot : linux mediacheck : 설치매체 테스트 후 설치
boot : linux rescue : 리눅스 복구모드
boot : linux dd : 특정 H/W의 드라이브 지정하여 설치
boot : linux askmethod : 리눅스 소스파일이 네트워크 가능한 원격지에 있을 때 설치
boot : linux updates : 리눅스 업데이트 모드
boot : memtest86 : 메모리 테스트를 위한 모드
3) [ F3-General ]
boot : <Enter>
boot : linux resolution=1024x768 : 리눅스 해상도 지정
boot : linux nofb : 해상도 인식불가시 선택
4) [ F4-Kernel ]
boot : linux <options>
boot : linux mem=128M noprobe : 커널옵션값 메모리 128M, noprobe 설치모드
5) [ F5-rescue ]
boot : linux rescue : 복구모드
부트로더 중 가장 일반적인 Grub 의 설정방법 및 부팅 과정에 대해서 알아 본다.GNU GRUB 은 원래 처음에는 GNU Hurd 를 위해 개발되었지만 그 막강한 기능 때문에 리눅스에서도 점차 LILO 대신 GRUB 사용이 늘고 있다. (현재 LILO는 거의 사용 하지 않음)
1. GRUB 부팅 과정
기본적으로 GRUB 부트 화면에서, 아무 키나 한 번 입력 후에는 그림“멀티부트 메뉴”와 같이 멀티부트 메뉴를 볼 수 있다. 멀티부트 메뉴에서는 키보드의 상/하 방향키로 부팅하고자 하는 메뉴를 선택한 후 [RETURN]키를 입력하여 부팅하고자 하는 OS로 부팅을 진행할 수 있다. 또한 GRUB은 여러 형태의 모드를 제공한다.
2. GRUB의 모드 ( multi-boot)
GRUB의 멀티부트 메뉴 화면에서 [a], [c], [e] 키를 누르면 각각의 모드로 진입 할 수 있다. 각 모드에 관해 더 자세히 살펴보도록 하자.
[a]를 입력한 모드는 kernel의 파라미터를 추가할 수 있게 하는 모드이다. 예를 들면 kernel /boot/vmlinuz-2.6.9-36 ro root=LABEL=/ 라는 부분이 있을 경우 [a]키를 누르면 ro root=LABEL=/ 이후 부분을 편집할 수 있게 된다. 이는 시스템에 장애가 발생하여 단일 사용자 모드(single)로 들어가야 할 경우가 발생할 때 커널 파라미터 맨 뒤에 single 이라고 입력하고 단일 사용자 모드로 진입 할 수가 있다.
[e]모드는 멀티부트 메뉴의 리스트 항목을 직접 편집 할 수 있도록 도와 준다.
간혹 [a]키를 눌러 단일 사용자 모드(single) 진입할 경우 커널 패닉 현상이 발생할 수 있다. (e를 눌러 싱글모드 진입하는 것이 안정적)
[e]모드에서 vmlinuz-2.6.9-36라는 뒤에 single 이라고 추가하고 부팅하면 단일 사용자 모드(single)로 안전하게 진입할 수 있다.
편집모드에서 지원하는 키
e : 해당 라인을 편집한다. d : 해당 라인을 삭제한다.
o : 명령 라인을 추가한다. b : 부팅을 시작한다.
[단일 사용자 모드(single) 접근방법]
멀티부트메뉴에서 'e'를 입력하면 전체 내용을 볼 수 있다. 키보드의 방향키로 아래의 내용이 나오는 부분으로 이동한다.
'kernel /vmlinuz-2.6.9-34.EL ro root=LABEL=/ vga=773' 이렇게 적혀 있는 라인에서 키보드의 'e'를 입력하면 해당 줄의 수정이 가능하게 되며, 줄의 맨끝에 'single'이라는 값을 추가 입력한 뒤에 엔터하면 'kernel /vmlinuz-2.6.9-34.EL ro root=LABEL=/ vga=773 single' 이 상태에서 키보드의 'b'를 입력하면 단일 사용자 모드로 부팅이 된다.
※ 단일 사용자 모드는 root 패스워드 분실 시 root 패스워드를 수정할 수 있다.
[e]모드에서 메뉴를 편집한다고 해서 다음 번 부팅시에도 적용되는 것이 아니라 현재부팅시에만 일시적으로 적용받는 것이며, 또한 편집이 잘못 되었을 경우에 [ESC]키를 눌러 원래 값으로 초기화되게 되어 있다.
[c]모드는 상호대화식 모드이다. grub 설정이 잘못 되어 있는 경우 직접 부팅관련 명령어를 입력하며 부팅할 수 있도록 도와준다. 명령어는 Bash shell과 유사한 명령행 자동완성기능을 사용할 수 있으며 또한 [ESC]키를 사용하여 실행한 명령어를 취소 있도록 설계되어 있다. 이는 전문가가 아니면 사용이 힘든 부분이므로 주의를 요한다.
3. GRUB 설정
(1) 설명: grub의 주 환경설정 파일은 grub.conf이다. 다른 환경 설정 파일들은 /etc 디렉터리에 위치하지만 (/etc/grub.conf) grub의 경로는 /boot/grub/grub.conf이다.
(2) 기본 구성 예
[root@www root]# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# 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,3)
# kernel /boot/vmlinuz-version ro root=/dev/hda4
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,3)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
root (hd0,3)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.img
title DOS
rootnoverify (hd0,0)
chainloader +1
(3) 항목설명
1) default=0
=> 기본값으로 부팅되도록 설정하는 부분이다. grub 선택화면에서 특별히 선택하지 않으면 여기에 설정되어진 값에 해당하는 운영체제를 로딩한다. 현재 설정인 0 값은 아래 항목 중에서 제일 먼저 설정되어 있는 운영체제를 의미한다.
2) timeout=10
=> grub 부트화면에서의 대기시간이다. 단위는 초이다. 현재 설정은 10초 간 선택이 없으면 default에 설정된 값으로 부팅된다.
3) splashimage=(hd0,3)/boot/grub/splash.xpm.gz
=> 부트 화면의 배경이미지를 지정하는 부분이다. xpm형태의 그림이미지를 압축한 xpm.gz 파일을 사용한다. (hd0,3)의 뜻은 /dev/hda4 라는 뜻이다.
(참고) 리눅스 디바이스 와 grub 디바이스와의 관계
1. 기본관계
/dev/fd0 : (fd0)
/dev/hda : (hd0) => SCSI 하드디스크인 경우에 첫 번째 물리적인 디스크도 이 값에 해당한다.
/dev/hdb : (hd1)
2. 사용 예
/dev/hda1 : (hd0,0)
/dev/hda4 : (hd0,3)
4) title Red Hat Linux (2.4.18-14)
root (hd0,3)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/initrd /boot/initrd-2.4.18-14.img => 엔트리를 나타낸다. 위의 예는 리눅스의 전형적인 기본구조이다.
(기본구조)
title 부트_엔트리_설명
root (하드디스크디바이스명,부트파티션명)
kernel /커널이미지경로 ro root = 루트 디바이스명
initrd /초기화에_필요한_이미지경로
5) title DOS
rootnoverify (hd0,0)
chainloader +1
=> 엔트리를 나타낸다. 윈도우계열의 전형적인 기본구조이다.
(기본구조)
title 부트_엔트리_설명
rootnoverify (윈도우가_설치되어_있는_하드디스크_디바이스명)
chainloader +1 : 윈도우 운영체제는 chains-load에 의해서 부팅 되는데 이것에 관한 설정이다.
4. GRUB 패스워드 설정하기
(1) 설명: 단일 사용자모드로 누구나 들어갈 수 있으면 루트패스워드를 관리자도 모르는 상태에서 변경이 가능하다. GRUB 메뉴에 패스워드를 걸어 단일사용자모드로 접근 시에 패스워드를 입력하도록 설정할 수 있다.
(2) 설정
1) 쉘 프롬프트에서 grub 이라고 입력한다.
2) 다음과 같이 grub 프롬프트가 나타난다.
GRUB version 0.92 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub>
3) md5crypt 이라고 입력하고 패스워드를 입력한다.
grub> md5crypt
Password: ********
Encrypted: $1$t.z8h/$NXKVZ2A9ovCk1LLRNPCAI0
=> 패스워드를 입력하면 암호화된 패스워드값이 생성된다.
(암호화를 원하지 않고 그냥 설정을 원한다면 password : password#001 과 같은 형식으로도 삽입 할 수 있다.)
4) 생성된 패스워드를 /boot/grub/grub.conf 파일에 아래의 내용을 추가
password --md5 $1$t.z8h/$NXKVZ2A9ovCk1LLRNPCAI0
(3) 사용 예: grub에 패스워드 설정시 그 위치가 중요하다.
1) 단일 사용자모드와 같이 편집을 통한 접근만 막을 경우
default=0
timeout=10
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
password --md5 $1$/gphl/$oBCc00qqTPHqIDQpimlXC0 // 이 부분에 삽입한다.
title Red Hat Linux (2.4.18-14)
root (hd0,1)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.img
2) 부팅시 무조건 패스워드를 입력하고 부팅하려는 경우
default=0
timeout=10
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
root (hd0,1)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.img
password --md5 $1$/gphl/$oBCc00qqTPHqIDQpimlXC0 // 이 부분에 삽입한다.
(4) 참고: grub 패스워드를 잃어버렸을 경우
1) 설치 CD-ROM 을 이용한다.
- 설치한 리눅스 1번 CD-ROM 으로 부팅한다.
- 업그레이드모드로 들어가서 LILO 같은 부트로더를 다시 설치한다.
2) 부팅디스크를 이용한다.
- 설치 시에 부팅디스크를 만들었을 경우 부팅디스크로 부팅한다.
- 'boot:'라는 화면에서 vmlinuz root=/dev/hda1 (설치한 곳에 따라 다름)로 부팅한다.
- /boot/grub/grub.conf를 편집기로 열어 패스워드 설정한 부분을 삭제한다.
참고: 리눅스 설치 시 각 설치 모드
1) [ F1-Main ]
boot : <Enter> : 그래픽 모드로 설치
boot : linux text : text 모드로 설치
2) [ F2-Options ]
boot : linux noprobe : 하드웨어 검사없이 설치
boot : linux mediacheck : 설치매체 테스트 후 설치
boot : linux rescue : 리눅스 복구모드
boot : linux dd : 특정 H/W의 드라이브 지정하여 설치
boot : linux askmethod : 리눅스 소스파일이 네트워크 가능한 원격지에 있을 때 설치
boot : linux updates : 리눅스 업데이트 모드
boot : memtest86 : 메모리 테스트를 위한 모드
3) [ F3-General ]
boot : <Enter>
boot : linux resolution=1024x768 : 리눅스 해상도 지정
boot : linux nofb : 해상도 인식불가시 선택
4) [ F4-Kernel ]
boot : linux <options>
boot : linux mem=128M noprobe : 커널옵션값 메모리 128M, noprobe 설치모드
5) [ F5-rescue ]
boot : linux rescue : 복구모드
댓글
댓글 쓰기