"Trans:GentooX86Handbook1-10"의 두 판 사이의 차이

Gentoo Korea Wiki
둘러보기로 가기 검색하러 가기
152번째 줄: 152번째 줄:
  
 
{{Note|MBR대신에 각각의 파티션에 GRUB을 설치하고 싶다면 {{blue|setup}} 명령을 바꿔서 올바른 파티션을 가리키도록 해야 합니다. 예를 들어 GRUB을 /dev/sda3에 설치하고 싶다면 {{blue|setup (hd0,2)}} 명령이 따라옵니다. 어쨌거나 일부 사용자가 이렇게 하고 싶어합니다.}}
 
{{Note|MBR대신에 각각의 파티션에 GRUB을 설치하고 싶다면 {{blue|setup}} 명령을 바꿔서 올바른 파티션을 가리키도록 해야 합니다. 예를 들어 GRUB을 /dev/sda3에 설치하고 싶다면 {{blue|setup (hd0,2)}} 명령이 따라옵니다. 어쨌거나 일부 사용자가 이렇게 하고 싶어합니다.}}
 +
 +
GRUB에 대한 더 많은 의문점이 있다면, [http://www.gnu.org/software/grub/grub-faq.html GRUB 자주 묻는 질문], [http://grub.enbug.org/GrubLegacy GRUB 위키], 을 참조하시거나 터미널에서 {{blue|info grub}}을 읽어보시기 바랍니다.
 +
 +
[http://wiki.gentoo.or.kr/index.php/Trans:GentooX86Handbook1-10#.EC.8B.9C.EC.8A.A4.ED.85.9C_.EC.9E.AC.EC.8B.9C.EB.8F.99.ED.95.98.EA.B8.B0 시스템 재시동하기]로 계속 진행합니다.
  
 
=== 대안: LILO 사용하기 ===
 
=== 대안: LILO 사용하기 ===

2012년 7월 19일 (목) 02:23 판

부트로더 설정하기

선택하기

개요

이제 커널을 설정했고 컴파일 했으며 올바르게 필요한 시스템 설정파일을 채웠습니다. 이제 여러분이 시스템을 시작할때 커널의 동작을 시작할 프로그램을 설치할 시간입니다. 이런 프로그램을 부트로더라고 합니다.

x86에 대해 젠투 리눅스는 GRUBLILO를 제공합니다.

하지만 부트로더를 설치하기 전에 프레임버퍼를 설정하는 방법(물론 여러분이 원하신다면)을 알려줄 것입니다. 프레임버퍼를 사용하면 (제한된) 그래픽 기능(예를 들어 젠투가 제공하는 멋진 부트 스플래시 이미지 같은 것을 사용)과 함께 리눅스 명령줄을 실행할 수 있습니다.

선택요소: 프레임버퍼

프레임버퍼 지원을 포함하여 커널을 컴파일 했다면(또는 기본 커널 설정으로 genkernel을 사용했다면), video 구문을 부트로더 설정 파일에 추가하여 프레임버퍼를 활성화 할 수 있습니다.

먼저 프레임버퍼 장치가 무엇인지를 알 필요가 있습니다. 여러분은 uvesafbVESA 드라이버로 사용해야 합니다.

video 구문은 프레임버퍼 표시 옵션을 제어합니다. 여러분이 사용하고 싶은 제어 구문이 뒤따라온 주어진 프레임버퍼가 필요합니다. 사용가능한 모든 요소는 /usr/src/linux/Documentation/fb/uvesafb.txt에 나열되어 있습니다. 대부분 사용하는 옵션은 다음과 같습니다.

제어 설명
ywrap 그래픽 카드가 메모리 허용 범위내에서 처리할 수 있음을 가정합니다 (마지막에 도달했을 경우 처음으로 돌아와서 계속)
mttr:n MTRR 레지스터를 설정합니다. n이 될 수 있는 값은 다음과 같습니다

0 - 비활성
1 - 캐시에 보관할 수 없음
2 - write-back
3 - write-combining
4 - write-through

mode 해상도, 색 단계수, 재생율을 설정합니다. 예를 들어 1024x768-32@85는 1024x768, 32비트 컬러, 85Hz 재생율을 의미합니다

결과는 video=uvesafb:mtrr:3,ywrap,1024x768-32@85와 같아야 합니다. 이 설정 내용을 적어 내려가세요. 잠깐동안만 필요할 것입니다.

이제 GRUB또는 LILO를 설치하는 것으로 계속 진행합니다.

기본: GRUB 사용하기

GRUB 용어 이해하기

GRUB을 이해하는데 가장 어려운 부분이 바로 GRUB이 어떻게 하드디스크 드라이브와 파티션을 참조하느냐를 편하게 받아들이는 것입니다. GRUB에서 리눅스 파티션 /dev/sda1은 (hd0,0)과 같이 불립니다. 괄호로 둘러쌓인 hd0,0을 주목하시기 바랍니다. 이 요소들이 필요합니다.

하드디스크 드라이브는 "a"보다는 (보통) 0부터 세며, 파티션은 1보다는 0부터 셉니다. CD-ROM 재생기나 CD 라이터 같은 atapi-ide 장치가 아닌 하드디스크 드라이브를 셀 때만 사용하는 hd 장치에서도 마찬가지임을 알아두시기 바랍니다. 또한 같은 구성 방식을 SCSI 드라이브에도 사용합니다 (보통 SCSI 드라이브에서 시동하도록 BIOS를 시동했을때 IDE 드라이브를 제외하기보단 더 많은 수를 붙입니다) BIOS에게 다른 하드디스크(예를 들어 프라이머리 슬레이브)로 시동하라고 요청했을 경우, 해당 하드디스크를 hd0으로 봅니다.

여러분의 하드디스크 드라이브가 /dev/sda에 있고 /dev/sdb, /dev/sdc가 더 있을 경우 /dev/sdb7은 (hd1,6) 으로 변환됩니다. 이게 사실 보면 엄청 어려운 얘기인 것 같지만, 여러분이 앞으로 보실 것과 같이, GRUB은 수많은 하드디스크 드라이브와 파티션을 가진 여러분과 GRUB 번호 매김 방식을 까먹은 분들을 위해 간편한 수단이 될 수 있는 탭 완성 기능을 제공합니다.

이제 감을 잡으셨으니 GRUB을 설치하실 차례입니다.

GRUB 설치하기

GRUB을 설치하기 위해, 먼저 이머지를 하도록 합시다


코드 예제 2.1: GRUB 설치하기
# emerge grub


GRUB을 설치했지만 설정 파일을 작성하고 GRUB을 MBR에 올려서 GRUB을 통해 여러분께서 새로 만드신 커널을 자동으로 시동할 수 있게 할 일이 아직 남았습니다. /boot/grub/grub.conf를 nano (또는 여러분의 취향에 따라 다른 편집기)로 만듭니다.


코드 예제 2.2: /boot/grub/grub.conf 만들기
# nano /boot/grub/grub.conf


이제 grub.conf를 작성하겠습니다. 여러분의 커널 이미지 파일 이름과 적절한 경우 여러분의 initrd 이미지 파일 이름을 확인하시기 바랍니다.


참고: GRUB은 BIOS로부터 장치 설계 내용을 할당 받습니다. BIOS 설정을 바꾸면 여러분의 장치 문자와 번호 역시 바뀔 것입니다. 예를 들어 여러분의 장치 시동 순서를 바꾸었다면 GRUB 설정도 바꾸어야 할 필요가 있습니다



참고: 루트 파일 시스템을 JFS로 사용한다면, 이 파일시스템에 읽기쓰기 마운트를 허용하기 전에 다음 로깅 위치를 바로 잡기(replay) 위해 kernel 줄 에 " ro"를 추가해야 합니다



코드 예제 2.3: grub.conf 예제
# 기본적으로 시동할 목록 중 하나 입니다. 0은 첫번째, 1은 두번째 등입니다.

default 0
# 기본적으로 항목에 대해 시동할때 대기할 초 단위 시간입니다.
timeout 30
# 좋습니다! 양념을 팍팍 쳐 줄 큰 스플래시 그림입니다. :)
# 그래픽 카드를 설치하지 않았을 경우 주석처리합니다
splashimage=(hd0,0)/boot/grub/splash.xpm.gz

title Gentoo Linux 2.6.34-r1
# 커널 이미지(또는 운영체제)가 위치하고 있는 파티션입니다.
root (hd0,0)
kernel /boot/kernel-2.6.34-gentoo-r1 root=/dev/sda3

title Gentoo Linux 2.6.34-r1 (rescue)
# 커널 이미지(또는 운영체제)가 위치하고 있는 파티션입니다.
root (hd0,0)
kernel /boot/kernel-2.6.34-gentoo-r1 root=/dev/sda3 init=/bin/bb

# 다음 네줄은 윈도우즈 시스템으로 듀얼부트 할 때만 사용합니다.
# 이 경우 윈도우즈는 /dev/sda6에 저장되어 있습니다.
title Windows XP
rootnoverify (hd0,5)
makeactive
chainloader +1


커널을 빌드하는 중이라면 커널에서 시동하려는 initramfs를 포함하도록 선택할 것입니다. 이렇다면 initramfs파일을 참조하여 설정을 변경하고 실제 루트 장치가 어디에 있는지 initramfs에 알려야 할 필요가 있습니다.


코드 예제 2.4: initramfs를 활성화한 커널 빌드에 대한 GRUB 설정 내용 일부
title Gentoo Linux 2.6.34-r1

root (hd0,0)
kernel /boot/2.6.34-r1 real_root=/dev/sda3
initrd /boot/initramfs-genkernel-x86-2.6.34-gentoo-r1


다른 구역 분할 모양새나 혹은 커널 이미지를 사용하였다면 그에 따라 조정하도록 합니다. 그러나 GRUB 장치(예를 들어 (hd0,0))를 따르는 요소들이 루트가 아닌 마운트 지점에 관계되어 있는지 확인해보시기 바랍니다. 다시 말해 (hd0,0)이 /boot 일 때, (hd0,0)/grub/splash.xpm.gz 는 실제로 /boot/grub/splash.xmp.gz입니다.

이에 반해 다른 구역 분할 모양새를 선택했고 분할한 파티션에 /boot를 놓지 않았다면, 위의 코드 예제에서 /boot를 앞에 붙여서 사용하는 것은 정말로 필요합니다. 저희들이 제안한 구역분할 계획을 따랐다면, /boot를 앞에 붙이는 것은 필요치 않지만, boot 심볼릭 링크는 동작할 것입니다. 간단히 말해서 위의 예제는 여러분이 /boot 파티션을 나누었느냐 아니냐의 여부에는 상관 없이 동작한다는 이야기입니다.

커널에 추가적인 옵션을 전달할 필요가 있다면, 간단하게 커널 명령 마지막에 추가하면 됩니다. 이미 옵션(root=/dev/sda3 또는 real_root=/dev/sda3)을 전달했지만 이와 마찬가지로 앞에서 말씀드렸던 프레임버퍼에 대한 video구문과 같은 다른 옵션을 전달할 수 있습니다.

부트로더 설정 파일에는 real_root를 포함하고 있고, 루트 파일시스템 마운트 옵션을 설정하기 위해 real_rootflags 인자를 사용합니다.

2.6.7 이상의 커널을 사용하고 있고 BIOS가 큰 용량의 하드디스크 드라이브를 다루지 못해 하드디스크 드라이브의 점퍼를 설정했다면, sda=stroke를 붙일 필요가 있습니다. sda를 이 옵션이 필요한 장치 이름으로 바꾸십시오.

genkernel 사용자들은 커널에서 설치 CD에서 사용하는 그대로의 동일한 시동 옵션을 사용함을 알아야 합니다. 예를 들어 SCSI 장치가 있다면 커널 옵션에 doscsi를 붙여야 합니다.

이제 grub.conf 파일을 저장하고 빠져나갑니다. 아직 여전히 MBR(주 시동 레코드)에 GRUB을 설치해서 여러분이 시스템을 시동할때 자동으로 GRUB을 시작할 수 있게 하는 일이 남았습니다.

GRUB 개발자들은 grub-install 사용을 권장합니다만, 어떤 이유로 인해 grub-install를 올바르게 동작하게 하는 것을 실패했다 하더라도 여러분에겐 GRUB을 직접 설치하는 선택의 여지가 남아있습니다.

기본: grub-install을 사용하여 GRUB 설정하기또는 대안:수동 과정을 따라 GRUB 설정하기로 계속 진행합니다.

기본: grub-install을 사용하여 GRUB 설정하기

GRUB을 설치하려면 grub-install명령을 실행할 필요가 있습니다. 그러나 grub-install이 루트를 바꾼 환경으로 진입하고 난 후 그대로의 상태에서 동작하지 않을 것입니다. 마운트한 모든 파일시스템을 나열한 /etc/mtab을 만들 필요가 있습니다. 다행스럽게도 이를 처리할 쉬운 방법이 있습니다. 나누어 놓은 부트 파티션이 없을 경우 rootfs줄을 제외하고 /proc/mounts를 /etc/mtab으로 복사하는 것입니다.


코드 예제 2.5: /etc/mtab 만들기
# grep -v rootfs /proc/mounts > /etc/mtab


이제 grub-install을 사용해서 GRUB을 설치하겠습니다.


코드 예제 2.6: grub-install 실행하기
# grub-install --no-floppy /dev/sda


GRUB에 대한 더 많은 의문점이 있다면, GRUB 자주 묻는 질문, GRUB 위키, 을 참조하시거나 터미널에서 info grub을 읽어보시기 바랍니다.

시스템 재시동하기로 계속 진행합니다.

대안: 수동 과정을 따라 GRUB 설정하기

GRUB 설정을 시작하려면 grub을 입력합니다. GRUB 명령 줄 프롬프트 grub> 이 뜬 것을 보실 것입니다. 이제 여러분의 하드디스크 드라이브에 GRUB 시동 레코드를 설치하기 위해 올바른 명령을 입력해야 합니다.


코드 예제 2.7: GRUB 쉘 시작하기
# grub --no-floppy



참고: 시스템에 플로피 디스크 드라이브가 없다면 GRUB이 (존재하지 않는) 플로피 디스크 드라이브를 확인하지 않게 막기 위해 위 명령 처럼 (역자 주: 본문에 오류 있습니다) --no-floppy 옵션을 추가합니다.


예제 설정을 통해 우리는 GRUB을 설치해서 시동 파티션 /dev/sda1에서 정보를 읽어올 것이며, GRUB 시동 레코드를 하드디스크 드라이브의 MBR(주 시동 레코드)에 설치하여 처음 컴퓨터를 켰을 때 먼저 GRUB 프롬프트가 뜨게 할 것입니다. 물론 설치하는 동안 다음 예제 설정을 따라가지 않았다면 알맞게 명령을 바꾸도록 합니다.

GRUB의 탭 완성 기능은 GRUB안에서 사용할 수 있습니다. 예를 들어 "root ("를 친 다음 TAB키를 눌렀다면, 여러분은 장치의 목록(hd0 같은 것)을 보게 될 것입니다. "틀:Root (hd0,"까지 입력하고 TAB키를 눌렀다면, 선택할 (hd0,0과 같은)파티션의 목록을 보게 될 것입니다.

탭 완성을 사용하면 GRUB을 서정하는 것은 어렵지 않을 것입니다. 이제 GRUB을 설정 해불까요? :-)


코드 예제 2.8: 주 시동 레코드에 GRUB 설치하기
grub> root (hd0,0) (/boot 파티션이 있는 곳을 지정합니다)

grub> setup (hd0) (주 시동 레코드(MBR)에 GRUB을 설치합니다)
grub> quit (GRUB 쉘을 빠져 나갑니다)



참고: MBR대신에 각각의 파티션에 GRUB을 설치하고 싶다면 setup 명령을 바꿔서 올바른 파티션을 가리키도록 해야 합니다. 예를 들어 GRUB을 /dev/sda3에 설치하고 싶다면 setup (hd0,2) 명령이 따라옵니다. 어쨌거나 일부 사용자가 이렇게 하고 싶어합니다.


GRUB에 대한 더 많은 의문점이 있다면, GRUB 자주 묻는 질문, GRUB 위키, 을 참조하시거나 터미널에서 info grub을 읽어보시기 바랍니다.

시스템 재시동하기로 계속 진행합니다.

대안: LILO 사용하기

LILO 설치하기

LILO 설정하기

시스템 재시동하기