Preparación para el Examen 201 de LPI: Solución de problemas

Tema 214 de Intermediate Level Administration (LPIC-2)

En este tutorial, Brad Huntting y David Mertz continúan preparándolo para rendir el®Examen 201 de Intermediate Level Administration (LPIC-2) del Linux Professional Institute. Este tutorial, el último de ocho tutoriales, se enfoca en lo que usted puede hacer cuando las cosas no marchan bien. El mismo se basa en material ya tratado con mayor detalle en tutoriales anteriores.

Brad Huntting, Mathematician, University of Colorado

Brad se encarga de la administración de sistemas UNIX®y de ingeniería de redes para varias compañías desde hace 14 años. En la actualidad, está cursando un Doctorado en Matemática Aplicada en la Universidad de Colorado en Boulder, y paga sus estudios trabajando en soporte de UNIX para el departamento de Ciencias de la Computación.



David Mertz, Developer, Gnosis Software

David MertzDavid Mertz es Turing completo, pero probablemente no apruebe la Prueba de Turing. Para conocer más acerca de su vida, consulte su página Web personal. David escribe las columnas developerWorks Charming Python y XML Matters desde el año 2000. Consulte su libro Text Processing in Python [Procesamiento de texto en Python].



28-07-2010

Antes de comenzar

Aprenda lo que estos tutoriales pueden enseñarle y cómo obtener el máximo beneficio de ellos.

Acerca de esta serie

El Linux Professional Institute(LPI) certifica a los administradores de sistemas Linux en los niveles junior e intermedio. Para alcanzar cada nivel de certificación, usted debe aprobar dos exámenes LPI.

Cada examen abarca varios temas, y cada tema tiene un valor de ponderación. Los valores de ponderación indican la importancia relativa de cada tema. A rasgos generales, espere que el examen tenga más preguntas relativas a temas con mayor valor de ponderación. Los temas y sus valores de ponderación para el Examen 201 de LPI son:

Tema 201
Kernel Linux (valor 5).
Tema 202
Inicio del sistema (valor 5).
Tema 203
Sistemas de archivos (valor 10).
Tema 204
Hardware (valor 8).
Tema 209
Intercambio de archivos y servicios (valor 8).
Tema 211
Mantenimiento del sistema (valor 4).
Tema 213
Personalización y automatización del sistema (valor 3).
Tema 214
Solución de problemas (valor 6). El foco de este tutorial.

El Linux Professional Institute no avala ningún material ni técnica de preparación de exámenes de terceros en particular. Para obtener mayor información, póngase en contacto con: info@lpi.org.

Acerca de este tutorial

Bienvenido a “Resolución de problemas”, el último de ocho tutoriales diseñado para prepararlo para el Examen 201 de LPI. En este tutorial se examinará material ya tratado con más detalle en tutoriales anteriores, pero enfocándose en aprender qué hacer cuando las cosas no marchan bien.

El tutorial está organizado según los objetivos del LPI para este tema, de la manera siguiente:

2.214.2 Creación de discos de recuperación (valor 1)
Usted podrá crear tanto un disco de arranque estándar para la entrada al sistema como un disco de recuperación para la reparación del mismo.
2.214.3 Identificación de las etapas de arranque (valor 1)
Usted podrá determinar, desde el texto de arranque, las cuatro etapas de la secuencia de arranque y distinguir cada una de ellas.
2.214.4 Solución de problemas con LILO (valor 1)
Usted podrá determinar errores de etapas específicas y las técnicas correctivas.
2.214.5 Solución de problemas generales (valor 1)
Usted podrá reconocer e identificar etapas del cargador de arranque y específicas del kernel y utilizar mensajes de arranque del kernel para diagnosticar errores del mismo. Este objetivo incluye identificar y corregir problemas comunes de hardware y determinar si el problema es de hardware o de software.
2.214.6 Solución de problemas en los recursos del sistema (valor 1)
Usted podrá identificar, diagnosticar y reparar su entorno local del sistema.
2.214.8 Solución de problemas en la configuración del entorno (valor 1)
Usted podrá identificar problemas comunes de configuración del entorno del sistema local y de los usuarios, y técnicas comunes de reparación.

Solucionar un problema en un sistema Linux que no funciona –o, más específicamente, que no funciona en absoluto – es probablemente la parte más frustrante de la administración de un sistema. Linux no es especial en este sentido. Con Linux, las tareas comunes como agregar nuevo hardware o software, vigilar el comportamiento de un software instalado, o generar un script y programar operaciones de rutina, son tareas sencillas. Pero cuando un sistema en ejecución se detiene súbitamente, a usted se le presenta un vertiginoso aluvión de cosas que podrían no estar bien.

