E.2.2. UEFI 기반 x86 시스템에서 GRUB 및 부팅 프로세스
이 장에서는 UEFI-기반 x86 시스템을 부팅할 때 GRUB이 실행하는 구체적 역할에 대하여 논의합니다. 전반적인 부트 프로세스에 관한 내용은 F.2절. “부트 프로세스에 대한 자세한 정보”에서 참조하시기 바랍니다.
다음과 같은 단계에서 GRUB을 메로리로 읽어오게 됩니다:
- UEFI 기반 플랫폼은 시스템 저장소에 파티션 테이블을 읽어와서 ESP (EFI System Partition), 특정 GUID (globally unique identifier)로 레이블된 VFAT 파티션을 마운트합니다. ESP에는 부트로더, 유틸리티 소프트웨어와 같은 EFI 어플리케이션이 들어 있으며 소프트웨어 벤더에 있는 고유의 디렉토리에 저장되어 있습니다. Red Hat Enterprise Linux 6 파일 시스템에서 보면 ESP는
/boot/efi/
이며 Red Hat이 제공하는 EFI 소프트웨어는/boot/efi/EFI/redhat/
에 저장되어 있습니다. /boot/efi/EFI/redhat/
디렉토리에는 EFI 어플리케이션으로 EFI 펌웨어 아키텍처 용으로 컴파일된 GRUB 버전 grub.efi가 들어 있습니다. 가장 간단한 예제에서 EFI 부트 관리자는 디폴트 부트로더로grub.efi
를 선택하고 이를 메모리로 불러옵니다.ESP에 다른 EFI 어플리케이션이 들어 있는 경우 EFI 부팅 관리자는 grub.efi를 자동으로 로딩하지 않고 실행할 어플리케이션을 선택하라는 메세지를 표시할 수 있습니다.- GRUB은 시작할 운영 체제나 커널을 결정하여 메모리로 불러온 후 컴퓨터의 제어를 해당 운영 체제에 전송합니다.
각 벤더는 ESP에 있는 어플리케이션의 자체 디렉토리를 관리하기 때문에 일반적으로 체인 로딩은 UEFI 기반 시스템에서는 필요하지 않습니다. EFI 부팅 관리자는 ESP에 있는 운영 체제의 부트로더를 모두 불러올 수 있습니다.