이 장에서는 Solaris 설치와 관련된 x86 기반 시스템에서의 GRUB 기반 부트에 대해 설명합니다. 이 장은 다음 내용으로 구성되어 있습니다.
GRUB는 Solaris OS에 기본 부트 로더로 채택된 오픈 소스 부트 로더입니다.
SPARC 기반 시스템에서는 GRUB 기반 부트를 사용할 수 없습니다.
부트 로더는 시스템을 켠 후 실행되는 첫 번째 소프트웨어 프로그램입니다. x86 기반 시스템을 켜면 BIOS(Basic Input/Output System)가 CPU, 메모리 및 플랫폼 하드웨어를 초기화합니다. 초기화 단계가 완료되면 BIOS는 구성된 부트 장치에서 부트 로더를 로드하고 시스템 제어를 부트 로더로 넘깁니다.
GRUB는 구성 파일에 미리 정의된 부트 옵션을 포함하는 간단한 메뉴 인터페이스가 있는 오픈 소스 부트 로더입니다. GRUB에는 다양한 부트 명령을 수행하기 위해 메뉴 인터페이스에서 액세스할 수 있는 명령줄 인터페이스도 있습니다. Solaris OS에서 GRUB 구현은 멀티부트 사양과 호환됩니다. 이 사양에 대해서는 http://www.gnu.org/software/grub/grub.html에서 자세히 설명합니다.
Solaris 커널은 멀티부트 사양과 완전히 호환되므로 GRUB를 사용하여 Solaris x86 기반 시스템을 부트할 수 있습니다. GRUB를 사용하면 여러 운영 체제를 보다 쉽게 부트하고 설치할 수 있습니다. 예를 들어, 한 시스템에서 다음 운영 체제를 개별적으로 부트할 수 있습니다.
Solaris OS
Microsoft Windows
GRUB는 Microsoft Windows 분할 영역을 감지하지만 OS를 부트할 수 있는지 확인하지 않습니다.
GRUB의 주요 이점은 파일 시스템과 커널 실행 파일 형식에 대해 직관적이므로 커널의 물리적 위치를 디스크에 기록하지 않고 운영 체제를 로드할 수 있습니다. GRUB 기반 부트를 사용하면 커널이 파일 이름, 드라이브 및 커널이 위치해 있는 분할 영역을 지정하여 로드됩니다. GRUB 기반 부트는 Solaris Device Configuration Assistant를 대체하며 GRUB 메뉴를 사용하여 부트 프로세스를 단순화합니다.
GRUB가 시스템을 제어하면 콘솔에 메뉴가 표시됩니다. GRUB 메뉴에서 다음을 수행할 수 있습니다.
항목을 선택하여 시스템을 부트합니다.
내장 GRUB 편집 메뉴를 사용하여 부트 항목을 수정합니다.
명령줄에서 OS 커널을 수동으로 로드합니다.
구성 가능한 시간 초과를 사용하여 기본 OS 항목을 부트할 수 있습니다. 임의의 키를 누르면 기본 OS 항목 부트가 중단됩니다.
GRUB 메뉴의 예를 보려면 GRUB 기본 메뉴에 대한 설명을 참조하십시오.
GRUB에서 사용하는 장치 이름 지정 규약은 이전 Solaris OS 버전과 약간 다릅니다. GRUB 장치 이름 지정 규약을 알아두면 시스템에서 GRUB를 구성할 때 드라이브와 분할 영역 정보를 올바로 지정하는 데 도움이 됩니다.
다음 표에서는 GRUB 장치 이름 지정 규약에 대해 설명합니다.
표 5–1 GRUB 장치에 대한 이름 지정 규약
장치 이름 |
설명 |
---|---|
(fd0), (fd1) |
첫 번째 디스켓, 두 번째 디스켓 |
(nd) |
네트워크 장치 |
(hd0,0), (hd0,1) |
첫 번째 bios 디스크의 첫 번째 및 두 번째 fdisk 분할 영역 |
(hd0,0,a), (hd0,0,b) |
첫 번째 bios 디스크의 첫 번째 fdisk 분할 영역에 있는 Solaris/BSD 슬라이스 0과 1 |
모든 GRUB 장치 이름을 괄호로 묶어야 합니다. 분할 영역 번호는 1이 아니라 0(제로)부터 시작합니다.
fdisk 분할 영역에 대한 자세한 내용은 System Administration Guide: Devices and File Systems의 Guidelines for Creating an fdisk Partition을 참조하십시오.
이러한 변경 사항에 대한 자세한 내용은 다음 관련 자료를 참조하십시오.
표 5–2 GRUB 기반 설치에 대한 정보가 있는 위치
주제 |
GRUB 메뉴 작업 |
추가 정보 |
---|---|---|
설치 |
Solaris OS CD 또는 DVD 매체에서 설치 | |
네트워크 설치 이미지에서 설치 |
Solaris 10 6/06 설치 설명서: 네트워크 기반 설치의 제II부, LAN(Local Area Network)을 통한 설치 |
|
네트워크 설치에 대해 DHCP 서버 구성 |
Solaris 10 6/06 설치 설명서: 네트워크 기반 설치의 DHCP 서비스를 사용하여 시스템 구성 정보를 미리 구성(작업) |
|
사용자 정의 JumpStart 프로그램을 사용하여 설치 |
Solaris 10 6/06 설치 설명서: 사용자 정의 JumpStart 및 고급 설치의 사용자 정의 JumpStart 설치 수행 |
|
Solaris Live Upgrade를 사용하여 부트 환경 활성화 또는 폴백 | ||
시스템 관리 |
GRUB에 대한 자세한 내용 및 관리 작업 |
System Administration Guide: Basic Administration의 11 장, GRUB Based Booting (Tasks) |
이 절에서는 GRUB 기반 부트의 기초와 GRUB 메뉴에 대해 설명합니다.
Solaris OS를 설치하면 기본적으로 두 개의 GRUB 메뉴 항목이 시스템에 표시됩니다. 첫 번째 항목은 Solaris OS 항목입니다. 두 번째 항목은 시스템 복구에 사용되는 비상 안전 부트 아카이브입니다. Solaris GRUB 메뉴 항목은 Solaris 소프트웨어 설치 및 업그레이드 프로세스의 일부로 자동으로 설치 및 업데이트됩니다. 이러한 항목은 OS에서 직접 관리되며 수동으로 편집하면 안 됩니다.
표준 Solaris OS 설치 중에 GRUB는 시스템 BIOS 설정을 수정하지 않고 Solaris fdisk 분할 영역에 설치됩니다. OS가 BIOS 부트 디스크에 없는 경우 다음 중 하나를 수행해야 합니다.
BIOS 설정을 수정합니다.
부트 관리자를 사용하여 Solaris 분할 영역에 부트스트랩합니다. 자세한 내용은 부트 관리자를 참조하십시오.
기본 방법은 부트 디스크에 Solaris OS를 설치하는 것입니다. 여러 개의 운영 체제를 시스템에 설치하는 경우 menu.lst 파일에 항목을 추가할 수 있습니다. 이러한 항목은 다음에 시스템을 부트하면 GRUB 메뉴에 표시됩니다.
여러 운영 체제에 대한 자세한 내용은 System Administration Guide: Basic Administration의 How Multiple Operating Systems Are Supported in the GRUB Boot Environment를 참조하십시오.
GRUB 기반 네트워크 부트를 수행하려면 PXE 클라이언트에 대해 구성된 DHCP 서버와 tftp 서비스를 제공하는 설치 서버가 있어야 합니다. DHCP 서버는 DHCP 클래스인 PXEClient 및 GRUBClient에 응답할 수 있어야 합니다. DHCP 응답은 다음 정보를 포함해야 합니다.
파일 서버의 IP 주소
부트 파일의 이름(pxegrub)
rpc.bootparamd. 일반적으로 네트워크 부트를 수행하기 위한 서버측의 요구 사항으로, GRUB 기반 네트워크 부트에는 필요하지 않습니다.
PXE 또는 DHCP 서버를 사용할 수 없는 경우 CD-ROM이나 로컬 디스크에서 GRUB를 로드할 수 있습니다. 그런 다음 GRUB에서 수동으로 네트워크를 구성하고 파일 서버로부터 멀티부트 프로그램과 부트 아카이브를 다운로드할 수 있습니다.
자세한 내용은 Solaris 10 6/06 설치 설명서: 네트워크 기반 설치의 PXE를 사용하여 네트워크를 통해 부팅 및 설치 개요를 참조하십시오.
x86 기반 시스템을 부트하면 GRUB 메뉴가 표시됩니다. 이 메뉴의 부트 항목 목록에서 선택할 수 있습니다. 부트 항목은 시스템에 설치된 OS 인스턴스입니다. GRUB 메뉴는 구성 파일인 menu.lst 파일을 기반으로 합니다. menu.lst 파일은 Solaris 설치 프로그램에 의해 작성되며 설치 후에 수정할 수 있습니다. menu.lst 파일에 따라 GRUB 메뉴에 표시되는 OS 인스턴스 목록이 결정됩니다.
Solaris OS를 설치하거나 업그레이드하면 GRUB 메뉴가 자동으로 업데이트됩니다. Solaris OS는 새 부트 항목으로 표시됩니다.
Solaris OS가 아닌 OS를 설치한 경우 menu.lst 구성 파일을 수정하여 새 OS 인스턴스를 포함해야 합니다. 새 OS 인스턴스를 추가하면 다음에 시스템을 부트할 때 새 부트 항목이 GRUB 메뉴에 표시됩니다.
다음 예에서 GRUB 기본 메뉴는 Solaris 및 Microsoft Windows 운영 체제를 표시합니다. second_disk라는 Solaris Live Upgrade 부트 환경도 표시됩니다. 각 메뉴 항목에 대한 설명은 다음을 참조하십시오.
GNU GRUB version 0.95 (616K lower / 4127168K upper memory) +-------------------------------------------------------------------+ |Solaris | |Solaris failsafe | |second_disk | |second_disk failsafe | |Windows | +-------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. |
Solaris OS를 지정합니다.
Solaris OS가 손상된 경우 복구에 사용할 수 있는 부트 아카이브를 지정합니다.
Solaris Live Upgrade 부트 환경을 지정합니다. second_disk 부트 환경은 Solaris OS의 복사본으로 작성되었으며luactivate 명령을 통해 업그레이드 및 활성화되었습니다. 부트 시 부트 환경을 사용할 수 있습니다.
Microsoft Windows OS를 지정합니다. GRUB는 이러한 분할 영역을 감지하지만 OS를 부트할 수 있는지 확인하지 않습니다.
GRUB menu.lst 파일은 GRUB 기본 메뉴의 내용을 나열합니다. GRUB 기본 메뉴는 Solaris Live Upgrade 부트 환경을 포함하여 시스템에 설치된 모든 OS 인스턴스에 대한 부트 항목을 나열합니다. Solaris 소프트웨어 업그레이드 프로세스는 이 파일의 모든 변경 사항을 보존합니다.
Solaris Live Upgrade 항목과 더불어 menu.lst 파일에 대한 모든 개정이 GRUB 기본 메뉴에 표시됩니다. 파일 변경 사항은 다음에 시스템을 다시 부트할 때 적용됩니다. 다음과 같은 이유로 이 파일을 변경할 수 있습니다.
Solaris가 아닌 운영 체제에 대한 항목을 GRUB 메뉴에 추가하기 위해
GRUB 메뉴에서 기본 OS를 지정하는 등 부트 동작을 사용자 정의하기 위해
GRUB menu.lst 파일을 사용하여 Solaris Live Upgrade 항목을 수정하지 마십시오. 이렇게 하면 Solaris Live Upgrade가 실패할 수 있습니다.
menu.lst 파일을 사용하여 커널 디버거를 사용한 부트 등의 부트 동작을 사용자 정의할 수도 있지만 기본 사용자 정의 방법은 eeprom 명령을 사용하는 것입니다. menu.lst 파일을 사용하여 사용자 정의하는 경우 소프트웨어 업그레이드 중에 Solaris OS 항목을 수정할 수 있습니다. 이 경우 파일 변경 사항이 손실됩니다.
eeprom 명령의 사용 방법에 대한 자세한 내용은 System Administration Guide: Basic Administration의 How to Set Solaris Boot Parameters by Using the eeprom Command를 참조하십시오.
menu.lst 파일의 예제는 다음과 같습니다.
default 0 timeout 10 title Solaris root (hd0,0,a) kernel /platform/i86pc/multiboot -B console=ttya module /platform/i86pc/boot_archive title Solaris failsafe root (hd0,0,a) kernel /boot/multiboot -B console=ttya -s module /boot/x86.miniroot.safe #----- second_disk - ADDED BY LIVE UPGRADE - DO NOT EDIT ----- title second_disk root (hd0,1,a) kernel /platform/i86pc/multiboot module /platform/i86pc/boot_archive title second_disk failsafe root (hd0,1,a) kernel /boot/multiboot kernel/unix -s module /boot/x86.miniroot-safe #----- second_disk -------------- END LIVE UPGRADE ------------ title Windows root (hd0,0) chainloader -1 |
시간 초과가 만료되면 부트할 항목을 지정합니다. 기본값을 변경하려면 숫자를 변경하여 목록에서 다른 항목을 지정할 수 있습니다. 첫 번째 제목의 카운트는 0부터 시작합니다. 예를 들어, 자동으로 second_disk 부트 환경으로 부트하려면 기본값을 2로 변경합니다.
기본 항목을 부트하기 전에 사용자를 대기할 시간(초)을 지정합니다. 시간 초과를 지정하지 않으면 항목을 선택해야 합니다.
운영 체제의 이름을 지정합니다.
Solaris Live Upgrade 부트 환경의 경우 OS name은 새 부트 환경을 작성할 때 지정한 이름입니다. 이전 예에서 Solaris Live Upgrade 부트 환경의 이름은 second_disk로 지정되었습니다.
비상 안전 부트 아카이브인 경우 이 부트 아카이브는 주 OS가 손상되었을 때 복구에 사용됩니다. 이전 예에서 Solaris failsafe와 second_disk failsafe는 Solaris 및 second_disk 운영 체제에 대한 복구 부트 아카이브입니다.
파일을 로드할 디스크, 분할 영역 및 슬라이스를 지정합니다. GRUB가 자동으로 파일 시스템 유형을 감지합니다.
멀티부트 프로그램을 지정합니다. 커널 명령은 항상 멀티부트 프로그램 앞에 있어야 합니다. 멀티부트 이후의 문자열은 해석되지 않고 Solaris OS로 전달됩니다.
여러 운영 체제에 대한 자세한 내용은 System Administration Guide: Basic Administration의 How Multiple Operating Systems Are Supported in the GRUB Boot Environment를 참조하십시오.
항상 bootadm 명령을 사용하여 GRUB 메뉴의 menu.lst 파일을 찾아야 합니다. list-menu 하위 명령은 활성 GRUB 메뉴를 찾습니다. menu.lst 파일은 시스템에 설치된 모든 운영 체제를 나열합니다. 이 파일의 내용에 따라 GRUB 메뉴에 표시되는 운영 체제 목록이 결정됩니다. 이 파일을 변경하려면 x86: GRUB 메뉴의 menu.lst 파일 찾기(작업)를 참조하십시오.
GRUB 메뉴를 업데이트할 수 있습니다. 예를 들어 기본 OS 부트 속도에 대한 기본 시간을 변경할 수 있습니다. 또는 GRUB 메뉴에 다른 OS를 추가할 수도 있습니다.
일반적으로 활성 GRUB 메뉴의 menu.lst 파일은 /boot/grub/menu.lst에 있습니다. GRUB menu.lst 파일이 다른 위치에 있는 경우도 있습니다. 예를 들어, Solaris Live Upgrade를 사용하는 시스템의 경우 GRUB menu.lst 파일이 현재 부트 환경을 실행하고 있지 않은 부트 환경에 있을 수 있습니다. 또는 x86 부트 분할 영역을 사용하여 시스템을 업그레이드한 경우 menu.lst 파일이 /stubboot 디렉토리에 있을 수도 있습니다. 활성 GRUB menu.lst 파일만 시스템을 부트하는 데 사용됩니다. 시스템을 부트할 때 표시되는 GRUB 메뉴를 수정하려면 활성 GRUB menu.lst 파일을 수정해야 합니다. 다른 GRUB menu.lst 파일을 변경하면 시스템을 부트할 때 표시되는 메뉴에 영향을 주지 않습니다. 활성 GRUB menu.lst 파일의 위치를 확인하려면 bootadm 명령을 사용합니다. list-menu 하위 명령은 활성 GRUB 메뉴의 위치를 표시합니다. 다음 절차에서는 GRUB 메뉴의 menu.lst 파일 위치를 확인합니다.
bootadm 명령에 대한 자세한 내용은 bootadm(1M) 매뉴얼 페이지를 참조하십시오.
다음 절차에서는 시스템에 Solaris 및 Solaris Live Upgrade 부트 환경인 second_disk의 두 개 운영 체제가 있습니다. Solaris OS가 부트되었으며 GRUB 메뉴가 포함되어 있습니다.
수퍼유저 또는 동등한 역할의 사용자로 로그인합니다.
역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. 역할에 대한 자세한 내용은 System Administration Guide: Security Services의 Configuring RBAC (Task Map)를 참조하십시오.
menu.lst 파일을 찾으려면 다음을 입력합니다.
# /sbin/bootadm list-menu |
파일의 위치와 내용이 표시됩니다.
The location for the active GRUB menu is: /boot/grub/menu.lst default 0 timeout 10 0 Solaris 1 Solaris failsafe 2 second_disk 3 second_disk failsafe |
다음 절차에서는 시스템에 Solaris 및 Solaris Live Upgrade 부트 환경인 second_disk의 두 개 운영 체제가 있습니다. 이 예에서는 menu.lst 파일이 현재 실행 중인 부트 환경에 없습니다. second_disk 부트 환경이 부트되었습니다. Solaris 부트 환경에 GRUB 메뉴가 포함되어 있습니다. Solaris 부트 환경은 마운트되지 않습니다.
수퍼유저 또는 동등한 역할의 사용자로 로그인합니다.
역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. 역할에 대한 자세한 내용은 System Administration Guide: Security Services의 Configuring RBAC (Task Map)를 참조하십시오.
menu.lst 파일을 찾으려면 다음을 입력합니다.
# /sbin/bootadm list-menu |
파일의 위치와 내용이 표시됩니다.
The location for the active GRUB menu is: /dev/dsk/device_name(not mounted) The filesystem type of the menu device is <ufs> default 0 timeout 10 0 Solaris 1 Solaris failsafe 2 second_disk 3 second_disk failsafe |
menu.lst 파일을 포함하는 파일 시스템이 마운트되지 않으므로 파일 시스템을 마운트합니다. UFS 파일 시스템과 장치 이름을 지정합니다.
# /usr/sbin/mount -F ufs /dev/dsk/device_name /mnt |
여기서 device_name은 마운트할 부트 환경의 디스크 장치에서 루트(/) 파일 시스템의 위치를 지정합니다. 장치 이름은 /dev/dsk/cwtx dysz의 형식으로 입력됩니다. 예를 들면 다음과 같습니다.
# /usr/sbin/mount -F ufs /dev/dsk/c0t1d0s0 /mnt |
/mnt/boot/grub/menu.lst에서 GRUB 메뉴에 액세스할 수 있습니다.
파일 시스템을 마운트 해제합니다.
# /usr/sbin/umount /mnt |
부트 환경이나 부트 환경의 파일 시스템을 마운트한 경우에는 사용 후에 파일 시스템을 마운트 해제해야 합니다. 이러한 파일 시스템을 마운트 해제하지 않으면 부트 환경에서의 이후 Solaris Live Upgrade 작업이 실패할 수 있습니다.
다음 절차에서는 시스템에 Solaris 및 Solaris Live Upgrade 부트 환경인 second_disk의 두 개 운영 체제가 있습니다. second_disk 부트 환경이 부트되었습니다. Solaris 부트 환경에 GRUB 메뉴가 포함되어 있습니다. Solaris 부트 환경은 /.alt.Solaris에 마운트됩니다.
수퍼유저 또는 동등한 역할의 사용자로 로그인합니다.
역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. 역할에 대한 자세한 내용은 System Administration Guide: Security Services의 Configuring RBAC (Task Map)를 참조하십시오.
menu.lst 파일을 찾으려면 다음을 입력합니다.
# /sbin/bootadm list-menu |
파일의 위치와 내용이 표시됩니다.
The location for the active GRUB menu is: /.alt.Solaris/boot/grub/menu.lst default 0 timeout 10 0 Solaris 1 Solaris failsafe 2 second_disk 3 second_disk failsafe |
GRUB 메뉴를 포함하는 부트 환경이 이미 마운트되어 있으므로 /.alt.Solaris/boot/grub/menu.lst에서 menu.lst 파일에 액세스할 수 있습니다.
다음 절차에서는 시스템에 Solaris 및 Solaris Live Upgrade 부트 환경인 second_disk의 두 개 운영 체제가 있습니다. second_disk 부트 환경이 부트되었습니다. 시스템이 업그레이드되었으며 x86 부트 분할 영역이 유지됩니다. 부트 분할 영역은 /stubboot 에 마운트되며 GRUB 메뉴를 포함합니다. x86 부트 분할 영역에 대한 자세한 내용은 x86: 분할 권장 사항을 참조하십시오.
수퍼유저 또는 동등한 역할의 사용자로 로그인합니다.
역할에는 권한 부여 및 권한이 있는 명령이 포함됩니다. 역할에 대한 자세한 내용은 System Administration Guide: Security Services의 Configuring RBAC (Task Map)를 참조하십시오.
menu.lst 파일을 찾으려면 다음을 입력합니다.
# /sbin/bootadm list-menu |
파일의 위치와 내용이 표시됩니다.
The location for the active GRUB menu is: /stubboot/boot/grub/menu.lst default 0 timeout 10 0 Solaris 1 Solaris failsafe 2 second_disk 3 second_disk failsafe |
/stubboot/boot/grub/menu.lst에서 menu.lst 파일에 액세스할 수 있습니다.