Lệnh dmesg trong linux với các ví dụ dễ hiểu

Lệnh dmesg trong Linux là một công cụ chẩn đoán hệ thống mạnh mẽ, giúp bạn xem nhật ký kernel từ lúc khởi động. Lệnh dmesg hiển thị thông tin về phần cứng, trình điều khiển và các sự kiện hệ thống quan trọng. Nhờ đó, bạn có thể dễ dàng phát hiện và khắc phục các vấn đề tiềm ẩn của hệ thống Linux.

Lệnh dmesg trong linux là gì?

Lệnh dmesg trong Linux là một công cụ mạnh mẽ giúp bạn xem nhật ký kernel, nơi ghi lại các thông tin quan trọng về hệ thống. Command dmesg in linux cho phép bạn theo dõi quá trình khởi động, phát hiện lỗi phần cứng, và xem thông báo từ các driver thiết bị. Nó hiển thị các thông điệp từ kernel ring buffer, cung cấp cái nhìn sâu sắc về hoạt động của hệ thống. Bạn có thể sử dụng nó để chẩn đoán các vấn đề phần cứng hoặc phần mềm, giúp bạn hiểu rõ hơn về những gì đang xảy ra bên trong hệ thống Linux của mình. Hãy nhớ rằng, việc đọc và hiểu nhật ký kernel có thể giúp bạn giải quyết nhiều vấn đề phức tạp.

Tìm hiểu Mục đích và Cách sử dụng Lệnh dmesg

Trong bước này, bạn sẽ tìm hiểu về mục đích và cách dùng lệnh dmesg trong Linux.

Lệnh dmesg được dùng để xem kernel ring buffer, chứa các thông điệp từ kernel Linux khi hệ thống khởi động và chạy.

Kernel ring buffer là một bộ đệm vòng lưu trữ các thông điệp mức kernel, bao gồm thông tin về khởi tạo phần cứng, tải driver và các sự kiện hệ thống.

Lệnh dmesg cho phép bạn truy cập và phân tích các thông điệp này, rất hữu ích để khắc phục sự cố và theo dõi sức khỏe hệ thống.

Để xem nội dung của kernel ring buffer, hãy chạy lệnh sau:

sudo dmesg

Ví dụ về đầu ra:

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 5.15.0-58-generic (buildd@lgw01-amd64-054) (gcc-11) #64~20.04.1-Ubuntu SMP Thu Jan 5 12:11:15 UTC 2023 (Ubuntu 5.15.0-58.64~20.04.1-generic 5.15.52)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.15.0-58-generic root=UUID=0b1d7f41-a4a6-4c7e-9e2f-5d8d6d7d3b2e ro quiet splash
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Hygon HygonGenuine
[    0.000000]   Centaur CentaurHauls
[    0.000000]   zhaoxin   Shanghai

Đầu ra hiển thị nhiều thông điệp mức kernel, bao gồm thông tin về phiên bản kernel, tham số dòng lệnh và kiến trúc CPU được hỗ trợ.

Bạn có thể dùng nhiều tùy chọn với lệnh dmesg để lọc và định dạng đầu ra, ví dụ:

  • dmesg -T: Hiển thị dấu thời gian ở định dạng dễ đọc.
  • dmesg -l <level>: Lọc đầu ra theo mức độ log (ví dụ: dmesg -l err chỉ hiển thị thông điệp lỗi).
  • dmesg -n <level>: Đặt mức log console, xác định mức tối thiểu của thông điệp hiển thị trên console.
  • dmesg -w: Theo dõi kernel ring buffer theo thời gian thực, tương tự như tail -f.

Hiểu mục đích và cách dùng lệnh dmesg rất quan trọng để giám sát và khắc phục sự cố hệ thống trong Linux.

Khám phá Kernel Ring Buffer với dmesg

Trong bước này, bạn sẽ học cách khám phá kernel ring buffer bằng lệnh dmesg và các tùy chọn khác nhau.

Đầu tiên, hãy xem toàn bộ nội dung của kernel ring buffer bằng lệnh sau:

sudo dmesg

Lệnh này sẽ hiển thị tất cả các thông báo được lưu trữ trong kernel ring buffer, bao gồm cả thông báo khởi động và runtime.

Tiếp theo, hãy lọc đầu ra để chỉ hiển thị các thông báo gần đây nhất:

sudo dmesg -T | tail

Tùy chọn -T hiển thị dấu thời gian ở định dạng dễ đọc và tail hiển thị 10 dòng cuối cùng của đầu ra.

