명령어/Linux

[RHEL] makedumpfile vmcore 압축·필터링

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

부제: 커널 크래시 덤프를 잘라내고 압축해 작게 저장

makedumpfile -c -d 31 -x /usr/lib/debug/.../vmlinux \
  /proc/vmcore /var/crash/vmcore   # 압축(-c) + 불필요 페이지 제외(-d 31)
makedumpfile --dump-dmesg -x vmlinux /proc/vmcore dmesg.txt  # dmesg만 추출
Usage:
  # makedumpfile [-c|-l|-p|-z] [-d DL] [-x VMLINUX|-i VMCOREINFO] VMCORE DUMPFILE
  Extracting the dmesg log from a VMCORE:
  # makedumpfile --dump-dmesg [-x VMLINUX|-i VMCOREINFO] VMCORE LOGFILE
  LZO support: enabled / zstd support: enabled

makedumpfile은 커널 크래시로 생긴 vmcore를 압축하고, 분석에 필요 없는 메모리 페이지(제로·캐시·유저 데이터 등)를 걸러 덤프 크기를 크게 줄인다. RHEL의 kdump가 저장 단계에서 이 도구를 호출한다. 데비안도 같은 패키지를 쓰지만 RHEL 기본 크래시 덤프 흐름에 통합돼 있다.
-d의 dump level은 제외할 페이지를 비트로 지정하며, 31이면 흔히 쓰는 조합이다. 실제 vmcore는 크래시 커널 안에서 다루므로, 사용법 확인은 안전하지만 실제 덤프 작업은 물리·VM 시스템의 kdump 환경에서 이뤄진다.

이렇게도 쓴다

vmcore에서 dmesg 로그만 뽑아 원인 로그부터 본다.

makedumpfile --dump-dmesg -x /usr/lib/debug/lib/modules/$(uname -r)/vmlinux /proc/vmcore /var/crash/dmesg.txt

 

zstd로 압축해 저장 용량을 더 줄인다.

makedumpfile -z -d 31 -x vmlinux /proc/vmcore /var/crash/vmcore.zst

 

여러 스레드로 병렬 압축해 저장 시간을 단축한다.

makedumpfile --num-threads 4 -c -d 31 -x vmlinux /proc/vmcore /var/crash/vmcore

 

이미 저장된 덤프를 더 강하게 다시 필터링한다.

makedumpfile -c -d 31 /var/crash/vmcore /var/crash/vmcore.small

 

덤프를 여러 파일로 쪼개 저장한다(대용량 대비).

makedumpfile --split -c -d 31 -x vmlinux /proc/vmcore dump1 dump2 dump3

 

압축·필터 후 크기가 얼마나 줄었는지 비교한다(du 조합).

makedumpfile -c -d 31 -x vmlinux /proc/vmcore /var/crash/vmcore && du -h /var/crash/vmcore
반응형