GRUB/ko

GRUB2는 GRUB version 1을 대체하는 부트로더이며, GRUB version 1은 이제 "GRUB Legacy"라고 합니다. GRUB2는 GRUB Legacy와는 달리 코드 기반이 완전히 다르며, 고급 스크립트 기능을 활용할 수 있는 새로운 쉘-유사 문법 같은 기능이 들어있습니다.

한방에 접근하시려면 GRUB2 Quick Start를 보십시오.

GRUB Legacy에서 GRUB2로 옮겨가려면, GRUB2 Migration을 참고하십시오.

설치
꾸러미는 슬롯 단위로 나누었습니다. grub-0.97 (GRUB Legacy)와 grub-2.00는 동시에 설치할 수 있지만, 한번에 버전 하나만 주 부트 레코드(MBR)에 설치합니다.

선행 과정
기본적으로 GRUB2는 빌드 시간에 기본 플랫폼 대상을 추측합니다. 의 GRUB_PLATFORMS 변수를 설정하여 우선 적용할 수 있습니다.

대상 CPU에 따라 다음 플랫폼을 지원합니다:

The profiles enable support for (U)EFI functionality by default. When using a BIOS-based system, set GRUB_PLATFORMS variable to  to avoid unneeded dependencies.

Emerge
GRUB2를 설치하려면 일반적인 문법을 사용하십시오:

추가 프로그램
추가로, 유틸리티( 꾸러미에 있음)를 설치하여  명령을 실행할 때 GRUB2가 다른 운영체제도 찾을 수 있도록 하십시오. 대부분의 경우, 이런 조치로 GRUB2에서 Windows 7, 8.1, 10 및 기타 리눅스 배포판 등의 다른 운영체제를 자동으로 찾을 수 있습니다.

GRUB2(그리고 추가로 도) 설치는 부트 로더를 자동으로 활성화하지 않습니다. 단지 이 설치 과정은 운영체제에 프로그램을 설치하는 과정일 뿐이지만, 시스템 자체에 부트 로더를 설치(하여 시스템을 부팅할 때 부트로터를 사용)하려면, 설정 부분에서 다루는 추가 과정을 거쳐야합니다.

설정
GRUB2 설정에 중요한 두가지 부분이 있습니다:


 * 1) GRUB2 프로그램을 시스템의 부트로더로 설치합니다.
 * 2) GRUB2 부트로더 자체를 설정합니다.

GRUB2 프로그램의 설치는 시스템 형태에 따르며, 부트로더 설치 에서 다룹니다. 우선 부트로더 자체 설정을 다루겠습니다.

주 설정 파일
스크립트는 grub 설정을 만들 때 사용합니다. 에 있는 설정 파일과  설정 파일에서 함께 사용하여 최종적으로 GRUB2 자체에서 사용하는 유일한 설정 파일 를 만듭니다.

GRUB2는 관리자가 부팅 옵션 설정을 (GRUB Legacy와 LILO 처럼) 직접 관리할 필요가 없습니다. 대신 명령으로 자체 설정 파일을 만들 수 있습니다. 이 유틸리티는 의 스크립트와  설정을 활용합니다.

하나 이상의 설정을 수정한 후, 유틸리티에   옵션을 붙여  출력 파일(GRUB2 기본 출력 위치)을 가리켜 실행하십시오:

유틸리티를 호출할 때마다 새 설정 파일을 만듭니다.

설정 매개 변수
에 있는 다음 변수는 GRUB2를 동작하도록 설정하는 일반적인 변수입니다:

좀 더 완벽한 내용은 GRUB2 설정 변수en 하위 페이지를 참고하십시오.

매개변수를 수정했으면, 명령으로 GRUB2 설정 파일을 다시 만드십시오.

설정 스크립트 활성화/활성 해제
디렉터리에는 에서 파일을 만들때 사용하는 스크립트가 있습니다. 기본적으로 이 디렉터리의 내용은 다음과 비슷해야 합니다:

GRUB2는 실행하도록 표시한 설치 스크립트를 사용(기본적으로 이미 다 갖춰져 있음)합니다. 일부 스크립트의 사용 여부를 해제하려면, 명령을 사용하여 간단하게 스크립트 파일 권한의 실행 비트를 제거하십시오. 다음 예제에서는 모든 스크립트 중 와 스크립트의 실행 여부를 비활성화합니다:

스크립트를 수정한 후(또는 실행 비트를 제거한 후), 명령으로 GRUB 설정 파일을 다시 만드십시오.

