JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
Oracle Solaris 11.1 시스템 부트 및 종료     Oracle Solaris 11.1 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

1.  시스템 부트 및 종료(개요)

2.  x86: GRand Unified Bootloader 관리(작업)

x86: GRUB 2 소개

x86: GRUB 2 구성에 대한 설명

x86: GRUB 2 분할 영역 및 장치 이름 지정 체계

x86: GRUB 2 및 GRUB 레거시 작업 비교

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 메뉴를 유지 관리하는 방법

x86: GRUB 메뉴의 지정된 부트 항목 속성을 설정하는 방법

x86: GRUB 메뉴에 부트 항목을 추가하는 방법

x86: GRUB 메뉴에서 부트 항목을 제거하는 방법

x86: 부트 시 GRUB 메뉴를 편집하여 커널 인수 추가

x86: GRUB 메뉴를 편집하여 부트 시 -B prop=val 커널 인수 추가

부트 시 Oracle Solaris 콘솔 재지정

x86: GRUB 구성 사용자 정의

x86: 고급 GRUB 관리 및 문제 해결

x86: bootadm install-bootloader 명령을 사용하여 GRUB 2 설치

x86: 부트 로더를 설치하는 방법

x86: 루트 풀 복원 후 부트 로더를 설치하는 방법

x86: 기본 위치 이외의 다른 위치에서 GRUB를 설치하는 방법

x86: GRUB 2가 설치된 시스템에 GRUB 레거시 설치

x86: GRUB 2가 설치된 시스템에 GRUB 레거시를 설치하는 방법

3.  시스템 종료(작업)

4.  시스템 부트(작업)

5.  네트워크에서 시스템 부트(작업)

6.  시스템 부트 문제 해결(작업)

색인

x86: GRUB 2 소개

이 절에서는 다음 정보가 제공됩니다.

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에서는 다음과 같은 주요 변경이 소개되었습니다.

x86: GRUB 2 구성에 대한 설명

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 구성은 다음 파일에 저장됩니다.

x86: GRUB 2 분할 영역 및 장치 이름 지정 체계

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 분할 영역 및 장치 이름 지정 체계

장치 이름
설명
(hd0, msdos1)
첫번째 디스크의 첫번째 DOS 분할 영역을 지정합니다.
(hd0, gpt2)
디스크의 두번째 GPT 분할 영역을 지정합니다.
현재 릴리스가 설치될 원형적 분할 영역의 예입니다.
(hd0, msdos1, sunpc1)
첫번째 디스크의 첫번째 DOS 분할 영역에 저장되는 Oracle Solaris 분할 영역의 첫번째 VTOC 슬라이스를 지정합니다.
이 릴리스 이전 버전의 Oracle Solaris가 설치될 원형적 분할 영역의 예입니다.

원하는 분할 영역을 가리키는 분할 영역 번호를 결정해야 할 경우 C 키(또는 메뉴 항목을 편집 중인 경우 Ctrl-C)를 눌러 GRUB 명령줄 인터프리터에 액세스하십시오. 그런 후 다음 그림과 같이 ls 명령을 실행하여 GRUB가 식별할 수 있는 모든 분할 영역을 나열하십시오.

image:이 그림은 장치에 대한 정보를 검색할 수 있는 GRUB 2 명령 인터프리터 화면입니다.

ls 명령에 대한 -l 옵션은 다음 그림과 같이 파일 시스템 및 파일 시스템 UUID 정보를 비롯하여 각 분할 영역에 대해 보다 자세한 정보를 표시합니다.

image:이 그림은 GRUB가 식별한 장치를 표시하는 명령 출력을 보여 주는 GRUB 2 명령 인터프리터 화면입니다.

주 - GRUB는 유형에 관계없이 0부터 장치 번호를 집계하며 IDE(Integrated Drive Electronics) 장치와 SCSI(Small Computer Systems Interface) 장치를 구별하지 않습니다.


x86: GRUB 2 및 GRUB 레거시 작업 비교

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 레거시 작업 비교

작업 또는 명령
GRUB 2 방법
GRUB 레거시 방법
GRUB 메뉴의 현재 부트 항목을 나열합니다.
bootadm list-menu

항목 번호 또는 이름별로 개별 항목을 확인할 수도 있습니다. 이름별로 항목을 확인하려면 다음 명령을 사용합니다.

bootadm list-menu entry-title

이름에 공백이 있을 경우 따옴표를 사용하여 이름이 여러 인수로 구문 분석되지 않도록 보호해야 합니다. 예를 들어, 다음과 같습니다.

