7 comandos ‘dmesg’ para solucionar problemas y recopilar información de sistemas Linux

7 comandos ‘dmesg’ para solucionar problemas y recopilar información de sistemas Linux

El comando “ dmesg ” muestra los mensajes del búfer de anillo del kernel. Un sistema pasa varios niveles de ejecución desde donde podemos obtener mucha información como arquitectura del sistema, CPU, dispositivo adjunto, RAM, etc. Cuando la computadora arranca, un kernel (núcleo de un sistema operativo) se carga en la memoria. Durante ese período, se muestran una cantidad de mensajes donde podemos ver los dispositivos de hardware detectados por el kernel.

Lea también. 10 comandos de Linux para recopilar el sistema y Información de hardware

 dmesg Command Examples  Ejemplos de comandos dmesg Ejemplos de comandos dmesg

Los mensajes son muy importantes en términos de propósito de diagnóstico en caso de falla del dispositivo. Cuando conectamos o desconectamos un dispositivo de hardware en el sistema, con la ayuda del comando dmesg llegamos a conocer la información detectada o desconectada sobre la marcha. El comando dmesg está disponible en la mayoría de los sistemas operativos basados ​​en Linux y Unix .

Vamos a arrojar algo de luz sobre la herramienta más famosa llamada comando ‘dmesg’ con su ejemplos prácticos como se explica a continuación. La sintaxis exacta de dmesg es la siguiente.

# dmseg [opciones …]

1. Enumere todos los controladores cargados en el kernel

Podemos usar herramientas de manipulación de texto, es decir, ‘ más ‘, ‘ cola ‘, ‘ menos ‘o’ grep ‘con el comando dmesg. Como la salida del registro de dmesg no cabe en una sola página, el uso de dmesg con el comando pipe más o menos mostrará los registros en una sola página.

[[email protected] ~] # dmesg | más [[email protected] ~] # dmesg | menos Salida de muestra [0.000000] Inicializando cgroup subsys cpuset [0.000000] Inicializando cgroup subsys cpu [0.000000] Inicializando cgroup subsys cpuacct [0.000000] Linux versión 3.11.0-13-generic ([email protected]) (gcc versión 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu8)) # 20-Ubuntu SMP Mié 23 de octubre 17:26:33 UTC 2013 (Ubuntu 3.11.0-13.20-generic 3.11.6) [0.000000] CPU compatible con KERNEL: [0.000000] Intel GenuineIntel [ 0.000000] AMD AuthenticAMD [0.000000] NSC Geode por NSC [0.000000] Cyrix Cyrix En lugar [0.000000] Centaur CentaurHauls [0.000000] Transmeta GenuineTMx86 [0.000000] Transmeta TransmetaCPU [0.000000] UMC UMC UMC UMC [0.000000] e820: mapa físico proporcionado por BIOS [0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable [0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reservado [0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] usable [ 0.000000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS [0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] Datos ACPI [0.000000] BIOS-e820: [mem 0x00000000007dc5e0000 reservado] [mem 0x00000000e0000000-0x00000000efffffff] reservado [0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fed003ff] reservado [0.000000] BIOS-e820: [mem 0x00000000fed20000-0x00000000fed9ffff] reservado [0.000000] BIOS-e8200000 0.000000] BIOS-e820: [mem 0x00000000ffb00000-0x00000000ffffffff] reservado [0.000000] Protección NX (Execute Disable): activa ….. freestar.config.enabled_slots.push (LocationName: “tecmint_incontent”, slotId: “tecmint_incontent” );

Lea también : Administre archivos de Linux de manera efectiva usando los comandos head, tail y cat

2. Enumere todos los dispositivos detectados

Para descubrir qué discos duros ha detectado el kernel, puede buscar la palabra clave “ sda. junto con “ grep. como se muestra a continuación.

