PC 부팅 과정: 전원 인가부터 운영체제 실행까지
PC 부팅 과정에서 BIOS·UEFI, POST, 부트로더, MBR·GPT, Secure Boot가 운영체제 실행까지 맡는 역할을 정리한다.
2026-08-14 · 최초 발행 2025-12-25
전원 버튼 뒤에서 이어지는 제어권의 이동
PC의 부팅은 전원 인가부터 운영체제가 메모리에 올라가 사용자 환경을 제공할 때까지의 초기화 절차다. 하드웨어를 준비하고, 정상 상태를 확인하며, 부트로더를 거쳐 커널로 제어권을 넘긴다. 어느 단계든 실패하면 다음 단계로 진행할 수 없으므로, 부팅 흐름을 알면 장애 원인을 좁히고 시스템 구성을 점검하는 데 도움이 된다.
Bootstrap에서 유래한 부팅은 시스템이 스스로 실행 가능한 상태를 만드는 과정이다. 하드웨어와 소프트웨어의 인터페이스를 구성하고 시스템 무결성을 확인하는 순차적 작업으로 볼 수 있다.
펌웨어에서 커널까지 이어지는 흐름
전원 공급 장치(PSU)가 각 컴포넌트에 전력을 공급하고, 안정적인 전력 상태를 뜻하는 Power Good 신호를 CPU에 전달한다. CPU는 초기 상태로 리셋된 뒤 첫 명령어 주소로 이동한다. x86 시스템에서는 0xFFFFFFF0 리셋 벡터부터 실행을 시작한다.
그 다음 BIOS 또는 UEFI가 실행된다. BIOS는 ROM 또는 Flash 메모리에 저장된 펌웨어로, 하드웨어 초기화와 기본 입출력 서비스를 제공하며 16비트 리얼 모드에서 동작한다. UEFI는 BIOS를 대체하는 기술로 32/64비트 모드를 지원하고, GUI 기반 설정 화면과 마우스 사용, GPT 기반 2TB 이상 디스크 부팅을 지원한다.
POST는 CPU 레지스터와 연산 기능, RAM 용량과 기본 읽기·쓰기, 키보드·마우스 연결, 그래픽 어댑터, HDD·SSD·CD-ROM·USB 같은 저장장치를 검사하는 자가 진단 단계다. 실패 상황은 특정 비프음 패턴이나 화면의 오류 코드·메시지로 표시될 수 있다.
부트 우선순위와 실행 가능한 장치
펌웨어는 설정된 부트 시퀀스에 따라 USB, HDD, SSD, CD-ROM, 네트워크(PXE)를 차례로 확인한다. 부트 섹터의 0x55AA 시그니처를 확인해 부팅 가능 여부를 판단하고, 조건을 충족하지 못한 장치는 건너뛰어 다음 후보를 시도한다.
부팅 장치가 선택되면 저장 매체 첫 번째 섹터에 있는 부트 섹터를 읽는다. 부트 섹터는 512바이트이며 MBR 또는 GPT의 보호 MBR 영역에 위치하고, 부트로더 코드와 파티션 테이블을 담는다.
MBR은 다음처럼 나뉜다.
- 446바이트: 부트스트랩 코드
- 64바이트: 파티션 테이블, 4개 파티션 정보
- 2바이트: 부트 시그니처, 0x55AA
MBR의 부트스트랩 코드는 실제 부트로더를 메모리에 로드하고, 부트로더는 활성 파티션의 VBR(Volume Boot Record)을 실행한다.
부트로더가 커널을 준비하는 방식
GRUB은 Linux 시스템의 표준 부트로더로 멀티부팅과 설정 파일 기반 구성을 지원한다. Windows Boot Manager는 BCD(Boot Configuration Data) 저장소를 사용하며 UEFI와 Legacy 모드를 지원한다. LILO는 초기 Linux 부트로더였고 현재는 GRUB으로 대체되었다. systemd-boot는 systemd와 통합되는 UEFI 전용 경량 부트로더다.
부트로더는 펌웨어와 운영체제 커널 사이에서 제어권을 전달한다. 설정을 읽고 부팅 메뉴를 제공한 뒤, 선택된 운영체제의 커널 이미지와 필요한 파일을 메모리에 적재한다.
커널 로드 단계에서는 initrd/initramfs를 통해 필수 드라이버를 불러오고, 메모리 관리·프로세스 관리·장치 드라이버를 초기화한다. 실제 루트 파티션을 마운트한 뒤 첫 사용자 프로세스인 Init 프로세스(PID 1)를 실행한다. 이어 시스템 서비스와 데몬이 시작되고 로그인 화면이 나타난다. GUI 환경을 쓰는 시스템에서는 데스크톱 환경도 이 단계에서 로드된다.
BIOS와 UEFI가 다른 지점
| 특성 | BIOS | UEFI |
|---|---|---|
| 비트 모드 | 16비트 리얼 모드 | 32/64비트 보호 모드 |
| 부팅 속도 | 상대적으로 느림 | 빠른 부팅 지원 |
| 디스크 지원 | MBR (최대 2TB) | GPT (최대 9.4ZB) |
| 파티션 수 | 최대 4개 (기본) | 최대 128개 |
| 인터페이스 | 텍스트 기반 | GUI 지원, 마우스 사용 |
| 보안 | 제한적 | Secure Boot 지원 |
| 네트워크 | 제한적 | 내장 네트워크 스택 |
| 확장성 | 제한적 | 모듈식 설계, 드라이버 지원 |
MBR의 제약과 GPT의 복구 구조
MBR은 디스크 첫 번째 섹터인 LBA 0에 있으며 크기는 512바이트다. 446바이트의 부트스트랩 코드, 64바이트의 파티션 테이블 4개 엔트리, 2바이트의 0x55AA 부트 시그니처로 구성된다. 최대 2TB 디스크와 최대 4개 주 파티션이라는 제약이 있다.
GPT(GUID Partition Table)는 디스크 시작과 끝에 중복 저장된다. 보호 MBR, GPT 헤더, 파티션 엔트리 배열로 구성되며, 최대 9.4ZB 디스크와 최대 128개 파티션을 지원한다. CRC32 체크섬으로 데이터 무결성을 보장하고 백업 GPT를 통해 복구할 수 있다.
Windows와 Linux가 사용자 환경에 도달하는 경로
Windows는 Windows Boot Manager(bootmgr)에서 시작해 winload.exe가 Windows 커널 로더 역할을 맡는다. ntoskrnl.exe가 Windows NT 커널을 로드한 뒤 smss.exe가 세션 관리자를 시작하고, csrss.exe와 winlogon.exe를 거쳐 explorer.exe가 Windows 셸을 시작한다.
Linux에서는 GRUB이 실행되어 메뉴를 표시하고, 압축된 Linux 커널인 vmlinuz와 initramfs/initrd를 적재한다. 커널이 장치 드라이버와 메모리 관리를 초기화한 후 init 또는 systemd가 PID 1로 실행된다. 런레벨 또는 타겟에 따라 시스템 서비스가 시작되고, getty 또는 디스플레이 매니저가 로그인 프롬프트를 제공한다.
증상으로 부팅 장애를 좁히기
| 증상 | 원인 | 해결 방법 |
|---|---|---|
| POST 비프음 | 하드웨어 오류 | 비프 코드 확인, 해당 부품 점검 |
| "No bootable device" | 부팅 장치 없음 | BIOS 부트 순서 확인, 디스크 연결 점검 |
| "Missing operating system" | MBR/부트로더 손상 | 부트로더 복구, MBR 재작성 |
| 무한 재부팅 | 커널 패닉, 드라이버 문제 | 안전 모드 부팅, 복구 모드 사용 |
| 검은 화면 | 그래픽 드라이버 문제 | 기본 VGA 모드 부팅, 드라이버 재설치 |
Secure Boot가 부팅 체인에 더하는 검증
Secure Boot는 UEFI 기반 보안 부팅 메커니즘이다. 디지털 서명된 부트로더만 실행하도록 하고, 신뢰할 수 있는 인증서 체인을 검증해 부트킷과 루트킷 등 부팅 단계 악성코드를 방지한다.
키 구성은 플랫폼 소유자 키인 PK(Platform Key), 키 교환 키인 KEK(Key Exchange Key), 허용된 서명 데이터베이스 db(Signature Database), 차단된 서명 목록 dbx(Forbidden Signatures)로 이뤄진다. 일부 Linux 배포판에서는 호환성 문제가 발생할 수 있다.
부팅 과정은 펌웨어, 저장장치 구조, 부트로더, 커널이 순서대로 제어권을 넘기는 시스템 초기화의 출발점이다. 이 연결을 따라가면 하드웨어 오류, 부트로더 손상, 커널·드라이버 문제, 부팅 단계 보안 위협을 각각 어느 구간에서 확인해야 하는지 구분할 수 있다.