USB 드라이브가 사라지거나, 네트워크 카드가 연결이 끊기거나, SSD가 오작동하거나, 컴퓨터가 부팅 직후 오류를 표시하는 경우, 설정을 임의로 변경하기 전에 거의 항상 커널 메시지를 확인합니다.
리눅스에서는, dmesg 이 기능을 사용하면 이러한 메시지를 빠르게 읽을 수 있습니다. 마법 같은 도구는 아니지만, I/O 오류, USB 장치 재설정, 펌웨어 누락, 드라이버 오류 또는 불안정한 네트워크 연결과 같은 문제 해결에 도움이 되는 첫 번째 단서를 제공하는 경우가 많습니다.
이 가이드에서는 사용 방법을 보여드리겠습니다. dmesg 엄밀히 말하면, 그것을 ~와 교차시키세요. journalctl -k유용한 내용을 걸러내고, 메시지를 이해하기 전에 시스템 옵션을 변경하려는 잘못된 생각을 피하십시오.

dmesg가 실제로 표시하는 내용
dmesg 리눅스 커널 메시지 버퍼를 표시합니다. 간단히 말하면, 하드웨어 감지, 드라이버, 디스크 오류, USB, 네트워크, ACPI, 펌웨어, 메모리, 장치 마운트 등과 같은 저수준 이벤트를 확인할 수 있습니다.
최신 시스템에서는 이러한 메시지 중 일부가 systemd 로그에도 표시됩니다. 따라서 두 명령어를 모두 잘 알아두는 것이 좋습니다. dmesg 빨리 읽으려면, journalctl -k 시스템 로그를 더 깔끔하게 읽을 수 있도록 하기 위함입니다.
dmesg
일부 배포판에서는 읽기 작업에 관리자 권한이 필요할 수 있습니다. 권한 오류가 발생하면 다음 명령으로 다시 시도하십시오. sudo.
sudo dmesg
매뉴얼 페이지 dmesg 모든 옵션이 자세히 설명되어 있습니다. 일반적인 진단에는 몇 가지 명령어만으로도 충분합니다.
물에 빠지지 않고 마지막 줄들을 읽으세요
우선, 800줄을 한 번에 표시하지 마십시오. 문제가 발생한 직후에는 커널 로그의 끝부분부터 확인하는 것이 좋습니다.
sudo dmesg -T | tail -n 80
옵션 -티 날짜를 더 읽기 쉽게 만듭니다. 이 형식은 빠르게 읽기에는 편리하지만, 매우 구체적인 사건을 비교할 때는 신문을 꼼꼼하게 분석하는 것을 대체할 수는 없습니다. 그러한 경우에는, journalctl은 여전히 더 편안합니다..
경고 및 오류만 표시할 수도 있습니다.
sudo dmesg -T --level=err,warn
명령이 아무것도 반환하지 않는다고 해서 반드시 나쁜 징조는 아닙니다. 단순히 커널이 해당 버퍼에 최근 오류나 경고를 기록하지 않았다는 의미일 뿐입니다.
USB, 디스크 또는 네트워크 문제 필터링
시간을 진정으로 절약하는 방법은 필터링하는 것입니다. USB 드라이브가 마운트되지 않는 이유, 하드 드라이브가 오작동하는 이유, 네트워크 카드가 재설정되는 이유를 찾고 있다면 모든 내용을 읽지 마세요. 하드웨어와 관련된 단어를 찾아보세요.
sudo dmesg -T | grep -iE 'usb|sda|sdb|nvme|ata|오류|실패|재설정'
참고로, 주의해야 할 대사는 대부분 설명이 필요 없을 정도로 명확합니다. 입출력 오류, 다시 놓기, 실패한 명령, 블랙_업데이트_요청, 읽기 오류, 쓰기 오류이런 메시지를 반복적으로 보게 된다면, 메시지 내용을 바꾸는 것부터 시작하지 마세요. /etc/fstab먼저 케이블, USB 외장 케이스, 전원 공급 장치를 확인하고, 그 다음 디스크 상태를 확인하세요.
USB 장치의 경우, 가이드에 이미 나와 있는 명령어와 비교해 보세요. Linux의 USB 포트 또는 ~에 있는 것 USB 키 장착. dmesg 핵심이 관찰하는 내용을 알려줍니다. lsusb, lsblk 그리고 발견 실제로 무엇이 감지되고 설치되는지 이해하는 데 도움이 됩니다.
lsblk -o NAME,SIZE,FSTYPE,LABEL,UUID,MOUNTPOINTS
발견
lsusb
네트워크 문제의 경우 인터페이스 이름이나 다음과 같은 용어를 찾아보세요. 링크, 이름이 변경됨, 펌웨어, 시간 초과, 아래에, 위로주제가 주로 TCP 수신 포트에 관한 것이라면, 다음으로 넘어가십시오. ss 또는 netstat, 왜냐하면 dmesg 네트워크 인벤토리를 대체하지 않습니다.
장비를 연결하는 동안 화면에 표시되는 메시지를 따르십시오.
기기 연결이 간헐적으로 끊어지는 경우 가장 쉬운 방법은 실시간 메시지를 모니터링하는 것입니다. 터미널을 열고 명령어를 실행한 다음 디스크, USB 드라이브 또는 네트워크 어댑터를 연결하십시오.
sudo dmesg -wH
-w 새 메시지를 팔로우하세요. -시간 이렇게 하면 출력 내용이 더 읽기 쉬워집니다. systemd 로그를 계속 사용하려면 다음을 사용하세요.
sudo journalctl -k -f
매뉴얼 페이지 저널 이 기능은 시작 순서, 우선순위 또는 장치별로 검색 결과를 세분화하려는 경우 유용합니다. 단순한 하드웨어 오류의 경우 실시간 모니터링만으로도 커널이 분기를 감지하는지, 그리고 오류가 발생하는지 확인할 수 있는 경우가 많습니다.
journalctl을 사용하여 마지막 시작 시점을 상호 참조하십시오.
dmesg 빠르긴 하지만, 문제가 서버에 영향을 미치거나 재부팅 후에도 재발하는 경우에는 거기서 멈추지 않습니다. systemd 로그를 사용하면 자체 필터를 통해 현재 부팅 시의 커널 메시지를 다시 읽을 수 있습니다.
sudo journalctl -k -b --no-pager
sudo journalctl -k -b -p warning..alert --no-pager
첫 번째 명령은 현재 부팅 프로세스의 커널 메시지를 표시합니다. 두 번째 명령은 경고, 오류 및 알림만 표시합니다. 이는 마운트 실패, 네트워크 인터페이스 마운트 오류 또는 드라이버 부팅 시 문제 보고 등으로 재부팅 후 유용하게 사용할 수 있습니다.
방금 수정하셨다면 /etc/fstab단순히 확인하기 위해 재시작하지 마십시오. 먼저 어셈블리를 테스트하고 오류를 확인하십시오. 가이드는 다음과 같습니다. Linux의 fstab 이 부분은 자세히 설명해야 합니다. 왜냐하면 잘못된 코드 한 줄이 생각보다 훨씬 빨리 시스템 시작을 막을 수 있기 때문입니다.
sudo 마운트 -a
발견
sudo journalctl -k -b -p warning..alert --no-pager
메시지가 실제 하드웨어 문제를 나타내는 시점을 아는 것
고립된 선 dmesg 이것만으로는 결론을 내리기에 충분하지 않을 수 있습니다. USB 장치가 한 번 재설정되는 것은 심각한 문제가 아닐 수 있습니다. 그러나 복사할 때마다 오류가 반복되거나, 드라이브가 연결이 끊어졌다 다시 연결되는 현상이 발생하거나, 입출력 오류가 반복적으로 발생하는 경우에는 심각하게 받아들여야 합니다.
이 경우, 설정을 변경하기 전에 세 가지 검사를 수행합니다.
- 기기가 외장형인 경우 케이블, USB 포트 또는 전원 공급 장치를 교체하십시오.
- 디스크가 올바르게 식별되었는지 확인하십시오.
lsblk그리고블키드; - 디스크 또는 SSD인 경우 SMART 상태를 확인하십시오.
lsblk -o 이름, 크기, 모델, 시리얼 번호, 파일 시스템 유형, 마운트 지점
sudo blkid
sudo smartctl -a /dev/sdX
바꾸다 /dev/sdX 올바른 디스크를 사용하십시오. 여러 개의 디스크가 있는 컴퓨터에 이 명령어를 무턱대고 복사하지 마십시오. 확실하지 않으면 다음 단계에서 중단하십시오. lsblk 더 진행하기 전에 모델, 크기 및 장착 위치를 확인하십시오.
수정하기 전에 정확한 오류를 기록해 두세요.
최고의 활용 dmesg목표는 만능 해결책을 찾는 것이 아닙니다. 조치를 취하기 전에 특정 오류를 포착하는 것이 중요합니다. 오류 메시지 주변의 몇 줄을 복사하고, 시간, 관련된 기기, 그리고 문제를 유발하는 동작을 기록해 두세요.
sudo dmesg -T | tail -n 120 > core-diagnostic.txt
sudo journalctl -k -b -p warning..alert --no-pager >> core-diagnostic.txt
그래야만 어떤 케이블을 교체할지, 어떤 디스크를 백업할지, 어떤 드라이버를 확인할지, 어떤 fstab 규칙을 수정할지, 어떤 펌웨어를 설치할지, 또는 어떤 서비스를 모니터링할지 결정할 수 있습니다. 이 단계는 기본적으로 보이지만, 특히 간헐적인 오류의 경우 많은 잘못된 진단을 방지해 줍니다.
원격 시스템을 관리하는 경우 더욱 주의해야 합니다. 커널에서 디스크 또는 네트워크 오류가 감지되면 결국 접근이 차단될 수 있습니다. 세션을 열어두고, 가능하다면 콘솔 접근 권한을 제공하며, 커널이 보내는 메시지를 완전히 이해할 때까지 시스템을 재부팅하지 마십시오.