명령어/Linux

[RHEL] kexec 재부팅 없이 새 커널로 전환

jykim23 2026. 8. 5. 23:33
반응형

부제: BIOS·POST를 건너뛰고 곧바로 다른 커널로 부팅

kexec -l /boot/vmlinuz-$(uname -r) \
  --initrd=/boot/initramfs-$(uname -r).img \
  --reuse-cmdline          # 새 커널을 메모리에 로드
kexec -e                   # 로드한 커널로 즉시 전환(재부팅됨!)
kexec-tools 2.0.29
 -l, --load           Load the new kernel into the current kernel.
 -e, --exec           Execute a currently loaded kernel.
 -p, --load-panic     Load the new kernel for use on panic.
 -u, --unload         Unload the current kexec target kernel.
 --reuse-cmdline      Use kernel command line from running system.

kexec는 하드웨어 초기화(BIOS/UEFI, POST)를 건너뛰고 실행 중인 커널에서 곧바로 다른 커널로 넘어간다. 그만큼 재부팅이 빠르다. RHEL에선 kdump가 이 기능으로 캡처 커널을 미리 올려둔다. 데비안도 같은 kexec-tools 패키지를 쓰지만, RHEL은 kdump 워크플로에 깊이 엮여 있다.
-l로 로드하고 -e로 실행하는 순간 현재 시스템은 그대로 새 커널로 넘어간다. 사실상 재부팅이라 프로세스가 다 죽는다. 실제 전환은 반드시 물리·VM 시스템에서, 콘솔 접근이 되는 상태로 한다.

이렇게도 쓴다

현재 실행 중인 커널을 다시 로드한다(reuse-cmdline로 명령줄 재사용).

kexec -l /boot/vmlinuz-$(uname -r) --initrd=/boot/initramfs-$(uname -r).img --reuse-cmdline

 

패닉 발생 시 쓸 캡처 커널을 미리 올려둔다.

kexec -p /boot/vmlinuz-$(uname -r) --initrd=/boot/initramfs-$(uname -r).img

 

로드해 둔 kexec 대상 커널을 내린다.

kexec -u

 

캡처 커널이 로드돼 있는지 상태만 확인한다(안전).

kexec -S -p; echo $?

 

파일시스템 sync 없이 즉시 전환한다(진짜 급할 때).

kexec -e

 

로드와 실행을 한 줄로 이어 빠르게 재부팅한다(조합).

kexec -l /boot/vmlinuz-$(uname -r) --initrd=/boot/initramfs-$(uname -r).img --reuse-cmdline && kexec -e
반응형