Este tutorial no le resolverá todos los problemas reales, sino que se enfocará en herramientas útiles para el proceso de solución de problemas (la mayoría abordadas brevemente en otros tutoriales) y le recordará cuáles son los mejores lugares dónde buscar la fuente de los problemas. Para la solución de problemas, le será de gran ayuda contar con un buen entendimiento de Linux, además de paciencia y esfuerzo.

Requisitos previos

Para sacar el máximo provecho de este tutorial, usted debe tener un conocimiento básico de Linux y un sistema Linux en funcionamiento sobre el cual pueda practicar los comandos tratados en este tutorial.


Creación de discos de recuperación

Antes de recuperar

Cuando, en el transcurso de eventos del sistema, una instalación de Linux se echa a perder a tal punto que no puede arrancar normalmente, una buena estrategia es intentar “arrancar en modo de usuario único” para solucionar el problema. El modo de usuario único (nivel de ejecución 1) le permite acceder y modificar muchos problemas sin tener que preocuparse por cuestiones de permisos o de archivos bloqueados por otros usuarios y procesos. Además, el modo de usuario único se ejecuta con un mínimo de servicios, daemons y tareas que podrían confundirse con – o incluso ser la causa de – el problema subyacente.

Sin embargo, en algunos casos, aun algunos archivos necesarios para el modo de usuario único como /etc/passwd, /etc/fstab, /etc/inittab, /sbin/init y /dev/console pueden corromperse y hacer que el sistema no arranque, ni siquiera en modo de usuario único. En estas ocasiones, un disco de recuperación (un disco de arranque que contiene lo imprescindible para reparar una partición rota, a veces llamado disco de reparación) puede usarse para lograr que el sistema se recupere.

Los CD de recuperación

Hoy en día, las distribuciones independientes en CD (o en DVD) tales como Knoppix pueden usarse como el “Cadillac” de los discos de recuperación, ya que ostentan una gran variedad de drivers, herramientas de depuración, e incluso un navegador Web. Incluso si usted tiene necesidades especiales como drivers fuera de lo común (como los módulos kernel) o un software de recuperación, por lo general le resultará más conveniente descargar un LiveCD de Linux como Knoppix y personalizar los contenidos de la imagen ISO antes de grabar un disco de recuperación. Consulte el tutorial del Tema 203 para obtener información sobre cómo montar en bucle una imagen ISO.

Discos flexibles de recuperación

En el caso de sistemas muy antiguos con CD-ROM de arranque, usted deberá usar para la recuperación sólo discos flexibles que contengan lo estrictamente esencial. Algunas exquisiteces como emacs y vim suelen ser demasiado voluminosas para entrar en un único disco flexible de recuperación, razón por la cual un administrador experimentado del sistema debería estar preparado para usar un editor reducido a lo esencial como ed a la hora de arreglar archivos de configuración corrompidos.

A la hora de crear discos flexibles de arranque personalizados, el usuario debería leer el “Linux-Bootdisk HOWTO” del Linux Documentation Project. No obstante, en muchos casos, las distribuciones Linux le ofrecerán la opción de crear disquetes de recuperación durante la instalación o más tarde, usando las herramientas incluidas. ¡Asegúrese de crear y almacenar los discos de recuperación antes de necesitarlos!


Identificación de las etapas de arranque

Acerca del arranque

El tutorial del Tema 202 contiene información mucho más exhaustiva sobre las secuencias de arranque de Linux. En este tutorial, examinaremos resumidamente estas etapas.

La primera etapa del arranque no ha cambiado demasiado desde que se introdujeron las ® PC compatibles con IBM que incluían disco duro. El BIOS lee el primer sector del disco de arranque en la memoria y lo ejecuta. Este MBR (registro de arranque maestro) de 512 bytes, que también almacena la etiqueta fdisk, carga el cargador del sistema operativo (ya sea GRUB o LILO) desde la partición “activa”.

Arranque del kernel

