부팅 순서와 BIOS·UEFI 시스템 초기화 흐름

전원 투입부터 POST, BIOS·UEFI, 부트로더, 커널, systemd 실행까지 이어지는 부팅 순서와 복구 흐름을 정리한다.

2026-08-14 · 최초 발행 2026-01-16

전원 인가 뒤 운영체제가 준비되는 경로

부팅순서(Boot Sequence)는 전원이 공급된 시점부터 운영체제 커널이 메모리에 적재되어 실행될 때까지의 초기화 과정이다. 하드웨어를 점검하고, 펌웨어가 부팅 대상을 찾으며, 부트로더와 커널이 차례로 제어권을 넘긴다. 마지막에는 Init 또는 systemd가 서비스를 올려 로그인 가능한 상태를 만든다.

(1) 전원 투입Power On(2) POSTPower-On Self-Test(3) BIOS/UEFI펌웨어 실행(4) 부팅 장치 탐색Boot Device Search(5) 부트로더 로딩Boot Loader(6) 커널 로딩Kernel Loading(7) Init/Systemd시스템 초기화(8) 로그인 화면Ready to Use
단계 담당 주체 저장 위치
POST 하드웨어/펌웨어 ROM/Flash
BIOS/UEFI 펌웨어 Flash Memory
부트로더 소프트웨어 MBR/ESP
커널 운영체제 디스크 파티션
Init/Systemd 운영체제 디스크 파티션

CPU가 Reset Vector에서 실행을 시작할 때

전원 버튼을 누르면 PSU(Power Supply Unit)가 안정적인 전원 공급을 시작한다. Power Good 신호가 CPU에 전달되고 Reset 상태가 해제되면, CPU의 프로그램 카운터는 Reset Vector인 0xFFFF0으로 설정된다. BIOS 또는 UEFI 코드는 이 주소에서 실행을 시작한다.

전원 버튼PSU 가동Power Good SignalCPU ResetCPU 초기 실행CS:IP = 0xFFFF0(Reset Vector)

POST가 확인하는 하드웨어 상태

POST(Power-On Self-Test)는 펌웨어가 이후 단계를 진행하기 전에 하드웨어 상태를 검사하는 절차다. CPU의 레지스터와 연산 기능, RAM 읽기·쓰기, 그래픽 카드, 입력 장치 컨트롤러, 디스크 컨트롤러 탐지가 여기에 포함된다.

YesNoPOST 시작CPU 자가 테스트메모리 테스트(RAM Check)키보드 컨트롤러비디오 카드 초기화기타 하드웨어 검사오류 발생?비프음/에러 코드POST 완료부팅 중단BIOS/UEFI 진행

AMI BIOS의 비프 코드는 POST 결과를 식별하는 단서가 된다.

비프 횟수 의미
1회 정상 POST 완료
2회 메모리 패리티 오류
3회 기본 메모리 오류
연속 RAM 오류
없음 전원/CPU 문제

BIOS는 MBR을, UEFI는 ESP를 따라간다

레거시 BIOS는 CMOS에서 시스템 설정을 읽고 부팅 장치 순서를 확인한 뒤 MBR의 부트 코드를 로드한다. 하드웨어 초기화, 인터럽트 벡터 테이블 설정도 BIOS의 역할에 속한다.

Legacy BIOS BootBIOS 실행CMOS 설정 로드부팅 순서 확인MBR 로드(첫 512바이트)부트로더 실행

MBR은 512 bytes로 구성되며, Boot Code는 446 bytes, Partition Table은 64 bytes를 차지한다. 파티션 정보는 16 bytes 단위로 4개가 들어가고, 마지막 2 bytes의 0x55AA는 유효한 MBR을 나타낸다.

MBR (512 bytes)
┌─────────────────────────────────────┐
│ Boot Code (446 bytes)               │ ← 부트로더 코드
├─────────────────────────────────────┤
│ Partition Table (64 bytes)          │ ← 4개 파티션 정보
│  - Partition 1 (16 bytes)           │
│  - Partition 2 (16 bytes)           │
│  - Partition 3 (16 bytes)           │
│  - Partition 4 (16 bytes)           │
├─────────────────────────────────────┤
│ Boot Signature: 0x55AA (2 bytes)    │ ← 유효한 MBR 표시
└─────────────────────────────────────┘

UEFI는 Pre-EFI 초기화와 DXE(Driver Execution Environment)를 거쳐 BDS(Boot Device Selection)에서 부팅 대상을 선택한다. 이어 ESP에서 EFI 애플리케이션을 읽어 운영체제 부트로더를 실행한다.

