Troubleshooting: guía de resolución de problemas en sistemas GNU / Linux – Parte 2/3

En el primer artículo sobre reparación o resolución de problemas en sistemas GNU/Linux intenté mostrar algunos consejos y catalogar los tipos de fallos que te podrías encontrar. Ahora toca ir un paso más allá para para mostrar cómo se puede realizar un buen diagnóstico usando los logs, o registros del sistema, e interpretar los códigos de error.

Es decir, ahora es el momento de comenzar a localizar el origen de esos problemas que te están molestando y puedas proceder a resolverlos…

Los mensajes de error son orientativos. He intentado poner los más representativos para que sirvan como modelo. Pueden ser diferentes, pero esta lista te puede ayudar a encontrar la fuente del problema.

Mensajes de error

En muchos casos, cuando algo va mal en el sistema, se hace muy evidente. Ya sea porque algo no funciona o porque se muestra un mensaje de error. Por desgracia, otras veces puede que un problema no esté causando alguna consecuencia evidente al usuario o administrador del sistema.

Errores de hardware

Uno de estos fallos de hardware podría causar que:

  • Un periférico o componente no funcione o que su funcionamiento sea anómalo. En tal caso, se puede deducir que el problema está en dicho componente o en los sistemas implicados (controladores, conexión, IRQs, incompatibilidad, etc.).
  • Algunos componentes también podrían generar errores, especialmente cuando el problema está en la memoria, y bastaría con interpretar el error.
  • Incluso que no haya imagen debido a problemas en el sistema gráfico. En este caso, es igualmente sencillo pensar dónde está el problema.
  • En otras ocasiones, el sistema directamente ni siquiera enciende, siendo ese el peor de los casos al no tener información directa de lo que ocurre.

Más información: ver los próximos artículos que publicaré tras este que estarán dedicados al diagnóstico y reparación del hardware.

Es complicado listar todos los errores que se pueden generar debido a problemas del hardware, pero aquí incluyo algunos de los más habituales que me he encontrado en mi experiencia:

  • RAM:
    • Memory size error
    • RAM Parity Error
    • Memory Test Failure
    • Segmentation fault
    • Bad Address…
    • Unable to handle kernel paging request at virtual address
    • *También puede causar: Kernel Panic, Beep code,…
  • PSU:
    • *Algún componente no funciona por falta de suministro eléctrico. También causa reinicios o apagones inesperados.
  • BIOS/UEFI:
    • CMOS Batery Failed.
    • EFI error…
    • Geom error (puede ser debido a la geometría del disco o a un BIOS desactualizado)
    • La hora y fecha del sistema cambia cada vez que se reinicia o se enciende (si no está sincronizado por NTP).
    • *Más información: ver P.O.S.T. y beep codes.
  • HDD/SSD:
    • Bad or Missing <nombre fichero>
    • No caching mode page found
    • Cannot read sector
    • Attempt to Read Block from Filesystem Resulted in Short Read…
    • I/O Error…
    • Invalid System Disk
    • Filesystem corruption.
    • Memory error…
    • Hard disk(s) failure…
    • Hard disk not found / Drive not found
    • Error initializing hard disk controller
    • Not system disk…
    • Read/Write failure… / Access failure…
    • Medium not found…
    • Failure to mount…
    • Insufficient free space… / Insufficient storage…
    • *También puede causar errores P.O.S.T., imposibilidad de instalar un sistema operativo, corrupción de datos, lentitud al acceder a la información, ruidos extraños, etc.
  • GPU:
    • GPU error… / fb error… o frame buffer error… / Video error…
    • *También puede causar glitches, ausencia de imagen (pantalla negra), cuelgues del sistema, otros errores en logs. 
  • CPU:
    • MCE (Macine-Check Exception) error…
    • SMP Boot error…
    • *También puede causar otros mensajes P.O.S.T. o beep codes, kernel panics (especialmente en máquinas multicore o MP donde solo afecta a una unidad y el sistema sigue funcionando), inestabilidad, errores, reinicios o apagados sin previo aviso, lentitud, aceleración de los ventiladores debido a sobrecalentamiento, o disparo de la temperatura medida por los sensores, etc.
  • Placa base:
    • Primary/Secondary Master/Slave XXX failure (donde XXX puede ser IDE, SATA, …)
    • PS/2 error…
    • Offending segment… / Offending address not found… / I/O error…
    • USB error…
    • PCI error…
    • Bus error…
    • ACPI error…
    • Device not accepting address
    • *Puede no generar ningún tipo de error y directamente no arrancar, tener condensadores hinchados, que alguno de los elementos conetados a la placa base no funcione, etc.
  • Periféricos de entrada y salida:
    • Floppy disk failure…
    • Keyboard stopped working…
    • Input/Output device error…
    • CUPS failure… / Printing error… / Filter failed…
    • Network error…
    • I/O error…
    • xHCI/OHCI error…
    • Serial/Parallel error…
    • *También puede ocurrir que ese dispositivo funcione lento, se produzca disfunción, o no funcione.