Una vez que el BIOS de un sistema x86 (otras arquitecturas varían ligeramente) ejecuta el MBR, ocurre una serie de pasos hasta que se carga el kernel de Linux. Si el arranque no es exitoso, el primer paso será determinar la ubicación de la falla de manera de saber qué es necesario arreglar.

  • Carga del cargador de arranque (LILO/Grub).
  • El cargador de arranque comienza a ejecutarse y transfiere el control al kernel.
  • Kernel: Carga el kernel base y otros módulos del kernel fundamentales.
  • Inicialización y configuración del hardware:
    • Comienza a ejecutarse el kernel.
    • Se inicializa la infraestructura del kernel (VM, planificador, etc.).
    • Sondeo y agregado de drivers de dispositivos.
    • Montaje del sistema de archivos raíz.

Arranque del entorno de usuario

En el caso de que el kernel base, los módulos kernel y el sistema de archivo raíz comiencen a ejecutarse con éxito (o por lo menos con el éxito suficiente como para no inmovilizarse por completo), comienza el proceso de inicialización:

  • Inicialización y configuración de daemon
    • /sbin/init comenzado como proceso 1
    • /sbin/init lee /etc/inittab
    • scripts /etc/rc<n>.d/S* son ejecutados por /etc/init.d/rc
    • Discos fsck'ed
    • Interfaces de red configuradas
    • Daemons iniciados
    • getty(s) iniciados sobre puertos seriales y de consola

Solución de problemas de LILO y GRUB

Buscando el cargador de arranque

Cuando GRUB se inicia, hace destellar en la pantalla el mensaje “Cargando GRUB, por favor, espere...”, para luego pasar a su menú de arranque. LILO generalmente exhibe un prompt LILO:, aunque algunas versiones pasan directamente a un menú. Si usted no accede a una pantalla de LILO o GRUB, tal vez sea el momento de utilizar un disco de recuperación independiente. Por lo general, usted sabrá que tiene este problema a través de alguna clase de mensaje BIOS que le indique que no se encuentra un sector de arranque o incluso que no se encuentra un disco duro.

Si su sistema no puede localizar un sector de arranque utilizable, es posible que su instalación LILO o GRUB se haya corrompido. A veces, otros sistemas operativos pisan sectores de arranque (o lo hacen algunos “programas de protección contra virus” excesivamente celosos que se ejecutan sobre Windows®) y ocasionalmente surgen otros problemas. Un disco de recuperación le permitirá reinstalar LILO o GRUB. Por lo general, usted deberá ejecutar un comando chroot a su antiguo sistema de archivos raíz para utilizar sus archivos de configuración LILO o GRUB anteriores.

En el caso de que no se encuentre un disco duro, es probable que haya ocurrido una falla de hardware (y usted deseará haber hecho una copia de seguridad); a menudo también será el caso cuando no se encuentre el sector de arranque. Consulte el tutorial del Tema 202 para obtener más información sobre LILO y GRUB.

Configuración de LILO y GRUB

LILO se configura con el archivo /etc/lilo.conf o por medio de otro archivo de configuración especificado en la línea de comando. Para reinstalar LILO, asegúrese primero de que su archivo lilo.conf concuerde con la configuración actual de su sistema (especialmente con la partición y la información del número de disco; esta configuración se puede alterar si usted intercambia el disco duro y/o cambia particiones). Una vez que usted ha verificado su configuración, simplemente ejecute /sbin/lilo como raíz (o en modo de usuario único).

Configurar y reinstalar GRUB implica esencialmente el mismo proceso que para LILO. El archivo de configuración de GRUB es /boot/grub/menu.lst, pero es leído cada vez que el sistema arranca. De igual modo, el shell de GRUB reside en /boot/grub/, pero usted puede elegir en qué disco duro reside el MBR básico de GRUB con la opción groot= en /boot/grub/menu.lst. Para instalar GRUB en un MBR, ejecute un comando como grub-install /dev/hda, que verificará el /boot/ actualmente montado en cuanto a su configuración.


Solución de problemas generales

Estructura del sistema de archivos Linux