Bạn cũng có thể lọc đầu ra theo log level. Ví dụ: để chỉ hiển thị các thông báo lỗi:

sudo dmesg -l err

Tùy chọn -l cho phép bạn lọc đầu ra theo log level, trong đó err đại diện cho các thông báo lỗi.

Để liên tục theo dõi kernel ring buffer trong thời gian thực, hãy sử dụng tùy chọn -w:

sudo dmesg -w

Lệnh này sẽ giữ cho lệnh dmesg chạy và hiển thị các thông báo mới khi chúng được thêm vào kernel ring buffer.

Ví dụ về đầu ra:

[  +0.000000] Linux version 5.15.0-58-generic (buildd@lgw01-amd64-054) (gcc-11) #64~20.04.1-Ubuntu SMP Thu Jan 5 12:11:15 UTC 2023 (Ubuntu 5.15.0-58.64~20.04.1-generic 5.15.52)
[  +0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.15.0-58-generic root=UUID=0b1d7f41-a4a6-4c7e-9e2f-5d8d6d7d3b2e ro quiet splash
[  +0.000000] KERNEL supported cpus:
[  +0.000000]   Intel GenuineIntel
[  +0.000000]   AMD AuthenticAMD
[  +0.000000]   Hygon HygonGenuine
[  +0.000000]   Centaur CentaurHauls
[  +0.000000]   zhaoxin   Shanghai

Bằng cách khám phá các tùy chọn khác nhau của lệnh dmesg, bạn có thể phân tích hiệu quả kernel ring buffer và thu thập thông tin giá trị để giám sát và khắc phục sự cố hệ thống.

Lọc và Phân tích Đầu ra của dmesg

Trong bước cuối cùng này, bạn sẽ học cách lọc và phân tích đầu ra lệnh dmesg để trích xuất thông tin hữu ích cho việc giám sát và khắc phục sự cố hệ thống.

Đầu tiên, hãy lọc đầu ra dmesg để chỉ hiển thị các thông báo gần đây nhất.

sudo dmesg -T | tail

Lệnh này sẽ hiển thị 10 thông báo cuối cùng từ kernel ring buffer, kèm theo dấu thời gian dễ đọc.

Tiếp theo, hãy tìm kiếm các từ khóa cụ thể trong đầu ra dmesg. Ví dụ: để tìm bất kỳ thông báo nào liên quan đến giao diện mạng:

sudo dmesg | grep -i network

Tùy chọn -i làm cho tìm kiếm không phân biệt chữ hoa chữ thường, khớp với cả "network" và "Network".

Bạn cũng có thể lọc đầu ra theo mức độ nhật ký và mức độ nghiêm trọng. Ví dụ: để chỉ hiển thị các thông báo cảnh báo và lỗi:

sudo dmesg -l warn,err

Lệnh này sẽ chỉ hiển thị các thông báo cảnh báo và lỗi từ kernel ring buffer.

Để có được tóm tắt về quá trình khởi động kernel, bạn có thể sử dụng lệnh sau:

sudo dmesg | grep -E 'Linux version|Command line'

Lệnh này sẽ hiển thị thông tin phiên bản kernel và các tham số dòng lệnh được sử dụng để khởi động hệ thống.

Cuối cùng, hãy lưu đầu ra dmesg vào một tệp để phân tích thêm.

sudo dmesg > dmesg_output.txt

Sau đó, bạn có thể xem lại nội dung của tệp dmesg_output.txt bằng trình soạn thảo văn bản hoặc các công cụ khác.

Bằng cách nắm vững các kỹ thuật lọc và phân tích này, bạn có thể sử dụng hiệu quả lệnh dmesg để giám sát hệ thống Linux và khắc phục các sự cố khác nhau.

Kết luận cho linux dmesg command

Tóm lại, linux dmesg command là một công cụ vô cùng hữu ích để bạn theo dõi và khắc phục sự cố hệ thống. Nó cung cấp một cái nhìn sâu sắc về những gì đang diễn ra bên trong kernel, giúp bạn nhanh chóng xác định nguyên nhân của các vấn đề. Hãy nhớ rằng, việc đọc nhật ký kernel có thể hơi khó khăn lúc đầu, nhưng đừng nản lòng. Với một chút thực hành, bạn sẽ trở nên thành thạo trong việc sử dụng linux dmesg command để chẩn đoán và giải quyết các vấn đề liên quan đến phần cứng và trình điều khiển. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về lệnh dmesg và cách sử dụng nó một cách hiệu quả. Chúc bạn thành công trên con đường khám phá thế giới Linux!

Last Updated : 14/10/2025