Journey to Security/Linux OS

UEFI 펌웨어 구조와 부팅 원리

Cordilog 2026. 8. 8. 10:31

OS 설치를 진행하다 보면 펌웨어 환경의 차이를 이해해야 하는 순간이 온다.

파티션이 인식되지 않거나, 부트로더가 로드되지 않거나, Secure Boot 오류로 커스텀 커널이 실행되지 않는 문제 대부분은 UEFI 펌웨어의 동작 원리를 알아야 해결된다.

UEFI가 무엇이고, 기존 BIOS와 무엇이 다르며, ESP 파티션을 중심으로 부팅이 어떻게 진행되는지 알아보자.

1. UEFI란?

EFI(Extensible Firmware Interface)는 컴퓨터의 하드웨어와 운영체제를 연결하는 소프트웨어 인터페이스다.

수십 년간 사용되던 BIOS(Basic Input/Output System)를 대체하기 위해 개발된 현대적 펌웨어 표준이며, 현재는 인텔뿐 아니라 여러 기업이 참여해 표준화한 UEFI(Unified EFI)라는 명칭으로 훨씬 널리 불린다.

UEFI는 쉽게 말해 운영체제가 하드웨어를 인식하고 부팅을 시작할 수 있도록 돕는 '초소형 운영체제'로 동작한다고 볼 수 있다.

전원이 켜진 직후부터 OS 부트로더에 제어권을 넘기기 전까지의 모든 초기화 과정을 UEFI 펌웨어가 담당한다.

2. BIOS와 UEFI의 차이점

두 방식의 근본적인 차이는 '펌웨어가 얼마나 많은 일을 할 수 있는가'에 있다.

BIOS는 16비트 실모드에서 극도로 제한된 기능만 수행했지만, UEFI는 자체 드라이버와 애플리케이션을 실행할 수 있는 확장 가능한 실행 환경을 제공한다.

두 아키텍처가 하드웨어와 OS 사이에서 갖는 위치는 다음과 같다.

 

UEFI가 BIOS 대비 갖는 이점은 다음 네 가지로 정리된다.

 

1️⃣ 대용량 디스크 지원 (GPT 파티션 테이블)

BIOS는 MBR(Master Boot Record) 방식을 사용해 최대 2TB 디스크와 4개의 주 파티션만 인식할 수 있었다.

반면 UEFI는 GPT(GUID Partition Table) 방식을 사용해 2TB 이상의 대용량 스토리지와 이론상 무제한에 가까운 파티션을 지원한다.

LVM 파티셔닝 같은 유연한 볼륨 관리를 하려면 GPT 기반 환경이 사실상 필수다.

두 파티션 테이블의 구조 차이를 보면 왜 인식 한계가 발생하는지 명확해진다.

GPT는 파티션 테이블 헤더를 디스크 시작과 끝에 이중으로 보관한다.

한쪽이 손상되어도 백업 헤더로 복구할 수 있어, 단일 부트 섹터에 의존하는 MBR보다 안정성이 높다.

 

2️⃣ 보안 부팅 (Secure Boot)

보안 측면에서 가장 중요한 기능이다.

부팅 과정에서 실행되는 OS 부트로더와 드라이버의 암호화 서명을 검증한다.

서명되지 않았거나 변조된 악성 코드(대표적으로 루트킷)가 OS보다 먼저 실행되는 것을 원천적으로 차단한다.

부트로더 단계에서 시스템을 장악하려는 부트킷 공격을 방어하는 핵심 방어선이다.

3️⃣ 네트워크 부팅 및 자체 드라이버

OS가 로드되기 전에도 네트워크 기능, 고해상도 그래픽, 마우스를 지원하는 자체 드라이버를 로드할 수 있다.

PXE 기반 네트워크 부팅으로 대규모 서버 프로비저닝을 자동화하거나, 디스크 없이 원격 이미지로 부팅하는 환경 구성이 가능하다.

4️⃣ 빠른 부팅 속도

하드웨어 초기화 과정을 병렬로 처리해 부팅 시간을 크게 단축한다.

BIOS가 장치를 순차적으로 검사하던 것과 대비된다.

3. EFI 시스템 파티션 (ESP)

Linux나 Windows 등 운영체제를 하드디스크에 설치할 때, UEFI 시스템은 부트로더를 저장하기 위한 별도의 독립된 공간을 요구한다.

이를 EFI 시스템 파티션(ESP, EFI System Partition)이라고 한다.

UEFI 부팅의 실질적 출발점이므로 구조와 위치를 정확히 이해해야 한다.

1️⃣ ESP의 핵심 속성

🔵 포맷 형식

모든 펌웨어가 쉽게 읽을 수 있도록 범용적인 FAT32 파일 시스템으로 포맷된다.

UEFI 펌웨어는 FAT 계열 파일 시스템을 기본으로 인식하므로, ext4 같은 리눅스 전용 파일 시스템에는 부트로더를 둘 수 없다.

🔵 마운트 위치

Rocky Linux나 여타 리눅스 시스템에서는 주로 /boot/efi 디렉토리에 마운트된다.

🔵 저장되는 내용

부트로더 파일(리눅스의 grubx64.efi, 윈도우의 bootmgfw.efi), 커널 로드를 위한 필수 드라이버, 펌웨어 업데이트 파일 등이 여기에 보관된다.

2️⃣ ESP를 중심으로 한 부팅 흐름

전원을 켜면 메인보드의 UEFI 펌웨어가 하드웨어 검사를 마친 뒤 ESP 파티션을 찾아, 안에 있는 .efi 확장자 부트로더를 실행하면서 운영체제로 제어권을 넘긴다.

전원 인가부터 커널 실행까지의 순서를 시퀀스로 정리하면 다음과 같다.

 

4. Secure Boot 서명 검증 원리

Secure Boot가 실제로 어떻게 악성 부트로더를 차단하는지는 서명 검증 흐름을 봐야 이해된다.

UEFI 펌웨어는 내부에 신뢰된 인증서 데이터베이스(DB)와 폐기 목록(DBX)을 보관한다.

부트로더를 실행하기 전, 해당 바이너리의 디지털 서명을 이 데이터베이스와 대조한다.

서명이 신뢰된 인증서로 검증되고 폐기 목록에 없으면 실행을 허용하고, 서명이 없거나 변조되었거나 폐기 목록에 있으면 실행을 거부한다.

 

이 검증이 부팅 체인의 가장 앞단에서 이루어지기 때문에, OS가 로드되기 전에 시스템을 장악하려는 공격을 원천 차단할 수 있다. 커스텀 커널이나 서명되지 않은 드라이버를 실행해야 하는 경우 Secure Boot 오류가 발생하는 것도 같은 원리이며, 이때는 펌웨어에 자체 서명 키를 등록하거나 Secure Boot를 비활성화하는 방식으로 대응한다.

5. 정리

UEFI는 단순히 BIOS의 후속 버전이 아니라, 펌웨어가 확장 가능한 실행 환경을 갖추게 된 구조적 전환이다.

GPT를 통한 대용량 디스크와 대량 파티션 지원, Secure Boot를 통한 부팅 체인 무결성 보장, 자체 드라이버 기반의 네트워크 부팅이 그 결과물이다.

그리고 이 모든 동작의 실질적 중심에는 FAT32로 포맷되어 /boot/efi에 마운트되는 ESP 파티션이 있다.

OS 설치나 부트 문제 해결 과정에서 파티션 인식, 부트로더 로드, Secure Boot 오류를 마주쳤을 때, 이 구조를 기준으로 원인을 추적하면 대부분의 문제가 설명된다.