bootadm list-menu `This is a menu entry with a title'

항목 번호별로 항목을 확인하려면 다음 명령을 사용합니다.

bootadm list-menu -i entry-number

bootadm list-menu
시스템의 각 루트 풀의 Oracle Solaris 부트 환경에 대한 개별 메뉴 항목과 기본 부트 로더 설정을 포함하는 새 GRUB 구성 파일(grub.cfg)을 생성합니다.
bootadm generate-menu

시스템에 기존 grub.cfg 파일이 있을 경우 generate-menu 하위 명령과 함께 -f 옵션을 사용합니다. 이 구문은 기존 GRUB 2 구성을 삭제하고 새 구성으로 대체합니다.

-P 옵션을 사용하여 시스템의 특정 루트 풀에 대해 새 GRUB 2 구성 파일을 생성할 경우 생성되는 grub.cfg 파일은 해당 루트 풀에 대한 최상위 레벨 ZFS 데이터 세트에 저장됩니다.

수동으로 menu.lst 파일을 편집하여 새 정보를 추가합니다.
GRUB 메뉴에 새 항목을 추가합니다.
항목 번호를 지정하여 항목을 추가하려면 다음 명령을 사용합니다.

bootadm add-entry -i entry-number

이름을 지정하여 항목을 추가하려면 다음 명령을 사용합니다.

bootadm add-entry entry-title

수동으로 menu.lst 파일에 항목을 추가합니다.
GRUB 메뉴의 항목을 변경합니다.
항목 번호를 지정하여 항목을 변경하려면 다음 명령을 사용합니다.

bootadm change-entry -i entry-number key=value

이름을 지정하여 항목을 변경하려면 다음 명령을 사용합니다.

bootadm change-entry entry-title key=value

이름에 공백이 있을 경우 따옴표를 사용하여 이름이 여러 인수로 구문 분석되지 않도록 보호해야 합니다.

이 하위 명령은 개별 부트 항목을 변경(예: Oracle Solaris 콘솔 장치를 커널 인수로 지정)하는 데 사용됩니다. 항목 이름이 여러 메뉴 항목과 일치할 경우 첫번째 항목만 수정됩니다.

이전 릴리스에서 GRUB 레거시 항목을 변경한 것과 마찬가지로 부트 시 GRUB 메뉴를 편집하여 부트 항목을 변경할 수도 있습니다.

수동으로 menu.lst 파일을 편집하여 변경 사항이 지속되도록 합니다.

또는 부트 시 GRUB 메뉴를 편집하여 다음 번에 시스템이 부트될 때까지만 변경 사항이 지속되도록 합니다.

GRUB 메뉴에서 항목을 제거합니다.
항목 번호를 지정하여 항목을 제거하려면 다음 명령을 사용합니다.

bootadm remove-entry -i entry-number

이름을 지정하여 항목을 제거하려면 다음 명령을 사용합니다.

bootadm remove-entry entry-title

이름을 지정할 경우 해당 이름을 사용하는 모든 항목이 제거됩니다.

수동으로 menu.lst 파일에서 항목을 제거합니다.
GRUB 메뉴를 관리합니다. 예를 들어, 부트할 기본 GRUB 메뉴 항목을 설정합니다.
bootadm set-menu key= value
bootadm set-menu
GRUB 메뉴에 사용자 정의 메뉴 항목(예: Linux 항목)을 추가합니다.
적절한 GRUB 2 구성 파일 구문이 사용되도록 custom.cfg 파일에 항목을 추가합니다. x86: GRUB 구성 사용자 정의를 참조하십시오.

주 - 먼저 이 파일을 만들어야 합니다.


Oracle Solaris를 설치한 후 menu.lst 파일에 정보를 추가합니다.
부트 시 GRUB 메뉴를 편집하여 부트 인수를 추가합니다.
1. 화살표 키로 원하는 메뉴 항목을 선택한 다음 e를 입력하여 부트 프로세스를 중단합니다.

2. 지정된 부트 항목에 대한 $multiboot 행 끝에 부트 인수를 추가합니다.

3. Ctrl-X를 눌러 수정된 항목에서 부트합니다. 시스템 콘솔이 직렬 장치에 있을 경우 UEFI 시스템에서 F10 키가 제대로 인식되지 않을 수 있습니다. 이 경우 Ctrl-X를 사용합니다.


주 - 메뉴 항목을 편집하는 동안 Esc 키를 누르면 메뉴 항목 목록으로 돌아가며 모든 편집 내용이 무시됩니다.


1. e를 입력하여 부트 프로세스를 중단합니다.

2. 지정된 부트 항목에 대한 kernel$ 행 끝에 부트 인수를 추가합니다.

3. Return 키를 누른 다음 b를 입력하여 시스템을 부트합니다.

부트 로더 프로그램을 설치합니다.
bootadm install-bootloader

이 명령은 자동으로 미러링된 루트 풀의 모든 장치에 부트 로더를 설치합니다.

installgrub(x86 기반 시스템의 경우) 및 installboot(SPARC 기반 시스템의 경우)를 사용합니다.
UEFI 또는 BIOS 펌웨어에 대한 부트 분할 영역을 만듭니다.
zpool create 명령의 새 -B 옵션을 사용하여 자동으로 펌웨어에 적합한 부트 분할 영역과 새 ZFS 풀이 저장될 ZFS 데이터 분할 영역을 동시에 만듭니다.

루트 풀에 디스크가 연결되면 자동으로 적절한 부트 분할 영역이 만들어지고 해당 디스크에 부트 로더가 설치됩니다. Oracle Solaris 11.1 관리: ZFS 파일 시스템의 4 장, ZFS 루트 풀 구성 요소 관리를 참조하십시오.

GRUB 레거시는 BIOS 펌웨어 사용하는 시스템을 지원하므로 별도의 부트 분할 영역이 필요하지 않습니다.