7 dmesg Kommandoen fir Troubleshooting a Sammelen Informatioun vu Linux Systemer


De Kommando 'dmesg' weist d'Messagen aus dem Kernelringbuffer. E System passéiert multiple Runlevel vu wou mir vill Informatioun kréien wéi Systemarchitektur, CPU, befestegt Apparat, RAM etc. Wann de Computer opstart, gëtt e Kernel (Kär vun engem Betribssystem) an d'Erënnerung gelueden. Wärend dëser Period ginn d'Zuel vu Messagen ugewisen, wou mir Hardwaregeräter gesinn, déi vum Kernel festgestallt ginn.

Liest och: 10 Linux Kommandoen fir System- an Hardwareinformatioun ze sammelen

D'Messagen si ganz wichteg wat den Zweck vun der Diagnostik am Fall vun engem Apparatausfall ugeet. Wann mir Verbindung oder trennt Hardware Apparat op de System, mat der Hëllef vun dmesg Kommando mir kennen entdeckt oder disconnected Informatiounen op der fléien. De Kommando dmesg ass op de meescht Linux an Unix baséiert Betribssystem verfügbar.

Loosst eis e bësse Liicht op de bekanntste Tool mam Numm 'dmesg' Kommando werfen mat hire praktesche Beispiller wéi hei ënnen diskutéiert. Déi exakt Syntax vun dmesg wéi follegt.

# dmseg [options...]

1. Lëscht all gelueden Treiber am Kernel

Mir kënnen Textmanipulatiounsinstrumenter benotzen dh 'méi', 'Schwäif', 'manner' oder 'grep ' mam Kommando dmesg. Well d'Ausgab vum dmesg Log net op enger eenzeger Säit passt, benotzt dmesg mat Pipe méi oder manner Kommando Logbicher op enger eenzeger Säit.

 dmesg | more
 dmesg | less
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.11.0-13-generic ([email ) (gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu8) ) #20-Ubuntu SMP Wed Oct 23 17:26:33 UTC 2013 
(Ubuntu 3.11.0-13.20-generic 3.11.6)
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   NSC Geode by NSC
[    0.000000]   Cyrix CyrixInstead
[    0.000000]   Centaur CentaurHauls
[    0.000000]   Transmeta GenuineTMx86
[    0.000000]   Transmeta TransmetaCPU
[    0.000000]   UMC UMC UMC UMC
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] usable
[    0.000000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000007dc5ec00-0x000000007fffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fed003ff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed20000-0x00000000fed9ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000feefffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffb00000-0x00000000ffffffff] reserved
[    0.000000] NX (Execute Disable) protection: active
.....

Lies Och: Verwalte Linux Dateien Effektiv mat Kommandoen Kapp, Schwanz a Kaz

2. Lëscht all entdeckt Apparater

Fir ze entdecken wéi eng Festplacke vum Kernel entdeckt goufen, kënnt Dir no dem Schlësselwuert sda zesumme mat grep sichen wéi hei ënnendrënner.

 dmesg | grep sda

[    1.280971] sd 2:0:0:0: [sda] 488281250 512-byte logical blocks: (250 GB/232 GiB)
[    1.281014] sd 2:0:0:0: [sda] Write Protect is off
[    1.281016] sd 2:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    1.281039] sd 2:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    1.359585]  sda: sda1 sda2 < sda5 sda6 sda7 sda8 >
[    1.360052] sd 2:0:0:0: [sda] Attached SCSI disk
[    2.347887] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null)
[   22.928440] Adding 3905532k swap on /dev/sda6.  Priority:-1 extents:1 across:3905532k FS
[   23.950543] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro
[   24.134016] EXT4-fs (sda5): mounted filesystem with ordered data mode. Opts: (null)
[   24.330762] EXT4-fs (sda7): mounted filesystem with ordered data mode. Opts: (null)
[   24.561015] EXT4-fs (sda8): mounted filesystem with ordered data mode. Opts: (null)

NOTÉIERT: Déi 'sda' éischt SATA Festplack, 'sdb' ass déi zweet SATA Festplack a sou weider. Sicht mat 'hda' oder 'hdb' am Fall vun IDE Festplack.

3. Drécken Nëmmen Éischt 20 Linnen Ausgang

