Sử dụng dmesg trên Linux
Hạt nhân Linux là một phần kỹ thuật phức tạp. Từ chế độ đa người dùng khởi động đến runlevel 5, hạt nhân Linux khởi tạo và quản lý tài nguyên của PC bao gồm bộ vi xử lý, bộ nhớ, kết nối mạng, đầu ra video và bộ nhớ cục bộ. Khi hạt nhân làm việc với tất cả các hệ thống con và tài nguyên khác nhau, nó ghi nhật ký các thông báo cấp cao khác nhau để cho các quản trị viên hệ thống biết nó đang làm gì. Các tin nhắn này có thể được xem bằng cách sử dụng lệnh " dmesg
". Vấn đề là đầu ra từ hạt nhân có vẻ phức tạp và khó hiểu đối với mắt chưa được đào tạo. Tuy nhiên, với một chút trợ giúp để hiểu những điều cơ bản, lệnh " dmesg
" có thể trở thành một công cụ rất mạnh mẽ trong bộ công cụ của quản trị viên hệ thống.
Khởi động
Cách nhanh nhất để tìm hiểu về thông điệp hạt nhân là kiểm tra một vài dòng đầu tiên từ tiến trình khởi động. Để xem trang đầu tiên của đầu ra, sử dụng lệnh sau:
dmesg | ít hơn
Ba dòng đầu tiên có khả năng về việc khởi tạo "Nhóm điều khiển" cho bộ vi xử lý. Đây không phải là điều thú vị trừ khi bạn là một hacker hạt nhân. Tuy nhiên, dòng tiếp theo là rất quan trọng. Nó sẽ cho bạn biết phiên bản hạt nhân Linux bạn đang chạy.
Đầu ra trên máy kiểm tra của tôi đọc:
Phiên bản Linux 3.13.0-24-generic (buildd @ roseapple) (phiên bản gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1)) # 46-Ubuntu SMP Thu Apr 10 19:08:14 UTC 2014 (Ubuntu 3.13.0- 24, 46-chung 3, 13, 9)
Điều này nói với tôi là máy thử của tôi đang chạy hạt nhân Linux 3.13 được biên dịch bởi Ubuntu vào ngày 10 tháng 4 năm 2014.
80 đến 100 dòng tiếp theo là tất cả các chi tiết mức thấp về BIOS, CPU và bộ nhớ. Dòng quan trọng tiếp theo là bản tóm tắt bộ nhớ hệ thống. Nó luôn bắt đầu bằng “Memory:”. Trên máy thử nghiệm của tôi, đầu ra là:
Bộ nhớ: 1525720K / 1572408K có sẵn (mã hạt nhân 6507K, 641K rwdata, 2752K rodata, 872K init, 924K bss, 46688K dành riêng, 659400K highmem)
Số sau dấu gạch chéo là tổng số bộ nhớ hệ thống có thể truy cập được với hạt nhân Linux, trong trường hợp này là 1.5GB. Tại thời điểm này, Linux gần như đã hoàn thành việc xem xét bộ vi xử lý và bộ nhớ, và nó sẽ sớm chuyển sự chú ý của nó sang phần còn lại của máy bao gồm video, cổng USB, đĩa cứng và vân vân.
Phát hiện phần cứng
Kết quả đầu ra của hạt nhân cũng là một cách tuyệt vời để khám phá cách Linux tương tác với phần cứng trong máy tính của bạn. Ví dụ, để khám phá ổ cứng nào mà hạt nhân nhận ra, bạn có thể tìm kiếm thông điệp cho từ khóa “sda”. Để làm điều này, sử dụng " grep
" như thế này:
dmesg | grep sda
“Sda” là tên được đặt cho đĩa cứng SATA đầu tiên, “sdb” là đĩa cứng SATA thứ hai và vân vân. Nếu bạn không tìm thấy đĩa của bạn dưới "sda", "sdb" vv, hãy thử "hda", "hdb" và như vậy.
Để lấy thông tin về card mạng, hãy tìm “eth0”, ví dụ:
dmesg | grep eth0
Trên máy thử nghiệm của tôi, một trong những dòng sản phẩm liên quan “eth0” cho thấy:
e1000 0000: 00: 03.0 eth0: Kết nối mạng Intel (R) PRO / 1000
Điều này cho tôi biết rằng thẻ Ethernet của tôi là Intel PRO / 1000 (được gọi là e1000).
Nếu bạn lắp một ổ đĩa flash USB và bạn muốn kiểm tra xem nó đã được hạt nhân nhận diện chưa và tên thiết bị nào đã được gán cho nó, bạn có thể thấy vài thông điệp hạt nhân cuối cùng sử dụng tail
:
dmesg | đuôi -20
The -20
nói tail
để hiển thị 20 dòng đầu ra cuối cùng từ dmesg. Đầu ra ví dụ cho thấy rằng một ổ đĩa flash được tạo bởi ADATA được đưa vào cổng USB, nó có dung lượng 8GB và nó đã được gán tên thiết bị của sdd
.
dmesg
có thể là một công cụ rất hữu ích cho các quản trị viên hệ thống. Hãy thử và xem những gì bạn có thể tìm hiểu về hệ thống của mình. Nếu bạn có bất kỳ câu hỏi nào, hãy hỏi họ trong phần bình luận, và chúng tôi sẽ xem chúng tôi có thể giúp gì không.