
그만큼 dmesg 명령을 사용하면 숨겨진 Linux 시작 프로세스 세계를 들여다 볼 수 있습니다. fault“오류 찾기 친구”와 함께 커널 자체 링 버퍼에서 하드웨어 장치 및 드라이버 메시지를 검토하고 모니터링합니다.
리눅스의 링 버퍼 작동 방식
Linux 및 Unix와 유사한 컴퓨터에서 부팅 및 시작은 컴퓨터 전원을 켤 때 발생하는 이벤트 시퀀스의 두 가지 단계입니다.
그만큼 부팅 프로세스 (BIOS 또는 UEFI, MBR 및 GRUB)는 커널이 메모리에로드되고 초기 램 디스크 (initrd 또는 initramfs)에 연결되어 systemd가 시작될 때까지 시스템 초기화를 수행합니다.
그만큼 시작 프로세스 그리고 배턴을 들고 운영 체제의 초기화를 완료하십시오. 초기 초기화 단계에서 syslogd 또는 rsyslogd와 같은 로깅 데몬은 아직 실행되지 않았습니다. 이 초기화 단계에서 눈에 띄는 오류 메시지와 경고가 손실되지 않도록 커널에는 메시지 저장소로 사용하는 링 버퍼가 포함되어 있습니다.
링 버퍼는 메시지 용으로 예약 된 메모리 공간입니다. 디자인이 간단하고 고정 된 크기입니다. 가득 차면 최신 메시지가 가장 오래된 메시지를 덮어 씁니다. 개념적으로“원형 버퍼”로 생각할 수 있습니다.
커널 링 버퍼는 장치 드라이버의 초기화 메시지, 하드웨어 메시지 및 커널 모듈 메시지와 같은 정보를 저장합니다. 이러한 저수준 시작 메시지가 포함되어 있기 때문에 링 버퍼는 하드웨어 오류 또는 기타 시작 문제에 대한 조사를 시작하기에 좋은 장소입니다.
그러나 빈손으로 가지 마십시오. 갖다 dmesg 당신과 함께.
dmesg 명령
그만큼 dmesg 명령을 사용하면 링 버퍼에 저장된 메시지를 검토 할 수 있습니다. 기본적으로 sudo 쓰다 dmesg.
sudo dmesg

링 버퍼의 모든 메시지가 터미널 창에 표시됩니다.

대홍수였습니다. 분명히, 우리가해야 할 일은 less:
sudo dmesg | less

이제 관심있는 항목을 찾는 메시지를 스크롤 할 수 있습니다.

당신은 내 검색 기능을 사용할 수 있습니다 less 관심있는 항목 및 용어를 찾아 강조 표시합니다.에서 슬래시 키“/”를 눌러 검색 기능을 시작하십시오. less.
관련 : Linux에서 less 명령을 사용하는 방법
sudo의 필요성 제거
사용하지 않으려는 경우 sudo 사용할 때마다 dmesg이 명령을 사용할 수 있습니다. 그러나 사용자 계정을 가진 사람이라면 누구나 컴퓨터에서 사용할 수 있습니다. dmesg 사용할 필요없이 sudo.
sudo sysctl -w kernel.dmesg_restrict=0

강제 컬러 출력
기본적으로, dmesg 컬러 출력을 생성하도록 구성되어있을 것입니다. 그렇지 않은 경우 말할 수 있습니다. dmesg 를 사용하여 출력을 채색하려면 -L (색상) 옵션.
sudo dmesg -L

강제로 dmesg 항상 컬러 디스플레이로 기본 설정하려면 다음 명령을 사용하십시오.
sudo dmesg --color=always

휴먼 타임 스탬프
기본적으로, dmesg 커널이 시작된 이후 초와 나노초의 타임 스탬프 표기법을 사용하십시오. 보다 인간 친화적 인 형식으로 렌더링하려면 -H (인간) 옵션.
sudo dmesg -H

이로 인해 두 가지 일이 발생합니다.