Errores de software

El problema puede que no tenga nada que ver con el hardware, y que se trate de un problema que es puramente de software. En tal caso, se suelen lanzar mensajes de error con información del problema o se suele registrar información del error en los logs del sistema. En esos casos, los errores más habituales suelen ser:

Si quieres ver todos los posibles mensajes de error que arroja el kernel Linux, te recomiendo buscar en /usr/include/asm/errno.h.

  • Arranque: cuando algo va mal durante el arranque puede que el sistema inicie de forma normal, pero que se muestren mensajes en pantalla durante el inicio o que aparezcan entradas en los registros sobre este tipo de eventos. En algunas ocasiones, el problema puede ser algo más grave y evitar que el sistema inicie con normalidad. Lo habitual es:
    • Boot error…
    • You need to load kernel first
    • GRUB error / Bootloader error
    • Initmem
    • Initramfs error…
    • VFS: Unable to mount root…
    • Attempt to kill init…
    • Error X:… (siendo X un número y tras los dos puntos indicará más información del elemento que falla). Suceden durante la etapa 2 del inicio de GRUB, y suelen hacer referencia a problemas con el disco duro, FS, tabla de particiones, sector MBR/GPT, o particiones, ficheros que no se encuentran por problemas con la memoria, corrupción de datos, etc. Más información sobre los códigos de error.
  • Controladores/firmware: este tipo de problemas puede hacer que algún componente de hardware no funcione adecuadamente, o que el sistema no arranque si pertenece a algún elemento esencial, como la memoria. Generalmente se pueden solucionar instalando el controlador/módulo adecuado, o actualizando el firmware. En cuanto a los errores típicos:
    • Driver error…
    • Microcode error…
    • Firmware bug…
    • Controller not found…
    • Module verification failed…
    • Module will not load…
  • Dependencias: también son muy frecuentes los errores de dependencias de paquetes o bibliotecas. Generalmene se dan a la hora de instalar o la primera vez que se inicia un programa (o incluso puede aparecer más adelante si el paquete del que depende se ha eliminado). Suelen ocurrir cuando se pretende instalar un software sin gestor de paquetes, cuando la versión de la biblioteca necesaria no es la adecuada, se ha renombrado, cambió de ruta, etc. Se pueden solucionar satisfaciendo la dependencia. En cuanto a los errores tipo son:
    • Cannot open shared object file: Not such file or directory
    • Error while loading shared libraries
    • Cannot specify link libraries for target
    • ERROR: Native dependency ‘nombre_paquete’ not found
    • ERROR: Cannot install package_1 and package_2 because these package versions have conflicting dependencies.
    • Dependency problems event
    • Missing library
    • Unmet dependencies
    • Broken packages
    • Packages have been kept back
    • Error while loading shared
    • Libraries: nombre_libreria: cannot open shared object file: No such file or directory
  • Otros: además de los anteriores, también suele haber otros muchos errores de los distintos programas que se usan. En estos casos, generalmente solo afectan al propio programa afectado o a los ficheros a los que accede. Aquí la solución podría ser de lo más variado, ya que cada app o servicio es muy diferente. Los errores típicos pueden ser:
    • Error: function X doesn’t exist (cuando alguna función del programa no funciona)
    • Failed to commit transaction (pueden ocurrir durante las actualizaciones)
    • File or directory not found / No such file or directory (no se encuentra algún fichero o directorio o su nombre no es correcto)
    • Fail while… (un fallo durante un proceso)
    • Not xxx in format  / Invalid… (problemas de formatos o corrupción de datos)
    • Error issue xxx (se puede buscar el error para determinar qué lo causó)
    • Permission denied / Requested operation requires privileged (falta de privilegios)
    • Device full (el medio que se pretende usar está ocupado o completo)
    • Package cannot be… / Unable to… (el paquete no puede hacer algo)
    • Event not found (suele ser problemas al teclear los comandos)
    • Error code XXX (si se busca el código en la documentación del programa se puede determinar la causa)