설정 스크립트 다루기
일부 기능이나 GRUB2 기능은 설정 스크립트를 수정할 때 살펴볼 수 있습니다. 예를 들어 FreeBSD와 듀얼 뷰팅을 하려 할 때, 기능이 동작하도록 하려면 다음 처리 절차가 필요합니다.

스크립트를 다음 내용으로 바꾸십시오:

또는 은 FreeBSD가 있는 공간입니다. 일반 UFS 설치를 FreeBSD 공간 용도로 사용한다면 은 컨테이너(논리 공간)가 됩니다. 컨테이너에는 스왑 공간과 루트 공간이 있습니다. 를 실행하여 스크립트가 실행 가능한지 확인하십시오. 만약 실행 비트를 설정하지 않았다면 명령으로 설정하십시오.

다음  명령으로 GRUB2를 설치하고 GRUB2의 설정 파일을 업데이트하십시오:

부트 로더 설치
GRUB2 시스템 부트로더 설치는 시스템을 어떻게 부팅할것인지(BIOS냐 UEFI냐), 부트로더가 올라간 디스크에 어떻게 설치하고 분할하느냐(MBR 또는 GPT 분할 배치)에 달려있습니다.

이 게시글은 다음 상황을 다룹니다:


 * BIOS와 MBR
 * BIOS와 GPT
 * UEFI와 GPT

시스템에 맞는 설치 과정을 선택하십시오.

BIOS와 MBR
위치가 있는지 확인하시고 이 위치에서 분할 공간을 사용한다면 마운트했는지 확인하십시오:

명령을 실행하여 관련 파일을 에 복사하십시오. PC 플랫폼에서는 주 부트 레코드(MBR)에 부팅 이미지를 설치하거나 디스크 공간의 부트 섹터에 설치합니다. 잘 동작한다면, 을 실행한 다음의 출력 결과는 다음과 같습니다:

명령은 CPU 아키텍처와 시스템 플랫폼을 설정할 때  옵션을 받아들입니다. 설정하지 않으면 에서 적당한 값을 추측하려듭니다. / 시스템에서는 기본적으로  설정 값을 사용합니다. 또한 명령에서는  GRUB2 설치 관리자에게   옵션으로 GRUB2 부팅 파일을 찾을 때 살펴볼 디렉터리 값을 넘기기도 합니다. 기본 값은 현재 디렉터리지만 루트 공간을 옮기려 할 경우 쓸모있습니다.

BIOS용 MBR 분할
첫번째 분할 공간 이전에 충분한 공간을 두었는지 확인하십시오. 첫번째 2048 섹터에 최소한 1MiB 디스크 여유공간을 두어 주 부트 레코드를 넣어야 합니다. BIOS 부팅 파티션 이라는 추가 공간을 만드는 것이 좋습니다(만 추천하지는 않습니다). 이 공간은 정의할 필요만 있을 뿐, 포맷하지는 않습니다. 시스템을 GPT 분할 영역 구성으로 바꿀 때만 필요합니다. MBR로 그대로 두는 경우에는 필요하지 않습니다.

젠투 설치 절차를 따랐다면 BIOS 부팅 공간은 이미 존재합니다.

BIOS와 GPT
공간이 필요하면, 공간을 마운트하고 시작하십시오:

잘 동작한다면, 을 실행 출력 결과는 다음과 같습니다:

명령은 CPU 아키텍처와 시스템 플랫폼을 설정할 때  옵션을 받아들입니다. 설정하지 않으면 에서 적당한 값을 추정합니다. / 시스템에서는 기본적으로  설정 값을 사용합니다. 또한 명령에서는 GRUB2 부팅 파일을 찾을 때  살펴볼 디렉터리를 GRUB2 설치 관리자에 알려줄   옵션을 받아들이기도 합니다. 기본값은 현재 디렉터리지만 루트 공간을 옮기려 할 경우 쓸모있습니다.

BIOS용 GPT 분할
GPT 파티션 테이블이 시스템에 있을 경우,  형식(  형식의 EFI 시스템 파티션(ESP)와는 다름)의 작은 BIOS 부트 파티션이 있어야합니다. 충분한 1MiB 공간이 있어야 동작할 텐데, 2-4MiB 설정 값이 안전한 선택입니다. BIOS 부트 파티션은 부트로더 스테이지 2를 유지합니다. BIOS 부트 파티션은 파일 시스템으로 포맷할 필요가 없습니다. 명령이 기존 파일시스템을 다른 어떤 자체 파일 시스템으로 덮어씁니다.

디스크 공간을 BIOS 파티션으로 만들려면  도구를 활용하여 다음을 입력하십시오(  값을 BIOS 부팅 파티션으로 표시할 공간의 번호로 바꾸십시오!):