- 출력이 자동으로 표시됩니다
less. - 타임 스탬프는 날짜 및 시간과 함께 시간 소인을 분 단위로 표시합니다. 각 분에서 발생한 메시지는 해당 분의 시작부터 초 및 나노초로 표시됩니다.
사람이 읽을 수있는 타임 스탬프
나노초 정확도가 필요하지 않지만 기본값보다 읽기 쉬운 타임 스탬프를 원하는 경우 -T (사람이 읽을 수있는) 옵션. (조금 혼란 스럽습니다. -H “인간”옵션입니다 -T “사람이 읽을 수있는”옵션입니다.)
sudo dmesg -T

타임 스탬프는 표준 날짜 및 시간으로 렌더링되지만 해상도는 1 분으로 줄어 듭니다.

1 분 안에 일어난 모든 것은 동일한 타임 스탬프를 갖습니다. 당신이 걱정하는 모든 사건의 사건이라면, 이것으로 충분합니다. 또한 명령 프롬프트에서 다시 덤프됩니다. 이 옵션은 자동으로 호출되지 않습니다 less.
라이브 이벤트 시청
커널 링 버퍼에 도착하는 메시지를 보려면 --follow (메시지 대기) 옵션. 그 문장은 조금 이상해 보일 수 있습니다. 시작 시퀀스 중에 발생하는 이벤트의 메시지를 저장하는 데 링 버퍼를 사용하는 경우 컴퓨터가 시작되고 실행되면 라이브 메시지가 링 버퍼에 어떻게 도착합니까?
컴퓨터에 연결된 하드웨어가 변경되면 메시지가 커널 링 버퍼로 전송됩니다. 커널 모듈을 업데이트하거나 추가하면 해당 변경 사항에 대한 링 버퍼 메시지가 표시됩니다. USB 드라이브를 연결하거나 블루투스 기기를 연결 또는 연결 해제하면 dmesg 산출. 가상 하드웨어조차도 링 버퍼에 새 메시지가 나타납니다. 가상 머신을 실행하면 링 버퍼에 새로운 정보가 도착합니다.
sudo dmesg --follow

명령 프롬프트로 돌아 가지 않습니다. 새 메시지가 나타나면 dmesg 터미널 창의 맨 아래에 있습니다.

CD-ROM 디스크의 내용을 디렉토리 트리에 접목 시켰기 때문에 CD-ROM 디스크를 마운트하더라도 변경 사항으로 간주됩니다.

실시간 피드를 종료하려면 Ctrl+C.
최근 10 개의 메시지 검색
tail 명령을 사용하여 마지막 10 개 커널 링 버퍼 메시지를 검색하십시오. 물론 많은 메시지를 검색 할 수 있습니다. 열은 우리의 예일뿐입니다.
sudo dmesg | last -10

마지막 10 개의 메시지가 검색되어 터미널 창에 나열됩니다.

특정 용어 검색
출력을 파이프 dmesg …을 통하여 grep 특정 문자열이나 패턴을 검색합니다. 여기서 우리는 -i 일치하는 문자열의 경우를 무시하도록 (대소 문자 무시) 옵션. 우리의 결과는“usb”와“USB”그리고 소문자와 대문자의 다른 조합을 포함 할 것입니다.
sudo dmesg | grep -i usb

강조 표시된 검색 결과는 대문자와 소문자입니다.

시스템의 첫 번째 SCSI 하드 디스크에 대한 참조가 포함 된 메시지를 격리 할 수 있습니다 sda. (사실은, sda 현재 첫 번째 SATA 하드 드라이브 및 USB 드라이브에도 사용됩니다.)
sudo dmesg | grep -i sda

언급 된 모든 메시지 sda 터미널 창에 검색되어 나열됩니다.

만들다 grep 한 번에 여러 용어를 검색하려면 -E (정규식 확장) 옵션. 파이프 “|”가있는 인용 문자열 안에 검색어를 제공해야합니다. 검색어 사이의 구분 기호 :
sudo dmesg | grep -E "memory|tty|dma"