Errores durante la compilación

Aunque esto no solo afecta a los desarrolladores, es probable que cuando escribes un código fuente, o script, puedan aparecer errores, ya sea durante el lanzamiento del script o durante la compilación del código para obtener el binario. Los errores más frecuentes de este tipo son:

  • Warnings: durante la compilación el compilador o IDE lanzará avisos. No siempre son alertas reales, pueden ser simples sugerencias para que el código sea de mejor calidad, más portable, etc. Para más información, puedes leer el manual del software de desarrollo que uses.
  • Errores: durante el linking también pueden lanzarse errores. Suelen estar asociados con los ficheros de cabecera o bibliotecas.
  • Problemas de compilación: puede suceder también que el código no compile, en este caso si son fallos importantes en el código que se deben corregir. Generalmente, los mensajes de error suelen dar pistas sobre la línea donde se encuentra y el tipo de problema que es (problemas estructurales, funciones/variables/constantes no declaradas, argumentos inválidos, nombres mal escritos, se te ha olvidado algún carácter, etc.).
  • Run-time: también pueden suceder durante la ejecución del binario o script. Se deben a bugs que deberían ser corregidos durante la depuración.

Logs del sistema: buscar el origen saber que necesita reparación

A parte de los mensajes o indicios que se puedan lanzar al usuario o administrador, también es importante saber dónde buscar este tipo de eventos si no han aparecido. Para ello hay que consultar los logs o registros de Linux:

  • Logs de aplicaciones:
    • /var/log/nombre_programa/: muchas aplicaciones que se instalan en el sistema tienen su propio directorio con ficheros de registros que puedes consultar. Allí se registrarán todos los errores que generen estas apps y te ayudarán a determinar cuál es el problema del fallo que estás experimentando.
  • Logs de eventos:
    • /var/log/auth.log: registro sobre los logins de usuarios que se registran al sistema, fallos al introducir contraseñas, etc.
    • /var/log/secure: otro registro importante para la seguridad. Pero recuerda que los logs no son infalibles, ya que se pueden editar o borrar… Aunque si hay entradas eliminadas, puede haber saltos extraños.
    • /var/log/lastlog: registra los accesos de usuarios al sistema.
    • /var/log/cron.log: mensajes sobre eventos de las tareas programadas.
    • /var/log/utmp /var/log/wtmp o /var/log/btmp: información referente a logins y logouts del sistema.
  • Logs de servicios (demonios):
    • /var/log/maillog: contiene mensajes relacionados con el sistema de correo electrónico.
    • /var/log/qmail/: para el servicio qmail.
    • /var/log/httpd/: para el servicio web.
    • /var/log/mysqld.log: para el servicio de base de datos.
    • /var/log/cups/: dentro contiene ficheros sobre el sistema de impresión.
    • /var/log/Xorg.0.log: información de mensajes sobre el servidor gráfico.
  • Logs del sistema:
    • /var/log/messages: datos de registro del kernel y otros mensajes genéricos del sistema operativo. Suelen ser mensajes con prioridades o niveles más leves.
    • /var/log/kern.log: almacena mensajes generados por klogd del kernel.
    • /var/log/syslog: permite localizar multitud de problemas, ya que registra muchos menajes genéricos del sistema.
    • /var/log/boot.log: o /var/log/dmesg: contienen información valiosa de eventos o errores que se registran tras el arranque del sistema. Se trata de información del buffer circular del kernel. Pueden revelar problemas con controladores, hardware, kernel, etc.
    • /var/crash: para los system crash dump o volcados.

Isaac

Apasionado de la computación y la tecnología en general. Siempre intentando desaprender para apreHender.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto:

Si continuas utilizando este sitio aceptas el uso de cookies. más información

Los ajustes de cookies de esta web están configurados para "permitir cookies" y así ofrecerte la mejor experiencia de navegación posible. Si sigues utilizando esta web sin cambiar tus ajustes de cookies o haces clic en "Aceptar" estarás dando tu consentimiento a esto.

Cerrar