의 유틸리티에서는 공간 형식을  로 설정하고 레이블을  로 설정하시면 됩니다.

EFI 시스템 파티션은 필요하지 않지만, 나중에 시스템 마더보드를 UEFI 보드로 업그레이드 했을 때, BIOS 부트 파티션이 EFI 시스템 파티션으로 변환하기에 크기가 충분한 지 확인할 때 민감할 수 있습니다.

다음 내용은 유틸리티에서 GPT 방식으로 디스크 공간 분할을 수행하여 BIOS 부트 [0xEF02] 파티션과 EFI [0xEF00] 파티션으로 나눈 후,  키를 눌렀을 때의 출력 화면입니다:

동일한 설정을 활용하여, 유틸리티에서 약간 다른 문법으로 출력하겠습니다:

에서 공간을 분할하는 것은 공간 분할 유틸리티를 사용해본 사용자들에게는 이미 익숙하기 때문에 간단합니다. 를 시작한 후 초기 메뉴에서 (새로 만들기)를 입력한 후, (필요하다면) 시작, 끝 섹터를 입력하고, 공간 형식을 EFI 시스템 파티션으로 만들기 위해 로 입력하십시오.

젠투 설치 절차를 이미 따른 사용자라면 이미 적당한 공간 분할 설정을 끝냈을겁니다.

UEFI와 GPT
위치가 있는지 확인하시고 이 위치에서 분할 공간을 사용한다면 마운트했는지 확인하십시오:

명령을 실행하여 관련 파일을 에 복사하십시오. 에 GRUB2를 설치하며 핵심 이미지를 복사하고 부팅 항목에 추가할 efibootmgr를 호출합니다.

위 명령은 vfat 형식의 EFI 시스템 파티션(ESP)를 에 마운드했다 가정합니다. ESP를 레 직접 마운트했다면,  옵션을 사용하십시오.

명령은 CPU 아키텍처와 시스템 플랫폼을 설정할 때  옵션을 받아들입니다. 이 옵션을 설정하지 않으면 에서 적당한 값 추정을 시도합니다. AMD64 UEFI 부팅 시스템에서는 기본적으로  설정 값을 사용합니다. 또한 명령에서는 GRUB2 부팅 파일을 찾을 때  살펴볼 디렉터리를 GRUB2 설치 관리자에 알려줄   옵션을 받아들이기도 합니다. 기본 값은 현재 디렉터리지만 루트 공간을 옮기려 할 경우 쓸모있습니다.

UEFI용 GPT 분할
GRUB2에서 UEFI GPT 부팅을 수행할 때, 시스템은 FAT 파일 시스템으로 제공하는 EFI 파티션을 보유해야 합니다.

에 공간을 만들면  의  공간으로 EFI 공간을 바꿀 수 있습니다. GRUB2의 성공적인 UEFI 부팅 시나리오에서 루트 공간과 EFI 공간, 두 개의 공간을(swap 공간이 필요하다면 전부 세개) 다룰 수 있습니다. 이 설정을 사용하면 폴더를 (의)루트  공간에 넣고 EFI 공간을 (의)boot 폴더에 마운트 합니다. 확실히 이해하려면 하단의 파일을 살펴보십시오.

의 100MB 공간을 만들때는 여러 파일을 저장할 충분한 공간을 확보해야합니다(항목 여러개는 필요하지 않을지도 모릅니다. 대부분의 시스템은 한개만 사용할테니까요).

공간을 분할할 선택한 도구를 활용하여 저장 공간을 분할하십시오. 와  도구는 이러한 목적에 안성맞춤입니다. 유틸리티를 사용할 때는,  형식을 사용하는지 확인하십시오.

다음 예제와 같이 로 EFI 시스템 파이션에 FAT 파일 시스템을 만들고 에 추가하십시오:

대안: 기본 UEFI 펌웨어 위치 사용
시스템 UEFI 펌웨어에서 GRUB2 EFI 부트로더 파일 찾기에 실패했다면, 사용 중인 기본 부트로더 위치를 동작 방안으로 제공해야합니다. 이런 조치를 통해 efibootmgr에서 관리하는 부팅 메뉴를 피하여 기능성이 줄어들 수는 있지만, 오류에 덜 취약합니다. 이렇게 하려면 EFI 공간을 에 마운트한 후 의  파일을 로 복사하십시오. 이 예제는 64-bit UEFI 시스템을 가정하였으므로, 32-bit UEFI 시스템에서는 시스템의 환경에 따라 조절하십시오.

