Linux 서버를 운영하다 보면 /boot 디렉터리에서 vmlinuz라는 파일을 자주 볼 수 있습니다. GRUB 설정 파일에도 등장하고, Kernel Upgrade를 수행할 때도 새로운 vmlinuz 파일이 생성됩니다. 하지만 많은 관리자는 “커널 파일인가 보다” 정도만 알고 실제 역할은 잘 모르는 경우가 많습니다.
vmlinuz는 Linux가 부팅될 때 가장 먼저 메모리에 로드되는 압축된 커널 이미지 파일입니다. BIOS 또는 UEFI가 GRUB를 실행하면 GRUB는 이 파일을 메모리에 적재하고 Kernel 실행을 시작합니다.
이번 글에서는 vmlinuz의 의미와 역할, 확인 방법, 부팅 과정에서 어떻게 사용되는지 자세히 알아보겠습니다.
vmlinuz란?
vmlinuz는 압축된 Linux Kernel 실행 파일입니다.
이 파일 안에는 Linux Kernel 코드가 포함되어 있으며, 부팅 시 메모리에 로드되어 실행됩니다.
부팅 과정은 다음과 같습니다.
Power On
↓
BIOS / UEFI
↓
GRUB
↓
vmlinuz
↓
Linux Kernel 실행
↓
initramfs
↓
systemd
즉, GRUB가 직접 실행하는 대상이 바로 vmlinuz입니다.
vmlinuz의 의미
이름은 다음 두 단어가 합쳐진 것입니다.
- VM : Virtual Memory
- Linux + z : 압축(compressed)
즉,
Virtual Memory Linux compressed image
라는 의미를 가지고 있습니다.
현재는 단순히 Linux Kernel 이미지 파일을 의미하는 이름으로 사용됩니다.
vmlinuz는 어디에 있을까?
대부분의 Linux 배포판에서는 /boot 디렉터리에 저장됩니다.
확인
ls -lh /boot
예시
vmlinuz-6.8.0-52-generic
initrd.img-6.8.0-52-generic
config-6.8.0-52-generic
System.map-6.8.0-52-generic
Kernel 버전마다 하나씩 생성됩니다.
vmlinuz는 언제 사용될까?
GRUB는 부팅 시 설정 파일을 읽고 적절한 Kernel을 선택합니다.
예를 들어
GRUB
↓
vmlinuz-6.8.0
↓
Kernel 실행
Kernel 실행 후에는 initramfs를 메모리에 로드합니다.
이후 실제 Root File System으로 전환됩니다.
vmlinuz와 Kernel의 관계
많은 사람이 Kernel과 vmlinuz를 같은 의미로 생각하지만 약간 차이가 있습니다.
- Linux Kernel : 운영체제 핵심 프로그램
- vmlinuz : Kernel을 저장한 압축 이미지 파일
즉,
vmlinuz는 Kernel 자체가 아니라 Kernel을 담고 있는 실행 이미지입니다.
vmlinuz와 initramfs의 차이
둘은 항상 함께 등장하지만 역할이 다릅니다.
| 항목 | vmlinuz | initramfs |
|---|---|---|
| 역할 | Kernel 실행 | Root File System 준비 |
| 실행 시점 | 가장 먼저 | Kernel 이후 |
| 위치 | /boot | /boot |
| 내용 | Kernel 코드 | Driver, Script, Module |
vmlinuz가 Kernel을 실행하면 initramfs가 이어서 필요한 준비 작업을 수행합니다.
현재 실행 중인 Kernel 확인
현재 실행 중인 Kernel 버전 확인
uname -r
예시
6.8.0-52-generic
실행 중인 Kernel과 /boot 디렉터리의 vmlinuz 파일 이름은 일반적으로 동일한 버전을 가집니다.
GRUB에서 vmlinuz 확인하기
GRUB 설정 확인
Ubuntu
grep linux /boot/grub/grub.cfg
RHEL 계열
grep linux /boot/grub2/grub.cfg
예시
linux /boot/vmlinuz-6.8.0-52-generic
GRUB가 어떤 vmlinuz를 사용하는지 확인할 수 있습니다.
Kernel Upgrade와 vmlinuz
Kernel Upgrade를 수행하면 새로운 Kernel 이미지가 생성됩니다.
예시
vmlinuz-6.8.0
↓
업데이트
↓
vmlinuz-6.9.0
기존 Kernel도 함께 보관되므로 문제가 발생하면 이전 Kernel로 부팅할 수 있습니다.
vmlinuz 관련 장애 사례
대표적인 문제는 다음과 같습니다.
- vmlinuz 파일 삭제
- GRUB 설정 오류
- Kernel Upgrade 실패
- /boot 파티션 손상
- Kernel 이미지 손상
이 경우 다음과 같은 증상이 발생할 수 있습니다.
error: file '/boot/vmlinuz...' not found
또는
Kernel panic
부팅이 중단될 수 있습니다.
실무에서 자주 사용하는 명령어
현재 Kernel 확인
uname -r
Kernel 이미지 확인
ls -lh /boot/vmlinuz*
GRUB 설정 확인
Ubuntu
grep linux /boot/grub/grub.cfg
RHEL
grep linux /boot/grub2/grub.cfg
Kernel 정보 확인
cat /proc/version
Kernel 로그 확인
journalctl -k
자주 묻는 질문
vmlinuz를 삭제하면 어떻게 되나요?
GRUB가 Kernel 이미지를 찾을 수 없어 Linux가 정상적으로 부팅되지 않을 수 있습니다.
vmlinuz와 initrd는 같은 파일인가요?
아닙니다. vmlinuz는 Kernel 이미지이고, initrd(initramfs)는 부팅 과정에서 필요한 임시 Root File System입니다.
Kernel Upgrade를 하면 이전 vmlinuz는 삭제되나요?
대부분의 배포판은 이전 Kernel 이미지를 함께 보관합니다. 따라서 문제가 생기면 이전 버전으로 부팅할 수 있습니다.
마무리
vmlinuz는 Linux Kernel을 담고 있는 압축 실행 이미지 파일로, 부팅 과정에서 GRUB에 의해 가장 먼저 메모리에 로드됩니다. 이후 Kernel이 실행되고 initramfs를 통해 실제 Root File System을 준비하면서 운영체제가 정상적으로 시작됩니다. Kernel Upgrade나 부팅 장애를 분석할 때 vmlinuz의 역할을 이해하면 문제 원인을 훨씬 쉽게 파악할 수 있습니다.