Las distribuciones de Linux varían un poquito en cuanto a dónde colocan los archivos. El Linux Filesystem Hierarchy Standard está haciendo avances en cuando a promover la estandarización en este sentido. Algunos directorios ya están estandarizados y son particularmente importantes a la hora de examinar problemas de inicio y de tiempo de ejecución:

  • /proc/ es el sistema de archivos virtual que contiene información sobre el estado de los procesos y del sistema. En cierto modo, residen aquí las entrañas de un sistema en ejecución. Ver el Tema 201 para obtener mayor información.
  • /var/log/ es donde residen los archivos de registro. Si algo no marcha bien, es bueno saber que aquí tenemos información útil en algún archivo de registro.
  • / suele ser la raíz del sistema de archivos bajo Linux que contiene simplemente otros directorios anidados. En algunos sistemas, ciertos archivos de inicio como vmlinuz y initrd.img podrían estar aquí en lugar de hallarse en /boot/.
  • /boot/ almacena archivos que se usan directamente en el proceso de arranque del kernel.
  • /lib/modules/ es donde residen los módulos kernel, anidados bajo este directorio en subdirectorios nombrados para la versión actual del kernel (si usted arranca versiones múltiples del kernel, deberían existir múltiples directorios). Por ejemplo:

    % ls /lib/modules/2.6.10-5-386/kernel/
    arch crypto drivers fs lib net security sound

Encontrar mensajes de arranque

Durante el arranque propiamente dicho del sistema, los mensajes pueden desplazarse rápidamente y es probable que usted no tenga tiempo de identificar problemas o actividades de inicialización inesperadas. Si bien es probable que se registre en el syslog alguna información de interés, el kernel básico y los mensajes del módulo del kernel podrán examinarse con la herramienta dmesg.

Herramientas de identificación del hardware/sistema

El tutorial del Tema 203 (Hardware) contiene más información sobre la identificación del hardware. Por lo general, usted deberá tener en cuenta las siguientes herramientas del sistema:

  • lspci: muestra una lista de todos los dispositivos PCI.
  • lsmod: muestra una lista de los módulos del kernel cargados.
  • lsusb: muestra una lista de los dispositivos USB.
  • lspnp: muestra una lista de los dispositivos Plug-and-Play.
  • lshw: muestra una lista del hardware.

Ligeramente alejadas del hardware, pero igualmente útiles:

  • lsof: muestra una lista de los archivos abiertos.
  • insmod: carga los módulos del kernel.
  • rmmod: elimina los módulos del kernel.
  • modprobe: contenedor insmod/rmmod/lsmod de nivel superior.
  • uname: imprime la información del sistema (versión del kernel, etc.).
  • strace: rastrea llamados del sistema.

Cuando usted esté desesperado intentando usar binarios, ya sean bibliotecas o aplicaciones, la herramienta strings podrá realmente salvarlo (pero espere un proceso laborioso). Cierta información crucial, como rutas codificadas de forma rígida, puede permanecer escondida bajo los binarios y, con una buena dosis de prueba y error, usted podrá encontrarla buscando las cadenas dentro de los binarios.


Solución de problemas de recursos del sistema y de configuraciones del entorno

La inicialización

Como figura en mayor detalle en el Tema 202, el arranque de Linux después de la carga del kernel es controlado por el proceso init. La principal configuración de control para init es /etc/inittab. El archivo /etc/inittab contiene información sobre qué pasos se han de llevar a cabo en cada nivel de ejecución. Pero tal vez su función más crucial sea configurar el nivel de ejecución para acciones posteriores. Si su sistema tiene dificultades para arrancar, configurar un nivel de ejecución diferente puede ayudar al proceso. La línea de clave será algo así como:

# The default runlevel. (in /etc/inittab)
id:2:initdefault:

Scripts de recursos

Los scripts rc se ejecutan en tiempo de arranque, en tiempo de apagado, y cada vez que el sistema cambie sus niveles de ejecución, y son responsables de iniciar y detener la mayor parte de los daemons del sistema. En la mayor parte de las distribuciones Linux (léase,las distribuciones modernas), los scripts rc residen en el directorio /etc/init.d/ y están vinculados a los directorios /etc/rc<N>.d/ (paraN=runlevel) ya sea que tengan el nombre “S*” para scripts de inicio y “K*” para scripts de apagado. El sistema nunca ejecuta los scripts a partir de /etc/init.d directamente, sino que los busca en /etc/rc<N>.d/[SK]*.

El shell del sistema

Si bien no es habitual, es posible que un administrador del sistema desee cambiar el script de inicio del shell de todo el sistema /etc/profile. Tal cambio afectará cada shell interactivo (a excepción de los usuarios /bin/tcsh u otros shells no compatibles con -/bin/sh). Corromper este archivo puede llevar fácilmente a que nadie pueda iniciar sesión y sea necesario un disco de recuperación para normalizar la situación. El método normal para cambiar el comportamiento del shell a nivel individual es modificar /home/$USER/.bash_profile y /home/$USER/.bashrc.

Configuración de parámetros del kernel