외부 기능
GRUB2는 강력한 부트로더로 만들어주는 수많은 기능이 있습니다. 다음과 같은 기능을 지원합니다:


 * Booting from UEFI platforms.
 * Booting from GPT partitioned drives without needing a hybrid MBR (hybrid MBR can enabled as needed for compatibility or portability).
 * Booting from a btrfs formatted partition.
 * Booting from a ZFS pool.
 * Booting directly from a btrfs raid set without needing an initramfs for early mount setup.
 * Booting directly from logical volume management (such as LVM2).
 * Booting with support for DM-RAID (RAID 0, 1, 4, 5, 6, 9 and 10).
 * Booting from encrypted devices (LUKS).

일부 몇가지 기능을 자세히 설명하도록 하겠습니다.

체인 로딩
GRUB2에서는 GRUB Legacy에 비하면 확실히 체인 로딩 모드가 바뀌었습니다. 다른 부트 로더를 체인 로딩하려면,  옵션을 사용하십시오.

체인 로딩에 대한 더 많은 내용은 체인 로딩en 하위 페이지를 살펴보십시오.

프레임버퍼 화면 사용
GRUB2에서 framebuffer 그래픽 화면을 사용하려면 GRUB에  USE 플래그를 활성화 한 상태에서 다시 이머지하십시오. 글꼴 변환 유틸리티와 함께 기본 트루타입 글꼴을 설치합니다.

에 있는 기본 GRUB2 설정 파일 설정을 진행하십시오. 예를 들면:

시스템 그래픽 카드에서 어떤 디스플레이 모드를 지원하는지 찾아보려면 GRUB2 쉘에서 다음 명령을 사용하십시오:

문제 해결
대부분의 문제는 공간 배치를 올바르게 처리했는지 확인하여 해결할 수 있습니다. 디스크의 첫번째 공간 이전에 충분한 공간을 두었는지 확인하거나, 추가적으로 BIOS 부트 파티션이 존재하는지 확인하십시오. 또한 명령으로   파일을 제대로 만들었거나, 개별 메뉴 항목을 제대로 만들었는지 검증하십시오.

GRUB2 문제 해결 내용을 찾아보려면 문제 해결en 하위 게시글을 참고하십시오.

chroot 환경의 os-prober와 UEFI
유틸리티는 마이크로소프트 윈도우 같은 대안 설치 운영체제를 찾는데 사용합니다. 제대로 활용하려면 EFI 시스템 분할 영역 시험을 목적으로 환경 설정에 들어있는 udev 정보를 찾아봐야합니다.

이 명령을실 행하여 필요한 파일을 호스트 환경에 제시하십시오(예제에서는 핸드북에서와 같이 젠투를 디렉터리에 마운트했습니다):

Installing a new kernel
Whenever a new kernel is installed, GRUB2 must be reconfigured to recognize it. This can be done using, as shown below, or can be done manually.

Note that GRUB2 only requires to be reconfigured, not reinstalled to the boot drive's Master Boot Record (MBR). On the other hand, when GRUB2 itself has been upgraded it does need to be reinstalled on the boot drive, but usually does not need to be reconfigured.

추가 참조
몇가지 개별적인 GRUB2 자료가 있습니다:


 * 체인 로딩 에서는 GRUB2에서 다른 부트로더로 부팅하는 방법을 설명합니다. 듀얼 부팅 시스템을 꾸리거나 GRUB2에서 ISO 파일을 설정해야 할 경우에 읽어보셔야 합니다.
 * 고급 저장 장치 에서는 소프트웨어 RAID, 논리 볼륨, 암호화 파일 시스템과 같은 좀 더 고급 기술을 사용한 저장장치를 사용하는 경우, GRUB2를 설치하고 사용할 때 필요한 단계를 문서화했습니다.
 * 설정 변수에서는 파일 같은 곳에서 사용하는 GRUB2 설정 변수의 완전한 목록을 문서화했습니다.
 * 문제 해결에서는 일반적인 GRUB2 오류의 목록을 (해결책과 함께) 나타냅니다.
 * 혼합형 분할 테이블

외부 자료
더 많은 정보는 다음 링크를 보십시오:


 * GNU GRUB 2 manual page
 * Network (PXE) section of GRUB2
 * Legacy BIOS issues with GPT article
 * GPT and Hybrid MBR article
 * GPT fdisk utility page
 * Arch Linux GRUB2 wiki article
 * Fedora GRUB2 wiki article : Encountering the dreaded GRUB2 boot prompt
 * ubuntu UEFI booting help
 * http://unix.stackexchange.com/questions/109272/dualboot-freebsd-gentoo-with-grub2-mbr
 * A blog post entry on locking specific GRUB2 boot entries with a password