Bruke dmesg på Linux
Linux-kjernen er et komplekst stykke engineering. Fra oppstart til runlevel 5 multi-user modus, initierer og kjører Linux-kjernen en PCs ressurser, inkludert prosessor, minne, nettverk, videoutgang og lokal lagring. Da kjernen fungerer med alle disse forskjellige delsystemene og ressursene, logger det forskjellige høyt nivå meldinger for å la systemadministratorer vite hva det gjør. Disse meldingene kan vises ved hjelp av kommandoen " dmesg
". Problemet er at utgangen fra kjernen kan virke kompleks og uforståelig for det uopplærte øye. Men med litt hjelp til å forstå det grunnleggende, kan kommandoen " dmesg
" bli et veldig kraftig verktøy i systemadministratorens verktøysett.
Støvel
Den raskeste måten å lære om kjernemeldinger, er å undersøke de første linjene fra oppstartsprosessen. For å se den første siden av utdata, bruk følgende kommando:
dmesg | mindre
De tre første linjene er sannsynlig om initialiseringen av "Kontrollgrupper" for prosessoren. Disse er ikke så interessante med mindre du er en kjernehacker. Men den neste linjen er veldig viktig. Det vil fortelle deg hvilken versjon av Linux-kjernen du kjører.
Utgangen på min testmaskin leser:
Linux versjon 3.13.0-24-generisk (buildd @ roseapple) (gcc versjon 4.8.2 (Ubuntu 4.8.2-19ubuntu1)) # 46-Ubuntu SMP torsdag 10 april 19:08:14 UTC 2014 (Ubuntu 3.13.0- 24, 46-generisk 3, 13, 9)
Hva dette forteller meg er at testmaskinen kjører Linux-kjernen 3.13, som ble utarbeidet av Ubuntu 10. april 2014.
De neste 80 til 100 linjene er alle lavnivå detaljer om BIOS, CPU og minne. Den neste viktige linjen er sammendraget av systemminnet. Det starter alltid med "Minne:". På min testmaskin er utgangen:
Minne: 1525720K / 1572408K tilgjengelig (6507K kjernekode, 641K rwdata, 2752K rodata, 872K init, 924K bss, 46688K reservert, 659400K høyttaler)
Tallet etter skråstrek er den totale mengden systemminne tilgjengelig for Linux-kjernen, i dette tilfellet 1, 5 GB. På dette tidspunktet har Linux nesten ferdig med å se på prosessoren og minnet, og det vil snart vise seg oppmerksomheten til resten av maskinen, inkludert videoen, USB-porter, harddiskene og så videre.
Maskinvareoppdaging
Kjerneutgangen er også en fin måte å oppdage hvordan Linux samhandler med maskinvaren på PCen. For å finne ut hvilke harddisker kjernen gjenkjenner, kan du søke gjennom meldingene for søkeordet "sda". For å gjøre dette, bruk " grep
" slik:
dmesg | grep sda
"Sda" er navnet gitt til den første SATA-harddisken, "sdb" er den andre SATA-harddisken og så videre. Hvis du ikke finner diskene dine under "sda", "sdb" etc., kan du prøve "hda", "hdb" og så videre.
For å få informasjon om nettverkskortet, søk etter "eth0", for eksempel:
dmesg | grep eth0
På min testmaskin viser en av linjene med "eth0" -relatert utgang:
e1000 0000: 00: 03.0 et0: Intel (R) PRO / 1000 nettverkstilkobling
Dette forteller meg at Ethernet-kortet mitt er en Intel PRO / 1000 (kjent som en e1000).
Hvis du setter inn en USB-flash-stasjon, og du vil sjekke om den har blitt gjenkjent av kjernen og hvilket enhetnavn den er tildelt, kan du se de siste kjernemeldingene ved hjelp av tail
:
dmesg | hale -20
-20
forteller tail
å vise de siste 20 linjene av produksjon fra dmesg. Eksempelutgangen viser at en flashdriver fra ADATA ble satt inn i USB-porten, den har en kapasitet på 8 GB, og at den har blitt tildelt enhetsnavnet sdd
.
dmesg
kan være et veldig nyttig verktøy for systemadministratorer. Prøv det og se hva du kan lære om systemet ditt. Hvis du har spørsmål, vennligst spør dem i kommentarfeltet, og vi vil se om vi kan hjelpe.