부팅 과정
쉽게 말하면
전원 버튼을 누르고 로그인 화면이 뜨기까지 정해진 순서가 있어요. 기계에 박힌 기본 프로그램이 장치를 점검하고 → 시작 안내 프로그램(GRUB)이 리눅스 심장(커널)을 불러오고 → 커널이 첫 번째 관리 프로그램(systemd)을 켜고 → 그 관리자가 나머지 프로그램을 하나씩 켜요.
시험용 정의
부팅은 펌웨어(BIOS/UEFI) → 부트로더(GRUB) → 커널 → initramfs → systemd(init) → 서비스·로그인 순서로 진행된다.
비유로 이해하기
공장 출근 순서다. 경비(BIOS)가 전기를 켜고, 안내원(GRUB)이 오늘의 공장장(커널)을 부르고, 공장장이 반장(systemd)을 세우면 반장이 각 라인(서비스)을 돌린다.
자세히
그림으로 보기: 부팅 순서
- BIOS/UEFIPOST 로 하드웨어 점검, 부팅 장치 찾기
- 부트로더(GRUB2)MBR 또는 ESP 에서 읽어 커널 선택
- 커널initramfs 로 드라이버 적재, 루트 파일 시스템 마운트
- systemd (PID 1)default.target 까지 서비스 시작
- 로그인그래픽(graphical.target) 또는 텍스트(multi-user.target)
먼저 알아 둘 말
| 말 | 뜻 |
|---|---|
| 펌웨어 (BIOS·UEFI) | 메인보드 칩에 저장된 프로그램. 전원이 들어오면 CPU가 가장 먼저 실행한다. 하드웨어를 점검하고 부팅할 장치를 고른다 |
| POST | Power-On Self Test. 펌웨어가 CPU·메모리·키보드 등이 정상인지 스스로 점검하는 과정. 문제가 있으면 삐 소리나 오류 화면을 낸다 |
| 부트로더 | 커널 파일을 디스크에서 찾아 메모리에 올리고 실행시키는 프로그램(GRUB 2) |
| initramfs | 커널과 함께 메모리에 올라가는 작은 임시 루트 파일시스템. 진짜 루트 파티션이 RAID·LVM·암호화 디스크에 있으면 커널만으로는 열 수 없어서, 그 드라이버와 도구를 여기 담아 둔다. 진짜 루트를 연 뒤에는 버려진다 |
| init과 PID 1 | 커널이 가장 먼저 실행하는 사용자 영역 프로그램. 프로세스 번호(PID)가 1이고, 나머지 모든 프로세스의 조상이다. 예전엔 SysV init, 지금은 systemd |
| 유닛 | systemd가 관리하는 대상 하나. 서비스(.service), 마운트(.mount), 목표 상태(.target) 등 |
| getty와 디스플레이 매니저 | 로그인 화면을 띄우는 프로그램. getty는 텍스트 콘솔의 login: 프롬프트, 디스플레이 매니저(GDM 등)는 그래픽 로그인 화면 |
| 커널 링 버퍼 | 커널이 메시지를 적어 두는 메모리 속 고정 크기 기록장. 가득 차면 오래된 것부터 덮어쓴다(링). dmesg가 이것을 보여 준다 |
단계별
| 단계 | 하는 일 |
|---|---|
| 1. BIOS / UEFI | 전원 켜짐, POST(하드웨어 자가 진단), 부팅 장치 선택 |
| 2. 부트로더 (GRUB 2) | MBR·ESP에서 실행되어 부팅 메뉴를 보여 주고 커널과 initramfs를 메모리에 적재 |
| 3. 커널 | 하드웨어 초기화, 드라이버 적재, initramfs 안의 도구로 실제 루트 파일시스템 마운트 |
| 4. initramfs (initrd) | 루트 파일시스템을 여는 데 필요한 드라이버를 담은 임시 루트 |
| 5. systemd (PID 1) | default.target까지 필요한 유닛(서비스·마운트)을 병렬로 시작 |
| 6. 로그인 | getty(텍스트 콘솔) 또는 디스플레이 매니저(GUI) |
부팅 로그 보기
dmesg: 커널 링 버퍼(하드웨어 인식 메시지). journalctl -b: 이번 부팅의 전체 로그. systemd-analyze(blame): 부팅에 걸린 시간과 서비스별 시간. 예전 시스템은 /var/log/boot.log, /var/log/messages.
시험에 이렇게 나와요
- BIOS·UEFI → 부트로더(GRUB2) → 커널 → systemd(PID 1) → target
- 부팅 메시지 확인 → dmesg, journalctl -b
1차 출제기준 · 공개 기출 없음
확인 문제
Q1. 리눅스 부팅에서 커널이 메모리에 올라온 직후 가장 먼저 실행하는 사용자 영역 프로세스는?
- systemd (또는 init)
- GRUB
- sshd
- bash
정답 보기
1번 systemd (또는 init)
커널은 하드웨어를 초기화하고 루트 파일시스템을 마운트한 뒤 PID 1로 systemd(예전엔 init)를 실행한다. 이후 모든 서비스와 로그인 화면은 systemd가 띄운다. GRUB은 커널보다 먼저 동작하는 부트로더다.
Q2. 부팅 시 하드웨어 이상 유무를 스스로 점검하는 과정은?
- fsck
- POST
- MBR
- PXE
정답 보기
2번 POST
POST(Power-On Self-Test).
Q3. 커널이 부팅 과정에서 출력한 메시지를 확인하는 명령은?
- uptime
- lsmod
- dmesg
- last
정답 보기
3번 dmesg
dmesg다. 커널이 부팅하며 남긴 메시지(장치 인식 등)를 보여 준다. lsmod는 적재된 모듈, last는 로그인 기록을 본다.
Q4. 부팅 순서로 옳은 것은?
- BIOS → 커널 → GRUB → systemd
- BIOS → GRUB → 커널 → systemd
- 커널 → BIOS → GRUB → systemd
- GRUB → BIOS → 커널 → systemd
정답 보기
2번 BIOS → GRUB → 커널 → systemd
펌웨어 → 부트로더 → 커널 → PID 1.
헷갈리기 쉬운 O·X
systemd의 PID는 1이다.
정답 보기
O 맞는 설명이다.
initramfs는 부팅이 끝난 뒤 사용자 데이터를 저장하는 영구 파티션이다.
정답 보기
X 부팅 초기에 쓰는 임시 루트 파일시스템(메모리).