[[email protected] ~] # dmesg | grep sda [1.280971] sd 2: 0: 0: 0: [ sda ] 488281250 Bloques lógicos de 512 bytes: (250 GB/232 GiB) [1.281014] sd 2: 0: 0: 0: [ sda ] La protección contra escritura está desactivada [1.281016] sd 2: 0: 0: 0: [ sda ] Mode Sense: 00 3a 00 00 [1.281039] sd 2: 0: 0: 0: [ sda ] Caché de escritura: habilitado, leer caché: habilitado, no es compatible con DPO o FUA [1.359585] sda : sda 1 sda 2 < sda 5 sda 6 sda 7 sda 8> [1.360052] sd 2: 0: 0: 0: [ sda ] Disco SCSI adjunto [2.347887] EXT4-fs ( sda 1): sistema de archivos montado con modo de datos ordenados. Opciones: (nulo) [22.928440] Añadiendo 3905532k swap en/dev/ sda 6. Prioridad:-1 extensión: 1 transversal: 3905532k FS [23.950543] EXT4-fs ( sda 1): vuelto a montar. Opciones: errors = remount-ro [24.134016] EXT4-fs ( sda 5): sistema de archivos montado con modo de datos ordenado. Opciones: (nulo) [24.330762] EXT4-fs ( sda 7): sistema de archivos montado con modo de datos ordenado. Opciones: (nulo) [24.561015] EXT4-fs ( sda 8): sistema de archivos montado con modo de datos ordenado. Opciones: (nulo)

NOTA. El primer disco duro SATA “sda”, “sdb” es el segundo disco duro SATA y así sucesivamente. Busque con “hda” o “hdb” en el caso del disco duro IDE.

3. Imprima solo las primeras 20 líneas de salida

El “encabezado” junto con dmesg mostrará las líneas de inicio, es decir, “dmesg | head-20 ‘imprimirá solo 20 líneas desde el punto de partida.

[[email protected] ~] # dmesg | head-20 [0.000000] Inicializando cgroup subsys cpuset [0.000000] Inicializando cgroup subsys cpu [0.000000] Inicializando cgroup subsys cpuacct [0.000000] Linux versión 3.11.0-13-generic ([email protected]) (gcc versión 4.8.1 (Ubuntu/Linaro 4.8.1-10ubuntu8)) # 20-Ubuntu SMP Mié 23 de octubre 17:26:33 UTC 2013 (Ubuntu 3.11.0-13.20-generic 3.11.6) [0.000000] CPU compatible con KERNEL: [0.000000] Intel GenuineIntel [ 0.000000] AMD AuthenticAMD [0.000000] NSC Geode por NSC [0.000000] Cyrix Cyrix En lugar [0.000000] Centaur CentaurHauls [0.000000] Transmeta GenuineTMx86 [0.000000] Transmeta TransmetaCPU [0.000000] UMC UMC UMC UMC [0.000000] e820: mapa físico proporcionado por BIOS [0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable [0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reservado [0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007dc08bff] usable [0.00 0000] BIOS-e820: [mem 0x000000007dc08c00-0x000000007dc5cbff] ACPI NVS [0.000000] BIOS-e820: [mem 0x000000007dc5cc00-0x000000007dc5ebff] Datos ACPI [0.000000] BIOS-e820: [mem 0x0000ff007dc50000 reservado Imprimir solo las últimas 20 líneas de salida

La ‘cola’ junto con el comando dmesg imprimirá solo las 20 últimas líneas, esto es útil en caso de que insertemos un dispositivo extraíble.

[[email protected] ~] # dmesg | tail-20 parport0: estilo PC en 0x378, irq 7 [PCSPP, TRISTATE] ppdev: controlador de puerto paralelo de espacio de usuario EXT4-fs (sda1): sistema de archivos montado con modo de datos ordenado Agregando 2097144k swap en/dev/sda2. Prioridad:-1 extensiones: 1 en: 2097144k readahead-disable-service: retrasar el servicio auditd ip_tables: (C) 2000-2006 Netfilter Core Team nf_conntrack versión 0.5.0 (16384 buckets, 65536 max) NET: Familia de protocolos registrada 10 lo: Extensiones de privacidad deshabilitadas e1000: eth0 El enlace NIC está activo 1000 Mbps Full Duplex, Control de flujo: Ninguno Grupo de subprocesos de trabajo lento: Iniciando Grupo de subprocesos de trabajo lento: Ready FS-Cache: Loaded CacheFiles: Loaded CacheFiles: Security deniega el permiso para nominar el contexto de seguridad: error-95 eth0: no hay enrutadores IPv6 presentes tipo = 1305 audit (1398268784.593: 18630): audit_enabled = 0 old = 1 auid = 4294967295 ses = 4294967295 res = 1 readhead-collector: inicio del servicio retardado auditado readhead-collector: clasificación readhead-collector : terminado

