Använda dmesg på Linux
Linuxkärnan är ett komplext stycke teknik. Från start-up till runlevel 5 multi-user-läge initierar och hanterar Linux-kärnan en dators resurser, inklusive processor, minne, nätverk, videoutgång och lokal lagring. Eftersom kärnan arbetar med alla dessa olika delsystem och resurser loggar den på olika högnivåmeddelanden för att låta systemadministratörer veta vad det gör. Dessa meddelanden kan ses med kommandot " dmesg
". Problemet är att utsignalen från kärnan kan verka komplex och oförstålig för det otränna ögat. Men med lite hjälp med att förstå grunderna kan kommandot " dmesg
" bli ett mycket kraftfullt verktyg i systemadministrators verktygssats.
Känga
Det snabbaste sättet att lära sig om kärnmeddelanden är att undersöka de första linjerna från startprocessen. För att se den första sidan av produktionen, använd följande kommando:
dmesg | mindre
De tre första raderna beror sannolikt på initialiseringen av "Control Groups" för processorn. Det här är inte så intressant om du inte är en kärnhackare. Nästa rad är dock väldigt viktigt. Det kommer att berätta vilken version av Linux-kärnan du kör.
Utgången på min testmaskin läser:
Linux version 3.13.0-24-generic (buildd @ roseapple) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)) # 46-Ubuntu SMP Thu 10 april 19:08:14 UTC 2014 (Ubuntu 3.13.0- 24, 46-generisk 3, 13, 9)
Vad det här berättar för mig är att min testmaskin kör Linux-kärnan 3.13 som sammanställdes av Ubuntu den 10 april 2014.
De följande 80-100 linjerna är alla lågnivå detaljer om BIOS, CPU och minnet. Nästa viktiga rad är sammanfattningen av systemminnet. Det börjar alltid med "Memory:". På min testmaskin är utmatningen:
Minne: 1525720K / 1572408K tillgängligt (6507K kärnkod, 641K rwdata, 2752K rodata, 872K init, 924K bss, 46688K reserverad, 659400K highmem)
Antalet efter snedstrecket är den totala mängden systemminne tillgängligt för Linux-kärnan, i det här fallet 1, 5GB. Vid denna tidpunkt har Linux nästan slutat titta på processorn och minnet, och det kommer snart att bli uppmärksam på resten av maskinen, inklusive video, USB-portar, hårddiskar och så vidare.
Hårdvara upptäckt
Kärnutmatningen är också ett bra sätt att upptäcka hur Linux interagerar med hårdvaran i din dator. För att upptäcka vilka hårddiskar kärnan känner igen kan du söka igenom meddelandena för sökordet "sda". För att göra detta, använd " grep
" så här:
dmesg | grep sda
"Sda" är namnet på den första SATA-hårddisken, "sdb" är den andra SATA-hårddisken och så vidare. Om du inte hittar dina skivor under "sda", "sdb" etc., försök "hda", "hdb" och så vidare.
För information om nätverkskortet, sök efter "et0", till exempel:
dmesg | grep eth0
På min testmaskin visar en av raderna av "eth0" -relaterad produktion:
e1000 0000: 00: 03.0 et0: Intel (R) PRO / 1000 nätverksanslutning
Detta berättar att mitt Ethernet-kort är en Intel PRO / 1000 (känd som en e1000).
Om du sätter in en USB-flash-enhet och du vill kontrollera om den har identifierats av kärnan och vilket enhetnamn det har tilldelats kan du se de senaste kärnmeddelandena med hjälp av tail
:
dmesg | svans -20
-20
berättar tail
att visa de senaste 20 produktionslinjerna från dmesg. Exemplet visar att en flash-enhet från ADATA sätts in i USB-porten, den har en kapacitet på 8 GB och att den har tilldelats enhetens namn på sdd
.
dmesg
kan vara ett mycket användbart verktyg för systemadministratörer. Ge det ett försök och se vad du kan lära dig om ditt system. Om du har några frågor, fråga dem i kommentarfältet, så ser vi om vi kan hjälpa till.