El sistema sysctl(ver sysctl en la página man) se tomó de BSD UNIX® y se ha de usar para ajustar algunos recursos del sistema. Ejecute sysctl -a para ver qué variables pueden ser controladas por sysctl y para qué están configuradas. La utilidad sysctl es útil sobre todo para ajustar parámetros de redes, así como algunos parámetros kernel. Use el archivo /etc/sysctl.conf para configurar los parámetros del sysctl al momento del arranque.

Bibliotecas dinámicas

En la mayor parte de los sistemas, las bibliotecas dinámicas se agregan, actualizan, reemplazan y eliminan permanentemente. Dado que casi todos los programas que se ejecutan sobre el sistema necesitan encontrar y cargar bibliotecas dinámicas, los nombres, números de versión y ubicaciones de la mayor parte de las bibliotecas dinámicas son cacheados por el programa ldconfig Normalmente, sólo las bibliotecas dinámicas de los directorios del sistema /lib/ and /usr/lib/ están cacheadas. Para agregar más directorios a la ruta de búsqueda predeterminada para todo el sistema, agregue los nombres de directorio (tales como /usr/X11R6/lib) al /etc/ld.so.conf y ejecute ldconfig como raíz.

Registro del sistema

El Tema 211 discute el syslog en detalle. El archivo clave que usted debe tener en mente si tiene problemas (y sobre todo si desea asegurarse de que podrá analizarlo más tarde) es /etc/syslog.conf. Al cambiar el contenido de esta configuración, usted tiene control granular sobre qué eventos están registrados y dónde están registrados –incluyendo el uso potencial de correo electrónico o de equipos remotos–. Si se presentan problemas, asegúrese de que los subsistemas en que usted cree que se presentan dichos problemas registren la información de manera que se la pueda examinar fácilmente de manera forense.

Eventos periódicos

En prácticamente todos los sistemas Linux se ejecuta el daemon cron. Ver el Tema 213 para obtener más información sobre cron y crontab. En general, una fuente de problemas potenciales que se ha de tener en cuenta son los scripts que se ejecutan de manera intermitente. Es posible que lo que usted cree que es un problema del kernel o de la aplicación sea consecuencia de scripts no relacionados que son ejecutados en segundo plano por cron.

Una medida extrema es eliminar el cron por completo. Usted puede encontrar su número de proceso por medio de ps ax | grep cron, y la ejecución de kill puede ponerle fin. Una medida menos drástica es editar /etc/crontab para ejecutar un conjunto más conservador de tareas; asegúrese también de restringir las tareas de usuarios que estén programadas editando /etc/cron.allow y /etc/cron.deny. Si bien los usuarios por lo general no deberían tener los permisos suficientes para causar problemas en todo el sistema, un buen primer paso es deshabilitar temporalmente las configuraciones crontab de usuarios y ver si de esa manera se resuelve el problema.

Recursos

Aprender

Obtener los productos y tecnologías

  • Lea y descargue Knoppix.
  • Cree su próximo proyecto de desarrollo en Linux con el software de prueba IBM, disponible para descarga directamente de developerWorks.

Comentar

Comentarios

developerWorks: Ingrese

Los campos obligatorios están marcados con un asterisco (*).


¿Necesita un IBM ID?
¿Olvidó su IBM ID?


¿Olvidó su Password?
Cambie su Password

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


La primera vez que inicie sesión en developerWorks, se creará un perfil para usted. La información en su propio perfil (nombre, país/región y nombre de la empresa) se muestra al público y acompañará a cualquier contenido que publique, a menos que opte por la opción de ocultar el nombre de su empresa. Puede actualizar su cuenta de IBM en cualquier momento.

Toda la información enviada es segura.

Elija su nombre para mostrar



La primera vez que inicia sesión en developerWorks se crea un perfil para usted, teniendo que elegir un nombre para mostrar en el mismo. Este nombre acompañará el contenido que usted publique en developerWorks.

Por favor elija un nombre de 3 - 31 caracteres. Su nombre de usuario debe ser único en la comunidad developerWorks y debe ser distinto a su dirección de email por motivos de privacidad.

Los campos obligatorios están marcados con un asterisco (*).

(Por favor elija un nombre de 3 - 31 caracteres.)

Al hacer clic en Enviar, usted está de acuerdo con los términos y condiciones de developerWorks.

 


Toda la información enviada es segura.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=90
Zone=Linux
ArticleID=502735
ArticleTitle=Preparación para el Examen 201 de LPI: Solución de problemas
publish-date=07282010