5. Buscar dispositivo detectado o cadena en particular

Es difícil buscar una cadena en particular debido a la longitud de la salida dmesg. Por lo tanto, filtre las líneas con cadenas como ‘ usb. ‘ dma. ‘ tty. y ‘ memoria. ‘etc. La opción’-i ‘indica al comando grep que ignore el caso (letras mayúsculas o minúsculas).

[[correo electrónico protegido] registro] # dmesg | grep-i usb [[email protected] log] # dmesg | grep-i dma [[correo electrónico protegido] registro] # dmesg | grep-i tty [[email protected] log] # dmesg | grep-i memoria Salida de muestra [0.000000] Escaneando 1 áreas en busca de memoria corrupta [0.000000] inicial memoria mapeado: [mem 0x00000000-0x01ffffff] [0.000000] Base memoria trampolín en [c009b000] 9b000 tamaño 16384 [0.000000] init_ memoria _mapping: [mem 0x00000000-0x000fffff] [0.000000] init_ memoria _mapping: [mem 0x37800000-0x379fffff] [0.000000] init_ memoria _mapping: [mem 0x34000000-0x377fffff] [0.000000] init_ memoria _mapping: [mem 0x00100000-0x33ffffff] [ 0.000000] init_ memory _mapping: [mem 0x37a00000-0x37bfdfff] [0.000000] Early rangos de nodos de memoria [ 0.000000] PM: Nosave memoria registrados: [mem 0x0009f000-0x000effff] [0.000000] PM: Nosav registrados e memoria : [mem 0x000f0000-0x000fffff] [0.000000] por favor pruebe la opción ‘cgroup_disable = memory ‘ si no desea memoria cgroups [0.000000] memoria : 2003288K/2059928K disponible (kernel 6352K código, 607K rwdata, 2640K rodata, 880K init, 908K bss, 56640K reservado, 1146920K highmem) [0.000000] kernel virtual diseño de memoria : [0.004291] Inicializando cgroup subsys b style = “color: yellow;”> memoria [0.004609] Liberando alternativas de SMP memoria : 28K (c1a3e000-c1a45000) [0.899622] Liberando initrd memoria : 23616K (f51d0000-f68e0000) [0.899813] Escaneando memoria baja cada 60 segundos [0.946323 ] agpgart-intel 0000: 00: 00.0: detectado 32768K robado memoria [1.360318] Liberando kern sin usar el memoria : 880K (c1962000-c1a3e000) [1.429066] [drm] Memoria utilizable por dispositivo gráfico = 2048 millones

6. Borrar registros del búfer de dmesg

Sí, podemos borrar los registros de dmesg si es necesario con el siguiente comando. Borrará los registros de mensajes del búfer de anillo de dmesg hasta que ejecute el siguiente comando. Aún puede ver los registros almacenados en archivos “/var/log/dmesg. . Si conecta cualquier dispositivo, se generará una salida dmesg.

[[email protected] log] # dmesg-c

7. Monitoreo de dmesg en tiempo real

Algunas distribuciones permiten el comando ‘tail-f/var/log/dmesg’ así como el monitoreo de dmesg en tiempo real.

[[email protected] log] # watch “dmesg | tail-20 “

Conclusión. El comando dmesg es útil ya que dmesg registra todos los cambios del sistema realizados o que ocurren en tiempo real. Como siempre, puede man dmesg para obtener más información.