탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 11.1 시스템 부트 및 종료 Oracle Solaris 11.1 Information Library (한국어) |
2. x86: GRand Unified Bootloader 관리(작업)
x86: GRUB 2를 지원하는 릴리스로 GRUB 레거시 시스템 업그레이드
x86: GRUB 2를 지원하는 릴리스로 GRUB 레거시 시스템을 업그레이드하는 방법
x86: GRUB 레거시 메뉴 항목을 GRUB 2로 마이그레이션하는 방법
x86: 동일한 시스템에서 GRUB 2 및 GRUB 레거시 부트 환경 유지 관리
x86: bootadm 명령을 사용하여 GRUB 구성 관리
x86: GRUB 메뉴의 지정된 부트 항목 속성을 설정하는 방법
x86: 부트 시 GRUB 메뉴를 편집하여 커널 인수 추가
x86: GRUB 메뉴를 편집하여 부트 시 -B prop=val 커널 인수 추가
x86: bootadm install-bootloader 명령을 사용하여 GRUB 2 설치
x86: 기본 위치 이외의 다른 위치에서 GRUB를 설치하는 방법
x86: GRUB 2가 설치된 시스템에 GRUB 레거시 설치
이 절에서는 다음 정보가 제공됩니다.
GRUB 2는 강력하며 모듈화가 향상된 부트 로더로, 광범위한 플랫폼 및 펌웨어 유형을 지원합니다. 따라서 BIOS 또는 UEFI 펌웨어를 사용하는 시스템에서 UEFI(Unified Extensible Firmware Interface) 펌웨어에서 부트할 수 있으며 모든 크기의 GPT(GUID 분할 영역 테이블) 분할 디스크에서 부트할 수 있습니다. 또한 GRUB 2는 UEFI에 지정된 GPT 분할 체계를 지원합니다.
GRUB 레거시와 마찬가지로 GRUB 2는 2단계 부트 프로세스를 사용합니다. GRUB 2와 GRUB 레거시의 주요 차이는 GRUB 2가 동적으로 로드된 모듈에 여러 기능을 배치한다는 점입니다. 이에 따라 핵심 GRUB 2(두번째 단계의 부트 로더) 이미지가 작아져서 로드 속도가 빨라지고 유연성이 향상되었습니다. 따라서 GRUB 기능은 부트 시 필요에 따라 로드됩니다.
GRUB 2에서는 다음과 같은 주요 변경이 소개되었습니다.
구성 변경
GRUB 2 구성은 구문상 GRUB 레거시 구성과 다릅니다. GRUB 레거시에 사용되는 menu.lst 파일이 새 구성 파일인 grub.cfg로 대체되었습니다. menu.lst 파일과 달리 grub.cfg 파일은 부트 관리 명령에 의해 자동으로 재생성됩니다. 따라서 grub.cfg 파일이 재생성될 때 편집 내용이 즉시 삭제되므로 이 파일을 직접 편집하지 않아야 합니다. x86: GRUB 2 구성에 대한 설명을 참조하십시오.
분할 영역 및 장치 이름 지정 변경
GRUB 2에서는 분할 영역 및 변경된 장치 이름 지정 체계에 0 기반 인덱스 대신 1 기반 인덱스가 사용됩니다. x86: GRUB 2 분할 영역 및 장치 이름 지정 체계를 참조하십시오.
부트 로더 및 GRUB 메뉴 관리 변경
bootadm 명령을 통해 grub.cfg 파일을 관리합니다. 이전에 menu.lst 파일을 편집하여 수행하던 대부분의 관리 작업을 이제는 수정된 하위 명령 및 새 하위 명령을 통해 수행할 수 있습니다. Oracle Solaris 부트 인스턴스에 대한 부트 속성(예: 커널 인수) 설정 및 부트 로더 설정 관리 작업을 예로 들 수 있습니다. x86: bootadm 명령을 사용하여 GRUB 구성 관리를 참조하십시오.
GRUB 메뉴 및 화면 변경
다양한 GRUB 메뉴 및 일부 작업(예: 부트 시 GRUB 메뉴를 편집하여 커널 인수 추가)이 변경되었습니다. 이러한 변경은 본 문서의 다양한 작업에서 상황에 맞게 설명됩니다.
기타 부트 로더 관련 명령 변경
이 릴리스에서는 installgrub 명령이 더 이상 사용되지 않습니다. GRUB 2를 지원하는 시스템에서 부트 로더를 설치할 때는 이 명령을 사용하지 마십시오. 이 명령을 사용하면 시스템이 부트되지 않을 수 있습니다. GRUB 2를 지원하는 릴리스를 실행 중인 경우 bootadm install-bootloader 명령을 사용하십시오. 이 명령은 installgrub 명령(x86 플랫폼의 경우) 및 installboot 명령(SPARC 플랫폼의 경우)의 기능을 대체합니다. x86: bootadm install-bootloader 명령을 사용하여 GRUB 2 설치를 참조하십시오.
installgrub 명령을 사용하여 시스템에 GRUB 레거시를 설치할 수 있지만, 이는 설치 중인 GRUB 레거시 버전이 루트 풀의 ZFS 풀 버전을 지원하며 시스템에 GRUB 2 부트 환경이 남아 있지 않은지 확인한 후에만 가능합니다. 지침은 x86: GRUB 2가 설치된 시스템에 GRUB 레거시를 설치하는 방법을 참조하십시오.
GRUB 2에서는 GRUB 레거시와 완전히 다른 구성을 사용합니다. GRUB 레거시 구성은 menu.lst 파일을 통해 관리되지만 GRUB 2에서는 menu.lst 파일을 사용하지 않습니다. 대신 GRUB 2에서는 구성 파일 grub.cfg를 사용하여 동일한 유형의 정보를 저장합니다. menu.lst 파일과 마찬가지로 grub.cfg 파일은 루트 풀(/pool-name/boot/grub)에 대한 ZFS 데이터 세트의 최상위 레벨(예: /rpool/boot/grub/grub.cfg)에 있습니다.
grub.cfg 파일의 구문은 bash 스크립팅의 하위 세트를 기반으로 합니다. 다음 예와 같이 이 구문은 menu.lst 파일에서 사용되는 지시어 스타일의 언어보다 복잡하고 강력합니다.
title title bootfs pool-name/ROOT/bootenvironment-name kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS module$ /platform/i86pc/$ISADIR/boot_archive
한편 동일한 구성이 다음과 같이 grub.cfg 파일에 저장됩니다.
menuentry "<title>" { insmod part_msdos insmod part_sunpc insmod part_gpt insmod zfs search --no-floppy --fs-uuid --set=root f3d8ef099730bafa zfs-bootfs /ROOT/<BE name>/@/ zfs_bootfs set kern=/platform/i86pc/kernel/amd64/unix echo -n "Loading ${root}/ROOT/<BE name>/@$kern: " $multiboot /ROOT/<BE name>/@/$kern $kern -B $zfs_bootfs set gfxpayload="1024x768x32;1024x768x16;800x600x16;640x480x16;640x480x15;640x480x32" insmod gzio echo -n "Loading ${root}/ROOT/<BE name>/@/platform/i86pc/amd64/boot_archive: " $module /ROOT/<BE name>/@/platform/i86pc/amd64/boot_archive }
grub.cfg 파일과 menu.lst 파일의 다른 주요 차이는 grub.cfg 파일을 편집하지 않는다는 점입니다. menu.lst 파일은 사용자가 만든 메뉴 항목과 전역 GRUB 구성 파일 설정 및 변수에 대한 수동 변경 사항을 비롯하여 시스템에 의해 자동으로 생성된 메뉴 항목을 지원합니다. 반면 grub.cfg 파일은 이 릴리스에서 새로 도입된 다양한 bootadm 하위 명령을 사용하여 관리됩니다. 다양한 bootadm 하위 명령을 통해 대부분의 부트 로더 관리 작업을 관리할 수 있습니다. x86: bootadm 명령을 사용하여 GRUB 구성 관리를 참조하십시오.
grub.cfg 파일의 다른 특징은 부트 로더 구성을 변경할 때마다 파일이 자동으로 생성된다는 점입니다. 일부 작업 도중, 그리고 특정 부트 관리 명령이 사용될 때도 파일이 자동으로 생성됩니다. 필요한 경우 새 generate-menu 하위 명령과 함께 bootadm 명령을 실행하여 새 grub.cfg 파일을 수동으로 생성할 수 있습니다. 부트 구성이 손상된 경우에만 이 하위 명령을 사용하여 새 grub.cfg 파일을 만들 수 있습니다. x86: 수동으로 GRUB 메뉴를 재생성하는 방법을 참조하십시오.
주 - grub.cfg 파일에 대한 자동 생성 방식은 설치된 시스템에만 적용됩니다.
참고로, GRUB 2 구성은 다음 파일에 저장됩니다.
grub.cfg – GRUB 2에서 사용되는 기본 구성 파일입니다.
/pool-name/boot/grub/menu.conf – Oracle Solaris에서 최종 grub.cfg 구성 파일을 생성하는 데 사용되는 파일입니다.
menu.conf 파일은 시스템에서 구문을 분석할 수 있는 형식으로 GRUB 2 구성을 저장하는 별도의 GRUB 메타 구성 파일입니다.
주 - 이 파일은 편집하지 마십시오.
/pool-name/boot/grub/custom.cfg – grub.cfg 및 menu.conf 파일과 동일한 위치에 상주하는 편집 가능한 파일입니다. custom.cfg 파일은 관리자가 만드는 것으로, 기본적으로 시스템에 없습니다. 이 파일은 기본적인 GRUB 구성에 보다 복잡한 구문(메뉴 항목 또는 기타 스크립팅 정보)을 추가하기 위한 용도로 예약됩니다.
custom.cfg 파일은 grub.cfg 파일에서 참조됩니다. custom.cfg 파일이 시스템에 존재하면 해당 파일에 있는 명령 또는 지시어가 grub.cfg 파일에 의해 처리됩니다. 자세한 내용은 x86: GRUB 구성 사용자 정의를 참조하십시오.
GRUB 레거시에 대한 장치 이름 지정 작동 방식에 익숙한 경우 GRUB 레거시 이름 지정 체계와 GRUB 2 이름 지정 체계의 차이를 파악해야 합니다. GRUB 레거시는 분할 영역 인덱스에 0 기반 이름 지정 체계를 구현하는 반면, GRUB 2에서는 분할 영역 인덱스에 1 기반 이름 지정 체계를 사용합니다.
GRUB 2 장치 이름 지정 체계에는 다음 형식이 사용됩니다.
(hdX, part-type Y, part-typeZ, ...)
분할 영역 체계는 중첩될 수 있으므로 임의의 중첩 레벨을 지원할 수 있도록 GRUB의 장치 이름 지정 체계가 변경되었습니다. GRUB는 이전 스타일의 장치 이름 지정(“(hd0,1)”) 또는 분할 영역 체계 이름을 포함하는 새로운 스타일의 장치 이름 지정을 수락합니다. 예를 들어, 다음과 같습니다.
(hd0, gpt1)
이전 예에서는 첫번째 디스크의 첫번째 GPT 분할 영역을 나타냅니다.
주 - GRUB 분할 영역 번호 지정만 변경되었으며 디스크 번호 지정은 변경되지 않았습니다. 디스크 번호는 계속 0 기반으로 유지됩니다.
GRUB 2는 파일 시스템 UUID(또는 레이블) 및 적절한 장치 또는 분할 영역 이름을 자동으로 찾는 내장 검색 명령을 사용하므로 장치 이름을 수동으로 지정할 필요가 없습니다. 다음 표에서는 GRUB에서 사용되는 분할 영역 인덱스 및 장치 이름의 예를 제공합니다.
표 2-1 GRUB 2 분할 영역 및 장치 이름 지정 체계
|
원하는 분할 영역을 가리키는 분할 영역 번호를 결정해야 할 경우 C 키(또는 메뉴 항목을 편집 중인 경우 Ctrl-C)를 눌러 GRUB 명령줄 인터프리터에 액세스하십시오. 그런 후 다음 그림과 같이 ls 명령을 실행하여 GRUB가 식별할 수 있는 모든 분할 영역을 나열하십시오.
ls 명령에 대한 -l 옵션은 다음 그림과 같이 파일 시스템 및 파일 시스템 UUID 정보를 비롯하여 각 분할 영역에 대해 보다 자세한 정보를 표시합니다.
주 - GRUB는 유형에 관계없이 0부터 장치 번호를 집계하며 IDE(Integrated Drive Electronics) 장치와 SCSI(Small Computer Systems Interface) 장치를 구별하지 않습니다.
GRUB 2와 GRUB 레거시의 여러 특성이 동일하기는 하지만 GRUB 2에서는 menu.lst 파일을 사용하지 않으므로 GRUB 2를 지원하는 시스템에서는 여러 부트 관리 작업이 다른 방식으로 수행됩니다. 예를 들어, GRUB 메뉴를 관리하고 다양한 부트 로더 관리 작업을 수행할 때는 bootadm 명령의 새 하위 명령을 사용합니다.
대부분의 bootadm 하위 명령에 새 -P pool 인수를 사용할 수 있습니다. 이 옵션을 통해 특정 루트 풀에 대한 GRUB 메뉴 및 부트 항목을 확인하거나 변경할 수 있습니다. GRUB 레거시를 지원하는 운영 체제를 실행 중인 경우 이러한 bootadm 하위 명령에 대해 -P 옵션을 사용하지 못할 수 있습니다.
예를 들어, 다음과 같이 특정 루트 풀에 대한 GRUB 메뉴를 나열합니다.
# bootadm list-menu -P pool-name
다음 표에서는 일반적인 몇 가지 GRUB 2 작업 및 명령과 GRUB 레거시 작업 및 명령을 비교합니다. 자세한 지침은 bootadm(1M) 매뉴얼 페이지 및 x86: bootadm 명령을 사용하여 GRUB 구성 관리를 참조하십시오.
표 2-2 GRUB 2 작업과 GRUB 레거시 작업 비교
|