검색어를 언급하는 모든 메시지가 터미널 창에 나열됩니다.

로그 레벨 사용
커널 링 버퍼에 기록 된 모든 메시지에는 첨부 된 레벨이 있습니다. 수준은 메시지 정보의 중요성을 나타냅니다. 레벨은 다음과 같습니다.
- 에머: 시스템을 사용할 수 없습니다.
- 경보: 즉시 조치를 취해야합니다.
- 치명타: 중요 조건.
- 실수: 오류 조건.
- 경고하다: 경고 조건.
- 주의: 정상이지만 유의 한 상태입니다.
- 정보: 정보 제공.
- 디버그: 디버그 레벨 메시지.
우리는 만들 수 있습니다 dmesg 를 사용하여 특정 수준과 일치하는 메시지를 추출 -l (레벨) 옵션 및 레벨 이름을 명령 줄 매개 변수로 전달합니다. “정보”레벨 메시지 만 보려면 다음 명령을 사용하십시오.
sudo dmesg -l info

나열된 모든 메시지는 정보 메시지입니다. 오류나 경고가없고 유용한 알림 만 포함합니다.

하나의 명령으로 둘 이상의 로그 레벨을 결합하여 여러 로그 레벨의 메시지를 검색하십시오.
sudo dmesg -l debug,notice

의 출력 dmesg 각 로그 수준의 메시지가 혼합되어 있습니다.

시설 카테고리
그만큼 dmesg 메시지는 “시설”이라는 범주로 그룹화됩니다. 시설 목록은 다음과 같습니다.
- 장식 꼬리: 커널 메시지.
- 사용자: 사용자 수준 메시지.
- 우편: 메일 시스템.
- 악마: 시스템 데몬.
- 인증: 보안 / 인증 메시지.
- syslog: 내부 syslogd 메시지.
- lpr: 라인 프린터 서브 시스템.
- 뉴스: 네트워크 뉴스 서브 시스템.
우리는 요청할 수 있습니다 dmesg 특정 기능의 메시지 만 표시하도록 출력을 필터링합니다. 그렇게하려면 -f (시설) 옵션 :
sudo dmesg -f daemon

dmesg 터미널 창에 데몬과 관련된 모든 메시지가 나열됩니다.

레벨과 마찬가지로 우리는 요청할 수 있습니다 dmesg 여러 시설의 메시지를 한 번에 나열하려면 :
sudo dmesg -f syslog, daemon

출력은 syslog와 데몬 로그 메시지의 혼합입니다.

시설과 수준의 결합
그만큼 -x (디코딩) 옵션은 dmesg 시설과 레벨을 사람이 읽을 수있는 접두사로 각 줄에 표시합니다.
sudo dmesg -x

시설과 레벨은 각 라인의 시작 부분에서 볼 수 있습니다.

첫 번째로 강조 표시된 섹션은 “알림”수준의 “커널”시설에서 보낸 메시지입니다. 두 번째로 강조 표시된 섹션은 “커널”기능에서 “정보”수준의 메시지입니다.
훌륭하지만 왜?
간단히 말해서, 결함 찾기.
하드웨어가 인식되지 않거나 올바르게 작동하지 않는 문제가있는 경우, dmesg 이 문제에 약간의 불이 붙을 수 있습니다.
- 사용하다
dmesg최고에서 메시지를 검토 수평 하드웨어 항목을 언급하거나 문제와 관련이있을 수있는 오류 또는 경고가 있는지 확인하십시오. - 사용하다
dmesg적절한 언급을 검색 시설 유용한 정보가 포함되어 있는지 확인하십시오. - 파이프
dmesg…을 통하여grep관련을 찾으십시오 문자열 또는 식별자 제품 제조업체 또는 모델 번호와 같은 - 파이프
dmesg…을 통하여grep찾아 일반적인 용어 “gpu”또는 “storage”와 같은 용어 또는 “failure”, “failed”또는 “unable”과 같은 용어 - 사용
--follow옵션과 시계dmesg실시간으로 메시지.
행복한 사냥.