UEFI BootUEFI 펌웨어 실행Pre-EFI 초기화DXE(Driver ExecutionEnvironment)BDS(Boot Device Selection)ESP에서EFI 애플리케이션 로드OS 부트로더 실행
항목 BIOS UEFI
인터페이스 16비트 32/64비트
디스크 지원 MBR (2TB 제한) GPT (9.4ZB)
부팅 속도 느림 빠름
보안 없음 Secure Boot
드라이버 ROM 기반 EFI 드라이버
UI 텍스트 그래픽 가능

GPT는 Protective MBR과 GPT Header, Partition Entry Array를 두며, LBA 2-33의 배열에는 최대 128개 파티션이 들어간다. EFI System Partition은 ESP로 사용되며 /boot/efi에 위치한다.

GPT Disk Layout
┌─────────────────────────────────────┐
│ Protective MBR (LBA 0)              │
├─────────────────────────────────────┤
│ GPT Header (LBA 1)                  │
├─────────────────────────────────────┤
│ Partition Entry Array (LBA 2-33)    │ ← 최대 128개 파티션
├─────────────────────────────────────┤
│ Partition 1: EFI System Partition   │ ← ESP (/boot/efi)
├─────────────────────────────────────┤
│ Partition 2: OS Partition           │
├─────────────────────────────────────┤
│ ...                                 │
├─────────────────────────────────────┤
│ Backup Partition Array              │
├─────────────────────────────────────┤
│ Backup GPT Header                   │
└─────────────────────────────────────┘

부트로더가 운영체제 선택을 넘겨받는 방식

부트로더는 멀티부팅 환경에서 운영체제를 선택하고 해당 커널을 실행하는 구간이다. Linux에서는 GRUB2가 vmlinuz, initramfs, 커널 파라미터를 순서대로 준비하며, Windows 경로에서는 Windows Boot Manager가 winload.exe로 이어진다.

LinuxWindows부트로더 실행OS 선택(멀티부팅)GRUB2Windows Boot Manager커널 이미지 로드(vmlinuz)initramfs 로드커널 파라미터 전달커널 실행winload.exeWindows 커널 실행

GRUB2는 MBR 또는 ESP의 Stage 1에서 시작해 파일시스템 드라이버를 담은 Stage 1.5, /boot/grub의 Stage 2를 거친다. 이후 grub.cfg를 읽고 메뉴를 표시한 다음 커널을 로드한다.

Stage 1(MBR/ESP)Stage 1.5(파일시스템 드라이버)Stage 2(/boot/grub)grub.cfg 읽기메뉴 표시커널 로드
# /boot/grub/grub.cfg
menuentry 'Ubuntu' {
    set root='hd0,gpt2'
    linux /boot/vmlinuz-5.15.0-generic root=/dev/sda2 ro quiet
    initrd /boot/initrd.img-5.15.0-generic
}

