Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
리눅스/OS

initramfs Execution: 커널 부트 단계의 실행 메커니즘

initramfs는 커널이 부팅 초기에 메모리에 압축 해제하는 cpio 아카이브로, 루트 파일시스템이 마운트되기 전에 필수 드라이버와 초기화 프로그램을 실행한다. /init 프로세스가 PID 1로 실행되어 실제 루트 디바이스를 찾아 마운트하고 최종 init으로 제어를 넘긴다.

2026.09.20  ·  22회  · 

initramfs 실행의 기본 원리

initramfs는 커널 이미지에 내장된 gzip 압축 cpio 아카이브로서, 부팅 시 커널이 rootfs로 추출하여 메모리 기반 임시 루트 파일시스템을 구성한다. 커널은 추출 후 initramfs 내 /init 파일을 확인하여 존재하면 PID 1로 실행한다. 이는 구형 initrd(초기 RAM 디스크)와 달리 커널로 제어를 반환하지 않는 영구 프로세스로 동작한다.

실행 순서 및 제어 이양

/init 프로세스는 하드웨어 초기화, 커널 모듈 로딩, 실제 루트 디바이스 탐색 및 마운트 같은 필수 작업을 수행한다. 루트 파일시스템 마운트 완료 후, pivot_root() 시스템콜로 새 루트를 마운트하고 initramfs를 언마운트한 뒤 /sbin/init을 exec()하여 최종 제어를 이양한다. 이 메커니즘은 하나의 커널 바이너리로 다양한 하드웨어 구성을 유연하게 지원한다.

아키텍처 설계 고려사항

cpio 추출 코드는 __init 섹션에 위치하여 부팅 후 메모리에서 폐기되므로, 메모리 효율성을 극대화한다. initramfs 내 모든 실행 파일은 정적 링크되거나 필요한 의존성을 포함해야 커널에서 제어를 인수받을 수 있다. 외부 initramfs 아카이브는 빌드 시점에 링크된 기본 아카이브 위에 겹쳐져 분배 제약을 해결하면서도 메모리 효율성을 유지한다.

WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원