> 패키지 및 시스템 관리 > dmesg

dmesg: 커널 링 버퍼 메시지 확인

시스템 부팅 시 커널이 출력하는 메시지(커널 링 버퍼)를 확인하는 명령어입니다. 하드웨어 감지, 드라이버 로딩, 시스템 오류 진단 등에 필수적인 도구입니다.

dmesg란 무엇인가?

dmesg는 'display message' 또는 'driver message'의 약자로, 리눅스 커널의 링 버퍼(Ring Buffer)에 저장된 메시지를 출력합니다. 시스템이 부팅될 때부터 현재까지 하드웨어가 어떻게 인식되고, 드라이버가 어떻게 로드되었는지, 또는 어떤 오류가 발생했는지 시간순으로 보여줍니다.

핵심 기능 및 용도

dmesg는 시스템의 가장 낮은 수준(커널)에서 일어나는 일을 진단할 때 사용됩니다.

  • 부팅 메시지 확인: 시스템 시작 시 출력되는 모든 커널 메시지를 봅니다.
  • 하드웨어 진단: 새로운 하드웨어(USB, 디스크 등)가 연결되거나 제거될 때의 로그를 확인합니다.
  • 드라이버 오류: 드라이버 로딩 실패나 커널 수준의 오류(Kernel Panic) 원인을 추적합니다.
  • 링 버퍼: 버퍼 크기가 정해져 있어, 오래된 로그는 새 로그에 의해 덮어쓰입니다.

주요 옵션 (Shell)

dmesg는 종종 다른 명령어(grep, less)와 파이프(|)로 연결해 사용하지만, 자체적으로 유용한 옵션들을 가지고 있습니다.

1. 출력 형식 및 시간

2. 필터링 및 실시간 모니터링

3. 버퍼/콘솔 제어 (주의 필요)

생성된 명령어:

명령어를 조합해 보세요.

설명:

`dmesg` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 시나리오 예시 (Shell)

dmesg는 grep과 함께 사용하여 원하는 정보만 필터링하는 경우가 많습니다.

모든 메시지 보기 (페이징)

dmesg | less

가장 기본적인 사용법. less로 편하게 스크롤합니다.

실시간으로 새 메시지 확인 (읽기 편하게)

dmesg -wH

-w (실시간)와 -H (사람 읽기 편한 시간)를 조합합니다.

USB 관련 메시지만 필터링

dmesg | grep -i usb

grep의 -i 옵션은 대소문자를 무시합니다.

디스크(SATA/NVMe) 관련 메시지 필터링

dmesg | grep -iE 'sd[a-z]|nvme'

grep -E(확장 정규식)로 'sd[a-z]' 또는 'nvme'를 포함하는 로그를 찾습니다.

오류(Error) 또는 경고(Warn)만 필터링

dmesg -H -l err,warn

-l 옵션으로 로그 레벨을 지정합니다.

최근 10줄의 메시지만 보기

dmesg | tail -n 10

tail을 조합해 최근 메시지만 빠르게 확인합니다.

facility/level 태그 포함해 보기

dmesg -xT | less

-x 옵션으로 facility/level을 디코딩해 이해를 돕습니다.

로그를 파일로 저장

dmesg -T > ~/dmesg-$(date +%F-%H%M).log

부팅 직후 전체 dmesg를 보관합니다.

설치

dmesg는 util-linux 패키지에 포함되어 있으며, 대부분의 리눅스 배포판에서 기본 제공됩니다.

기본 설치됨

별도 설치가 필요하지 않습니다. 만약 없다면 배포판의 'util-linux' 패키지를 설치하세요.

팁 & 주의사항

dmesg vs journalctl

  • systemd 환경: 최신 systemd 시스템에서는 'journalctl -k'(커널 로그) 또는 'journalctl -b'(이번 부팅 로그)로 dmesg 수준을 넘어선 시스템 로그 통합 열람이 가능합니다.
  • 시간 형식: 기본 dmesg 출력의 시간은 [부팅 후 경과 시간(초)]입니다. 실제 시간을 보려면 '-H' 또는 '-T' 옵션을 사용하세요.
  • 버퍼 덮어쓰기: 링 버퍼 특성상 오래된 메시지는 사라질 수 있습니다. 부팅 초기 로그 보존이 필요하면 'journalctl -b 0'로 확인하거나 dmesg 출력을 파일에 저장하세요.
  • 권한/보안: 일부 배포판은 '/proc/sys/kernel/dmesg_restrict=1'로 일반 사용자 dmesg 접근을 제한합니다. 이 경우 'sudo dmesg' 또는 'sudo journalctl -k'를 사용하세요.
  • 로그 지우기(-c, -C): 'dmesg -c'와 '-C'는 디버깅에는 유용하지만, 한 번 지우면 복구할 수 없습니다. 운영 환경에서는 신중히 사용하세요.

관련 명령어

기능적으로 유사하거나 함께 자주쓰이는 명령어들입니다.



동일 카테고리 명령어