menuentry 'Windows 10' {
    insmod chain
    set root='hd0,gpt1'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

커널과 initramfs가 루트 파일시스템에 도달하기까지

커널 이미지는 메모리에 로드된 뒤 압축 해제와 초기화를 수행한다. 메모리 관리, 인터럽트, 디바이스 드라이버 설정을 마치면 initramfs를 마운트하고 실제 루트 파일시스템으로 전환한 뒤 init 또는 systemd를 실행한다.

커널 이미지 로드(vmlinuz)커널 압축 해제커널 초기화메모리 관리 초기화인터럽트 설정디바이스 드라이버 로드initramfs 마운트루트 파일시스템 마운트init/systemd 실행

initramfs 또는 initrd는 초기 임시 루트 파일시스템이다. 디스크와 파일시스템에 필요한 드라이버를 포함하고 실제 루트 파티션 마운트를 돕는다. 암호화된 디스크를 해제하는 역할도 맡는다.

PID 1이 서비스와 로그인 환경을 준비하는 구간

커널은 PID 1을 실행한다. SysVinit 환경은 /etc/inittab을 사용하고, systemd 환경은 /lib/systemd/system을 바탕으로 default.targetmulti-user.target 또는 graphical.target에 도달한다. 서비스는 병렬로 시작되며 네트워크, 로깅, 보안 구성 뒤 로그인 매니저가 실행된다.

SysVinitSystemd커널이 PID 1 실행Init 시스템/etc/inittab/lib/systemd/systemdefault.targetmulti-user.target또는graphical.target서비스 병렬 시작네트워크, 로깅, 보안로그인 매니저
sysinit.targetbasic.targetmulti-user.targetgraphical.target파일시스템udev스왑타이머경로소켓네트워크SSH서비스디스플레이 매니저GUI
# 부팅 시간 분석
systemd-analyze
systemd-analyze blame
systemd-analyze critical-chain

# 부팅 타겟 확인/변경
systemctl get-default
systemctl set-default multi-user.target

# 서비스 상태 확인
systemctl status sshd

Secure Boot가 검증하는 신뢰 사슬

UEFI Secure Boot는 펌웨어가 부트로더의 서명을 검증하고, 부트로더가 커널 서명을 검증하는 구조다. 각 검증에서 서명이 유효하지 않으면 부팅을 거부하고, 유효하면 신뢰된 운영체제로 진행한다.

YesNoYesNoUEFI Secure Boot펌웨어 서명 검증서명 유효?부트로더 로드부팅 거부부트로더가커널 서명 검증서명 유효?커널 로드부팅 거부신뢰된 OS 실행

키 체인에서는 PK(Platform Key)가 KEK(Key Exchange Key)로 이어지고, KEK는 허용 서명 DB와 차단 서명 DBX의 갱신 권한을 가진다. DB에는 Microsoft Key, Vendor Key, Custom MOK가 들어갈 수 있으며 DBX에는 차단된 악성코드 해시가 저장된다.

Platform Key (PK)Key Exchange Key (KEK)DB (Allowed Signatures)DBX (Forbidden Signatures)Microsoft KeyVendor KeyCustom MOK차단된 악성코드 해시
  • PK (Platform Key): 펌웨어 소유자 (OEM)
  • KEK (Key Exchange Key): DB/DBX 업데이트 권한
  • DB: 허용된 서명 데이터베이스
  • DBX: 차단된 서명 데이터베이스
  • MOK: Machine Owner Key (Linux 용)

Linux와 Windows에서 이어지는 실행 경로

Linux는 UEFI 또는 BIOS에서 GRUB2로 진입한 뒤 vmlinuz, initramfs, switch_root, systemd(PID 1), default.target을 거쳐 로그인 화면에 이른다.

UEFI/BIOSGRUB2vmlinuz 로드initramfs 마운트switch_rootsystemd (PID 1)default.target로그인

주요 파일은 다음 경로에 있다.

  • /boot/vmlinuz-*: 커널 이미지
  • /boot/initrd.img-* 또는 /boot/initramfs-*: 초기 램디스크
  • /boot/grub/grub.cfg: GRUB 설정
  • /boot/efi/EFI/ubuntu/grubx64.efi: UEFI 부트로더

Windows는 UEFI에서 bootmgfw.efi를 실행하고 BCD를 읽은 뒤 winload.efi, ntoskrnl.exe, smss.exe, winlogon.exe, explorer.exe 순으로 진행한다.

UEFIWindows Boot Manager(bootmgfw.efi)BCD 읽기winload.efintoskrnl.exe(커널)smss.exe(세션 관리자)winlogon.exeexplorer.exe
  • bootmgfw.efi: Windows Boot Manager
  • BCD: Boot Configuration Data
  • winload.efi: Windows 로더
  • ntoskrnl.exe: Windows 커널

실패한 단계에서 복구 지점을 찾는 법

부팅 실패는 POST 실패, 부트로더 오류, 커널 패닉, 서비스 실패로 나누어 확인할 수 있다. POST 실패라면 메모리·CPU·전원을 점검하고, 부트로더 오류에는 GRUB 재설치나 MBR 복구를 적용한다. 커널 패닉은 복구 모드와 드라이버 확인으로, 서비스 실패는 단일 사용자 모드와 서비스 비활성화로 접근한다.

부팅 실패POST 실패부트로더 오류커널 패닉서비스 실패하드웨어 점검메모리, CPU, 전원GRUB 재설치MBR 복구복구 모드 진입드라이버 확인단일 사용자 모드서비스 비활성화
# GRUB 복구 (Live USB 부팅 후)
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt
grub-install /dev/sda
update-grub
exit

# Windows 부트로더 복구
bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd

로그와 부팅 시간 분석은 실패 지점과 지연 구간을 구분하는 데 사용한다.

# Linux 부팅 로그
journalctl -b          # 현재 부팅 로그
journalctl -b -1       # 이전 부팅 로그
dmesg                  # 커널 메시지

# 부팅 시간 분석
systemd-analyze
systemd-analyze blame
systemd-analyze critical-chain

부팅 구조를 단계별로 구분하면 장애의 원인이 하드웨어, 펌웨어, 부트로더, 커널, 서비스 중 어디에 있는지 좁힐 수 있다. UEFI의 GPT 지원과 Secure Boot, GRUB2의 멀티부팅, systemd의 서비스 병렬 시작은 현대 시스템의 부팅 경로를 구성하는 핵심 요소다.

부팅순서BIOSUEFI부트로더운영체제