De 'Kapp' zesumme mat dmesg wäert Startlinnen weisen dh 'dmesg | Kapp -20 'dréckt nëmmen 20 Linnen vum Startpunkt.

 dmesg | head  -20

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.11.0-13-generic ([email ) (gcc version 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu8) ) #20-Ubuntu SMP Wed Oct 23 17:26:33 UTC 2013 (Ubuntu 3.11.0-13.20-generic 3.11.6)
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   NSC Geode by NSC
[    0.000000]   Cyrix CyrixInstead
[    0.000000]   Centaur CentaurHauls
[    0.000000]   Transmeta GenuineTMx86
[    0.000000]   Transmeta TransmetaCPU
[    0.000000]   UMC UMC UMC UMC
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
[    0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] usable
[    0.000000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] ACPI data
[    0.000000] BIOS-e820: [mem 0x000000007dc5ec00-0x000000007fffffff] reserved

4. Drécken Nëmmen lescht 20 Linnen vun Ausgabe

De 'Schwanz' zesumme mam dmesg Kommando dréckt nëmmen 20 lescht Zeilen, dëst ass nëtzlech am Fall wou mir en eraushuelbare Gerät aginn.

 dmesg | tail -20

parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE]
ppdev: user-space parallel port driver
EXT4-fs (sda1): mounted filesystem with ordered data mode
Adding 2097144k swap on /dev/sda2.  Priority:-1 extents:1 across:2097144k
readahead-disable-service: delaying service auditd
ip_tables: (C) 2000-2006 Netfilter Core Team
nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
NET: Registered protocol family 10
lo: Disabled Privacy Extensions
e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
Slow work thread pool: Starting up
Slow work thread pool: Ready
FS-Cache: Loaded
CacheFiles: Loaded
CacheFiles: Security denies permission to nominate security context: error -95
eth0: no IPv6 routers present
type=1305 audit(1398268784.593:18630): audit_enabled=0 old=1 auid=4294967295 ses=4294967295 res=1
readahead-collector: starting delayed service auditd
readahead-collector: sorting
readahead-collector: finished

5. Sich entdeckt Apparat oder Besonnesch String

Et ass schwéier eng bestëmmte String ze sichen wéinst der Längt vum dmesg Output. Also, filtert d'Zeilen mat String wéi 'usb' 'dma' 'tty' an 'Erënnerung' etc. D'Optioun '-i' instruéiert de grep Kommando fir de Fall ze ignoréieren (Uewer- oder Klengbuchstaben).

 dmesg | grep -i usb
 dmesg | grep -i dma
 dmesg | grep -i tty
 dmesg | grep -i memory
[    0.000000] Scanning 1 areas for low memory corruption
[    0.000000] initial memory mapped: [mem 0x00000000-0x01ffffff]
[    0.000000] Base memory trampoline at [c009b000] 9b000 size 16384
[    0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff]
[    0.000000] init_memory_mapping: [mem 0x37800000-0x379fffff]
[    0.000000] init_memory_mapping: [mem 0x34000000-0x377fffff]
[    0.000000] init_memory_mapping: [mem 0x00100000-0x33ffffff]
[    0.000000] init_memory_mapping: [mem 0x37a00000-0x37bfdfff]
[    0.000000] Early memory node ranges
[    0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x000effff]
[    0.000000] PM: Registered nosave memory: [mem 0x000f0000-0x000fffff]
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Memory: 2003288K/2059928K available (6352K kernel code, 607K rwdata, 2640K rodata, 880K init, 908K bss, 56640K reserved, 1146920K highmem)
[    0.000000] virtual kernel memory layout:
[    0.004291] Initializing cgroup subsys memory
[    0.004609] Freeing SMP alternatives memory: 28K (c1a3e000 - c1a45000)
[    0.899622] Freeing initrd memory: 23616K (f51d0000 - f68e0000)
[    0.899813] Scanning for low memory corruption every 60 seconds
[    0.946323] agpgart-intel 0000:00:00.0: detected 32768K stolen memory
[    1.360318] Freeing unused kernel memory: 880K (c1962000 - c1a3e000)
[    1.429066] [drm] Memory usable by graphics device = 2048M

6. Kloer dmesg Buffer Logbicher

Jo, mir kënnen dmesg Logbicher läschen wann néideg mam Kommando ënnen. Et wäert dmesg Ring Puffer Message Logbicher läschen bis Dir de Kommando hei ënnen ausgefouert hutt. Dir kënnt nach ëmmer Logbicher gesinn, déi an '/ var/log/dmesg' Dateien gespäichert sinn. Wann Dir all Apparat konnektéieren wäert dmesg Output generéieren.

 dmesg -c

7. Iwwerwachung dmesg an Real Time

E puer Distro erlaabt de Kommando 'Schwanz -f /var/log/dmesg' och fir Echtzäit dmesg Iwwerwaachung.

 watch "dmesg | tail -20"

Fazit: De Kommando dmesg ass nëtzlech well dmesg all d'Systemännerunge registréiert oder an Echtzäit geschitt. Wéi ëmmer kënnt Dir man dmesg fir méi Informatiounen ze kréien.