0% encontró este documento útil (0 votos)
5 vistas84 páginas

Configuración de Impresoras en CentOS

Este documento describe cómo configurar impresoras en CentOS Linux utilizando la Herramienta de configuración de impresoras. Explica cómo añadir impresoras locales, remotas conectadas a través de IPP, LPD, SMB o JetDirect, y cómo seleccionar el modelo de impresora.

Cargado por

Leonardo Ortiz
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
5 vistas84 páginas

Configuración de Impresoras en CentOS

Este documento describe cómo configurar impresoras en CentOS Linux utilizando la Herramienta de configuración de impresoras. Explica cómo añadir impresoras locales, remotas conectadas a través de IPP, LPD, SMB o JetDirect, y cómo seleccionar el modelo de impresora.

Cargado por

Leonardo Ortiz
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

6

Herramientas del sistema


Herramientas del sistema

Herramientas del sistema

Configuración de la impresora

La Herramienta de configuración de impresoras permite a los usuarios configurar


una impresora en CentOS Linux. Esta herramienta ayuda a mantener el archivo de
configuración de la impresora, los directorios spool y los filtros de impresión.

En CentOS Linux, CUPS es el sistema de impresión predeterminado.

Para usar la Herramienta de configuración de impresoras debe tener privilegios


como root. Para iniciar la aplicación, escriba el comando system-config-
printer. Este comando determina automáticamente si ejecutará la versión gráfica
o la versión basada en texto dependiendo de si el comando es ejecutado desde el
ambiente gráfico X Window o desde una consola basada en texto.

Puede forzar a la Herramienta de configuración de impresoras a ejecutarse como


una aplicación basada en texto usando el comando system-config-printer-
tui desde el intérprete de comandos.

Se pueden configurar los siguientes tipos de colas de impresión:

● Conectada-localmente una impresora directamente conectada al


computador a través de un puerto paralelo o USB.

● Conectada CUPS (IPP) una impresora conectada a un sistema CUPS


diferente que puede ser accedida sobre una red TCP/IP (por ejemplo, una
impresora conectada a otro sistema CentOS Linux corriendo CUPS en la
red).

● Conectada UNIX (LPD) una impresora conectada a un sistema UNIX


diferente que puede ser accedida sobre una red TCP/IP (por ejemplo, una
impresora conectada a otro sistema CentOS Linux corriendo LPD en la red).

● Conectada Windows (SMB) una impresora conectada a un sistema


diferente el cual está compartiendo una impresora sobre una red SMB (por
ejemplo, una impresora conectada a una máquina Microsoft Windows.

● Conectada JetDirect una impresora conectada directamente a la red a


través de HP JetDirect en vez de a un computador.

Añadir una impresora local

Red Hat Certified Engineer 86


Herramientas del sistema

Para añadir una impresora local, tal como una conectada al puerto paralelo o USB
en su computador, haga clic el botón Nueva Impresora en la ventana principal de
la Herramienta de configuración de impresoras. Haga clic en Siguiente para
proceder.

Introduzca un nombre único para la impresora en el campo de texto Nombre de


impresora. El nombre de la impresora no puede contener espacios y debe
comenzar con una letra. El nombre de la impresora puede contener letras,
números, guiones (-), y rayas (_). Opcionalmente, introduzca una descripción corta
para la impresora, la cual puede contener espacios y la ubicación.

Haga clic en el botón Adelante. Seleccione el tipo de conexión de la impresora de


la lista Seleccione Conexión.

El próximo paso es seleccionar el tipo de impresora.

Añadir una impresora IPP

Una impresora de red IPP es una impresora conectada a un sistema Linux


diferente en la misma red ejecutando CUPS o una impresora configurada para usar
IPP en otro sistema operativo. Por defecto, la Herramienta de configuración de
impresoras navega la red en busca de impresoras compartidas IPP.

Si tiene un cortafuegos (firewall) configurado en el servidor de impresión, este debe


ser capaz de enviar y recibir conexiones en el puerto de entrada UDP 631. Si tiene
un cortafuegos configurado en el cliente (la computadora enviando la petición de
impresión), se le debe permitir enviar y aceptar conexiones en el puerto 631.

Introduzca un nombre único para la impresora en el campo de texto Nombre de


impresora. El nombre de la impresora no puede contener espacios y debe
comenzar con una letra. El nombre de la impresora puede contener letras,
números, guiones (-), y rayas (_). Opcionalmente, introduzca una descripción corta
para la impresora, la cual puede contener espacios.

Después de hacer clic en Adelante. Seleccione Internet Printing Protocol (ipp)


de la lista Seleccione Conexión.

Aparecen los campos de texto para las opciones siguientes:

● Nombre de Equipo El nombre de la máquina o dirección IP de la máquina


remota a la cual la impresora está conectada.

● Nombre de la impresora El nombre de la impresora compartida en la


máquina remota. Ej. hp2100.

87 Ing. Iván Ferreira


Herramientas del sistema

Añadir una impresora UNIX (LPD) remota

Para agregar una impresora UNIX remota, tal como una conectada a un sistema
Linux diferente en la misma red, haga clic en el botón Nueva impresora en la
ventana principal de la Herramienta de configuración de impresoras.

Introduzca un nombre único para la impresora en el campo de texto Nombre de


impresora.. El nombre de la impresora no puede contener espacios y debe
comenzar con una letra. El nombre de la impresora puede contener letras,
números, guiones (-), y rayas (_). Opcionalmente, introduzca una descripción corta
para la impresora, la cual puede contener espacios.

Seleccione LPR/LPD Host or Printer de la lista Seleccione Conexión.

Aparecen los campos de texto para las opciones siguientes:

● Nombre de Equipo El nombre de la máquina o dirección IP de la máquina


remota a la cual la impresora está conectada.

● Nombre de la impresora El nombre de la impresora compartida en la


máquina remota. Ej. lp.

Haga clic en Adelante para continuar.

El próximo paso es seleccionar el tipo de impresora.

Añadir una impresora Samba (SMB)

Para añadir una impresora que es accedida usando el protocolo SMB (tal como una
impresora conectada a un sistema Microsoft Windows), haga clic en el botón
Nueva impresora en la ventana principal de la Herramienta de configuración de
impresoras.

Introduzca un nombre único para la impresora en el campo de texto Nombre de


impresora.. El nombre de la impresora no puede contener espacios y debe
comenzar con una letra. El nombre de la impresora puede contener letras,
números, guiones (-), y rayas (_). Opcionalmente, introduzca una descripción corta
para la impresora, la cual puede contener espacios.

Seleccione Windows Printer via SAMBA de la lista Seleccione Conexión.

Las impresoras SMB son detectadas automáticamente y listadas en la columna


Compartir. Si la impresora que busca no se encuentra en la lista, ingrese la
dirección SMB en el campo smb://. Utilice el formato equipo/impresora, por
ejemplo pc01/hplj01.

Red Hat Certified Engineer 88


Herramientas del sistema

En el campo Nombre de usuario ingrese el nombre de usuario con el que debe


conectarse para acceder a la impresora. Este usuario debe existir en el sistema
Windows y el usuario debe tener permiso para acceder a la impresora. El nombre
de usuario predeterminado es típicamente guest para los servidores Windows, o
nobody para los servidores Samba.

Ingrese la Contraseña (si se necesita) para el usuario especificado en el campo


Nombre de usuario.

Haga clic en Adelante para continuar.

El próximo paso es seleccionar el tipo de impresora.

Advertencia: Los nombres de usuarios y contraseñas se almacenan en el servidor


de impresión como campos no encriptados con acceso de lectura para root y lpd.
Por tanto, otros usuarios que tienen acceso como root al servidor de impresión
pueden ver el usuario y la contraseña proporcionada para conectarse a la
impresora.

Añadir una impresora JetDirect

Para agregar una impresora JetDirect, haga click en el botón Nueva impresora en
la ventana principal de la Herramienta de configuración de impresoras.

Introduzca un nombre único para la impresora en el campo de texto Nombre. El


nombre de la impresora no puede contener espacios y debe comenzar con una
letra. El nombre de la impresora puede contener letras, números, guiones (-), y
rayas (_). Opcionalmente, introduzca una descripción corta para la impresora, la
cual puede contener espacios.

Seleccione AppSocket/HP JetDirect de la lista Seleccione Conexión.

Aparecerán los campos de texto para las siguientes opciones:

● Nombre de Equipo El nombre de la máquina o dirección IP de la impresora


JetDirect.

● Puerto El puerto en la impresora JetDirect que está escuchando por trabajos


de impresión. El puerto predeterminado es 9100.

Haga clic en Adelante para continuar.

El próximo paso es seleccionar el tipo de impresora.

89 Ing. Iván Ferreira


Herramientas del sistema

Selección del modelo de impresora

Después de seleccionar el tipo de cola de impresión, el próximo paso es


seleccionar el modelo de la impresora.

Si no fue detectado automáticamente, seleccione el modelo de la lista. Las


impresoras son divididas por fabricantes. Seleccione el nombre del fabricante
desde el menú. Los modelos de impresoras son actualizados cada vez que un
nuevo fabricante es seleccionado. Seleccione el modelo de impresora de la lista.

El controlador de la impresora recomendado es escogido basado en el modelo de


impresora seleccionado. El controlador de la impresora procesa los datos que
desea imprimir en un formato que la impresora pueda entender. Puesto que hay
una impresora local conectada a su computador, necesita un controlador de
impresora para procesar los datos que son enviados a la misma.

Si está configurando una impresora remota (IPP, LPD, SMB), el servidor de


impresión remoto usualmente tiene su propio controlador de impresión. Si
selecciona un controlador de impresión adicional en su computador local, los datos
son filtrados múltiples veces y convertido a un formato que la impresora no puede
entender.

Para asegurarse de que los datos no son filtrados más de una vez, primero trate de
seleccionar Genérico como el fabricante e Impresora Postscript como el modelo de
impresora. Después de aplicar los cambios, imprima una página de prueba para
probar la nueva configuración. Si la prueba falla, el servidor de impresión remoto
puede que no tenga un controlador de impresora configurado. Intente
seleccionando un controlador de acuerdo al fabricante y modelo de la impresora
remota, aplique los cambios e imprima una página de prueba.

También puede proporcionar un archivo PPD (PostScript Printer Description). Este


archivo es normalmente proporcionado por el fabricante de la impresora.

Administración de trabajos de impresión

Cuando usted envía un trabajo de impresión al demonio de impresión, tal como


imprimir un archivo de texto desde Emacs o imprimir una imagen desde El GIMP, el
trabajo de impresión es añadido al spool de la cola de impresión. El spool de la
cola de impresión es una lista de los trabajos de impresión que han sido enviados a
la impresora e información acerca de cada petición de impresión, tal como el
estado de la petición, el nombre del usuario de la persona que envió la petición, el
nombre de la máquina que lo envió, el número de trabajo, etc.

Para ver una lista de los trabajos de impresión en el spool de impresión desde el
intérprete de comandos, escriba el comando lpq. Las últimas pocas líneas de la
salida de este comando, serán similares a lo siguiente:

Red Hat Certified Engineer 90


Herramientas del sistema

Rank Owner/ID Class Job Files Size Time


active user@localhost+902 A 902 [Link] 2050 01:20:46

Si desea cancelar un trabajo de impresión, encuentre el número del trabajo de la


petición con el comando lpq y luego use el comando lprm y el número de trabajo.
Ejemplo:
# lprm 902

Para borrar todos los trabajos ejecute el comando:


# lprm -

Deshabilitando las impresoras y las colas de impresión

Los comandos cupsenable y cupsdisable puede ser utilizado para controlar la


impresión de los trabajos en la cola de impresión. La sintaxis del comando es la
siguiente:
/usr/sbin/cupsdisable destino(s)
/usr/sbin/cupsenable destino(s)

Las colas de impresión deshabilitadas aún aceptarán solicitudes de impresión pero


no comenzarán a imprimir hasta que sean habilitadas.

Los comandos accept y reject permiten o deniegan trabajos de impresión. La


sintaxis del comando es:
/usr/sbin/reject destinos(s)
/usr/sbin/accept destino(s)

Con el comando reject la impresora no aceptará nuevos trabajos de impresión


hasta que se ejecute el comando accept nuevamente.

Utilice el comando lpc stat para identificar el estado de la impresora:

# lpc stat
hp2100:
printer is on device 'lpd' speed -1
queuing is enabled
printing is enabled
no entries
daemon present

# disable hp2100

# lpc stat
hp2100:
printer is on device 'lpd' speed -1
queuing is enabled
printing is disabled
no entries

91 Ing. Iván Ferreira


Herramientas del sistema

daemon present

# lpc stat
hp2100:
printer is on device 'lpd' speed -1
queuing is disabled
printing is disabled
no entries
daemon present

En el ejemplo podemos observar que primeramente se detiene la cola de


impresión, luego se detiene la recepción de nuevos trabajos de impresión.

Compartir una impresora

La habilidad de la Herramienta de configuración de impresoras de compartir las


opciones de configuración sólo puede ser usada si está usando el sistema de
impresión CUPS.

El permitir a otros usuarios en un computador diferente en la red imprimir a una


impresora configurada para su sistema se llama compartir la impresora. Por
defecto, las impresoras configuradas con la herramienta de configuración de
impresoras están compartidas.

Para compartir o dejar de una impresora configurada, arranque la Herramienta de


configuración de impresoras y seleccione una impresora desde la lista. Luego en la
pestaña Configuración marque la opción Compartido en las opciones de Estado.

El demonio crond

Crond es el demonio cron que se utiliza para la programación de tareas periódicas


con un margen mínimo de un minuto, tanto de administración del sistema como
propias de cualquier usuario.

El demonio cron se inicia o se detiene como cualquier otro servicio del sistema de
la distribución correspondiente, por ejemplo:
/etc/rc.d/initd/crond start|stop|restart
service crond start|stop|restart

aunque lo habitual es que se lance automáticamente al arrancar el sistema


operativo.

Los ficheros de configuración de los distintos usuarios se almacenan en el


directorio /var/spool/cron y un fichero de configuración del sistema llamado
/etc/crontab. Cuando el demonio cron, llamado crond, está activo comprueba
con minuto de frecuencia si hay alguna modificación de algún fichero de
configuración o algún proceso que lanzar y en caso afirmativo lo ejecuta. Cron

Red Hat Certified Engineer 92


Herramientas del sistema

toma la salida del proceso, estándar y de errores, y se la envía al usuario


correspondiente, a root en caso del crontab del sistema. Si queremos cambiar el
usuario que recibe este mensaje de correo podemos utilizar la variable MAILTO.

Configuración de crontab

Cada usuario puede tener y gestionar su propio fichero de configuración para cron.
Bueno, hay dos ficheros, /etc/[Link] y /etc/[Link] donde se
pueden poner restricciones. En caso de existir el fichero /etc/[Link], sólo
los usuarios incluidos en este fichero podrán disponer de un crontab propio. Si no
existe /etc/[Link] pero sí existe un fichero /etc/[Link], cualquier
usuario incluido en este último fichero no podrá disponer de fichero contab propio.
Si existen ambos, [Link] prevalecerá. Si no existen ninguno, todos pueden
usar el demonio cron.

Los ficheros de configuración de crontab no están diseñados para editarse


directamente por el usuario; aunque son ficheros de texto estos ficheros se
modifican mediante la orden crontab. La orden crontab se puede utilizar como:
crontab [ -u usuario ] fichero

crontab [ -u usuario ] { -l | -r | -e }

Las opciones son:

Opción Descripción

-u Se utiliza para indicar el usuario cuyo crontab queremos


gestionar. Evidentemente sólo root podrá usar la orden crontab
con esta opción. La ausencia de esta opción supone que es el
usuario que ejecuta la orden el que gestiona su propio crontab.
-l Muestra el crontab activo en la salida estándar.
-r Elimina el crontab
-e Se usa para crear y editar el crontab activo mediante el editor
especificado en las variables de entorno EDITOR. El crontab
modificado se instala automáticamente al salir del editor
guardando los cambios.

Crontab predeterminados

Los sistemas, para facilitar la programación de tareas de administración, disponen


de un crontab estándar que permite ejecutar tareas cada hora, cada día, cada se
mana o cada mes; se crea un directorio para cada una de estas tareas y todos los

93 Ing. Iván Ferreira


Herramientas del sistema

ficheros ejecutables que pongamos allí, normalmente guiones de shell, se


ejecutarán automáticamente. Los directorios en cuestión son,
/etc/[Link], /etc/[Link], /etc/[Link] y
/etc/[Link].

El fichero /etc/crontab que ejecuta los contenidos de estos directorios


quedaría como:
01 * * * * root run-parts /etc/[Link]
02 4 * * * root run-parts /etc/[Link]
22 4 * * 0 root run-parts /etc/[Link]
42 4 1 * * root run-parts /etc/[Link]

La heramienta tmpwatch

La herramienta tmpwatch permite borrar archivos que no han sido accedidos


durante un periodo de tiempo dado. Utiliza el demonio crond para ejecutarse
diariamente y el archivo de script de tmpwatch puede ser localizado en el
directorio /etc/[Link]. Puede modificar el script tmpwatch en este
directorio según su necesidad.

La sintaxis del comando tmpwatch es la siguiente:

tmpwatch [-u|-m|-c] [-faqstv] [--verbose] [--force] [--all] [--test] \


[--fuser ] [--atime|--mtime|--ctime] [--quiet] <hours> <dirs>

Las opciones son:

Opción Descripción

-u, --atime Decide si se deben borrar los archivos en base al tiempo


de acceso. Esta es la opción por defecto.
-m, --mtime Decide si se deben borrar los archivos en base al tiempo
de modificación del archivo.
-c, --ctime Decide si se deben borrar los archivos en base al tiempo
de modificación del inodo.
-a, --all Remueve todos los tipos de archivos, no sólo regulares y
directorios.
-d, --nodirs No remover directorios.
-f, --force Remover aún sin permiso de escritura.
-t, --test No remover los archivos.
-s, --fuser Verifica con el comando fuser si los archivos están

Red Hat Certified Engineer 94


Herramientas del sistema

Opción Descripción

siendo utilizados.
-v, --verbose Muestra información detallada.

Ejemplo del archivo /etc/[Link]/tmpwatch:

/usr/sbin/tmpwatch 240 /tmp /var/tmp

Este archivo se ejecutará diariamente y verificará todos los archivos y directorios en


los directorios /tmp y /var/tmp. Si los archivos no fueron accedidos desde hace
240 horas, serán borrados.

El servicio Syslog

Una de las posibilidades que existen para detectar problemas en un sistema


operativo, sea este servidor o no, es a través de las trazas o logs que generan las
distintas aplicaciones que en él se ejecutan, incluyendo el propio kernel. Una traza
no es más que un mensaje breve que normalmente va acompañado de la fecha y
hora en que se produce, el nombre de la máquina donde se produce y el programa
que la origina.

Las trazas se pueden clasificar de acuerdo a su importancia. Algunas son


puramente informativas como pueden ser aquellas que avisan que un servicio
inició; mientras que otras, en cambio, pueden indicar una emergencia grave, como
puede ser un fallo físico en algún dispositivo.

En Linux el programa que implementa el servicio de trazas se nombra Syslog. Este


es un producto portado para varias plataformas Unix. En el caso de Linux funciona
a través de un par de demonios nombrados syslogd, que se encarga de las trazas
generales, y klogd, que manipula las trazas del kernel. El servicio permite
almacenar las trazas en ficheros (agrupados en el directorio /var/log), mostrarlas
a través de una terminal, enviarlas a otra máquina donde se ejecute syslogd, entre
otras posibilidades. En Linux también existe un poderoso mecanismo que permite
la rotación de las trazas guardadas en ficheros.

El script de inicio que manipula los demonios del servicio de trazas es


/etc/rc.d/init.d/syslog. Puede controlar el servicio utilizando el comando
service:

service syslog start|stop|restart|reload

Para permitir la recepción de los logs de otras máquinas se debe ejecutar el


demonio con la opción -r. Para ello se podrá modificar el script
/etc/rc.d/init.d/syslog y luego reiniciar el demonio a través del propio

95 Ing. Iván Ferreira


Herramientas del sistema

script.

Configuración de Syslog

El fichero de configuración principal del servicio de logs es /etc/[Link].


Cada entrada en este fichero consta de dos campos: el selector y la acción
separados por espacios. El selector a su vez se divide en la facilidad y la prioridad
que se separan por un punto. La facilidad indica el subsistema que produce el
log y la prioridad indica cuan importante es este. Todos los logs de una prioridad
específica o mayor se tratan bajo la misma acción, aunque esto se puede adecuar
en la versión actual del daemon. El campo acción indica a donde se enviarán los
logs. Como se expresó anteriormente, no siempre las trazas van a parar a un
fichero, también puede ser a una terminal, una máquina específica, un conjunto de
usuarios o a todos los usuarios conectados.

Sintácticamente el fichero de configuración del sistema de trazas posee las


siguientes reglas:

● Los comentarios, como casi siempre, van precedidos por “#”.

● Una línea se puede truncar utilizando “\”.

● El selector se separa de la acción mediante espacios.

● La facilidad se separa de la prioridad por un punto.

● Varios selectores para una misma acción se separan por “;”. En este caso
cada selector sobrescribe al anterior en la lista que se refiera a la misma
facilidad.

● Para indicar todas las facilidades o todas las prioridades se emplea “*”.

● Varias facilidades para una misma prioridad se separan por “,”.

● La prioridad especial none indica que no se haga ninguna acción para esa
facilidad.

● Para indicar que una acción se refiere sólo a la prioridad especificada y no a


las mayores que ella se coloca un signo “=” delante de la prioridad.

● Para indicar que una acción se refiere a todas con excepción de una
prioridad se coloca esta precedida de un signo “!”.

● Para indicar en la acción una máquina se precede el nombre de esta con


“@”.

● Para separar una lista de usuarios en la acción se utiliza “,”.

Red Hat Certified Engineer 96


Herramientas del sistema

● Para indicar la acción “todos los usuarios conectados” se emplea “*”.

Las facilidades y su utilización

Facilidades Descripción

auth,authpri Mensajes de seguridad y autorización.


v
cron Mensajes de los daemons at y cron.
daemon Mensajes del resto de los daemons.
kern Mensajes del kernel.
lpr Mensajes del subsistema de impresión.
mail Mensajes del subsistema de correo electrónico.
news Mensajes del subsistema de noticias.
security Es igual a auth. Se encuentra en desuso.
syslog Mensajes del propio subsistema de logs.
user Mensajes genéricos de los usuarios.
uucp Mensajes del subsistema UUCP.
Local0 - Reservadas para uso local.
local7

Las prioridades

Prioridades Descripción

debug Mensajes de depuración de un programa.


info Mensajes informativos.
notice Mensajes de sucesos significativos pero normales.
warning Mensajes de advertencia.
warn Es igual a warning. Está en desuso.
err Mensajes de error.
crit Mensajes que indican condiciones críticas.
alert Mensajes de alerta. Se debe emprender una acción al
momento.
emerg El sistema se ha vuelto inoperable.
panic Es igual a emerg. Está en desuso.

97 Ing. Iván Ferreira


Herramientas del sistema

Acciones

El campo acción es una regla que describe el término abstracto “archivo log”. Un
archivo log puede no ser un archivo real. Es posible especificar las siguientes
acciones:

● Archivo regular: Los mensajes son registrados en archivos reales. El


archivo se especifica utilizando una ruta absoluta, iniciando con /.

Si especifica el archivo con un signo menos delante, se omite la


sincronización del archivo luego de cada registro. Tenga en cuenta que
puede perder información si el sistema cae justo antes de un intento de
escritura.

● Terminal o consola: Si el archivo especificado es un tty, entonces los


mensajes son enviados a esa terminal, lo mismo sucede con el archivo
especial /dev/console.

● Equipo remoto: Para enviar mensajes a otro host, anteponga al nombre de


host el signo @. El host remoto debe estar configurado para aceptar
mensajes de otros hosts, esto se hace configurando el archivo
/etc/sysconfig/syslog, para indicar al demonio syslog que inicie con la
opción -r.

● Lista de usuarios: Es posible especificar uno o mas usuarios separados por


coma, Si han iniciado sesión en el sistema, visualizarán el mensaje. Esto no
es un mensaje de correo electrónico.

● Todos los usuarios del sistema: Los mensajes de emergencia son


enviados frecuentemente a todos los usuarios. Para especificar esto, utilice
un asterisco (*).

A continuación se muestran algunos ejemplos:


kern.* /var/log/kernel

[Link] @[Link]

[Link] /dev/console

[Link];kern.!err /var/log/kernel-info

lpr.* /var/log/lpr

*.=info;*.=notice;\
mail,news, [Link] /var/log/messages

Red Hat Certified Engineer 98


Herramientas del sistema

*.alert root,pepe
*.=emerg *

*.warning /var/log/warnings

*.* /dev/tty12

Comunicación con Syslog

Una de las formas de utilizar el servicio Syslog para manipular las trazas de
nuestras aplicaciones es a través del comando logger. Este constituye una
interfaz para comunicarse con el demonio, pues permite enviar mensajes
especificando su contenido y un selector, para que Syslog los manipule de acuerdo
a su configuración.
Sintaxis: logger [opciones] <mensaje>

Algunas opciones:

Opción Descripción

-p Permite indicar el selector, o sea el par <facilidad>.<prioridad>.


<selector> Por defecto es [Link].

-t <marca> Permite asociarle al mensaje una marca o identificador. Por


defecto es la palabra logger.

-i Coloca además el ID del proceso logger que envía la traza.

Ejemplos:
# logger -p [Link] "La versión del kernel ha sido actualizada"
# logger -p [Link] -t Prueba "Detuve el daemon sendmail. Pepe"

Rotación de las trazas del sistema

La herramienta que se utiliza para rotar las trazas en Linux es logrotate. Esta
permite la rotación automática, compresión, eliminación o envío por correo de los
ficheros de logs. Esta herramienta posee un fichero de configuración que por
defecto es /etc/[Link]. En este se indican básicamente un conjunto
de acciones globales para todos los ficheros de trazas y un conjunto de acciones
particulares para cada fichero. Algunas de las acciones o directivas son:

99 Ing. Iván Ferreira


Herramientas del sistema

Opción Descripción

compress Comprime el fichero una vez rotado. La


opuesta es nocompress.

copytruncate Trunca el fichero actual y comienza


nuevamente a escribir en él.
create [permisos] [dueño] Después de la rotación se creará un fichero
[grupo] nuevo con el mismo nombre que el anterior
especificando los permisos en notación
numérica, el dueño y el grupo. De no
especificarse alguno de estos campos se
asumirán los del fichero anterior.
daily, weekly, monthly Indican que la rotación se haga diaria,
semanal, o mensual, respectivamente.
errors <dirección> Se enviarán por correo los errores durante el
proceso de rotación a la dirección
especificada.
extension <ext> Se coloca la extensión especificada a los
ficheros después de la rotación. Si estos se
comprimen se añade además .gz.
notifempty Si el fichero está vacío no se rota. Por defecto
se hace lo opuesto (ifempty).
include <fichero | Permite incluir otros ficheros de configuración
directorio> o todos los contenidos en un directorio.
missingok Si el fichero de logs no existe se genera un
mensaje de error.
postrotate/endscript Todo lo que esté entre estas directivas se
ejecutará después de la rotación.
prerotate/endscript Todo lo que esté entre estas directivas se
ejecutará antes de la rotación.
rotate <n> El fichero será rotado n veces antes de ser
borrado.
size <n> El fichero se rotará cuando alcance el tamaño
n. Si se pone k después de n indicará que se
expresa el tamaño en kilobytes y M para
megabytes.

Ejemplos:
# rota por defecto semanalmente
weekly
# rota hasta cuatro veces cada fichero por defecto
rotate 4
# los errores se envían a root por defecto

Red Hat Certified Engineer 100


Herramientas del sistema

errors root
# crea un nuevo fichero después de rotar el viejo
create
# no rota si está vacío el fichero a rotar
notifempty
# incluye todos los ficheros en este directorio
include /usr/etc/[Link]
# directivas para el fichero de logs /var/log/messages
/var/log/messages {
daily
errors pepe@[Link]
rotate 5
postrotate
/usr/bin/killall -HUP syslogd # envía la señal HUP al daemon syslog
endscript
}

# directivas para el fichero de logs hipotético /var/log/mylogs


/var/log/mylogs {
compress
rotate 3
size 100k
postrotate
/etc/rc.d/init.d/my_script reload > /dev/null
endscript
}

Existe una tarea cron diaria que se encarga de rotar las trazas a través del
comando logrotate. Para verla puede hacerse:

# cat /etc/[Link]/logrotate

En el fichero /var/lib/[Link] se almacena la fecha en que se


rotó cada fichero de log por última vez. Ejemplo:
# less /var/lib/[Link]
logrotate state -- versión 2
"/var/log/messages" 2001-6-15
"/var/log/secure" 2001-6-15
"/var/log/maillog" 2001-6-15

Administrando copias de seguridad

Una de las tareas más comunes del administrador de sistemas es ayudar a los
usuarios a recuperar archivos perdidos o dañados. Para cumplir esta tarea
efectivamente debe establecer procedimientos de copias de seguridad de archivos
en intervalos regulares y frecuentes.

Salvando datos

Es importante que todos los archivos, tanto de sistema como de usuarios, sean
protegidos ante pérdidas. Por tanto debería hacer una copia de seguridad de todo

101 Ing. Iván Ferreira


Herramientas del sistema

el sistema. La mayoría de los archivos son estáticos, no varían frecuentemente y


no existe necesidad de salvarlos tan frecuentemente como los archivos de datos,
los cuales son dinámicos y cambian constantemente.

La copia de seguridad de cada sistema de archivos es un sólo proceso. Para


facilitar el proceso de backup, organize sus sistemas de archivos de tal forma a que
archivos dinámicos están en sistemas de archivos independientes y son salvados
regularmente, y los archivos estáticos están en sistemas de archivos que son
salvados ocasionalmente.

STAR – Unique Standard Tape Archiver

La herramienta star es un comando de copias de seguridad muy veloz parecido al


tar, con mayores funcionalidades.

El comando star archiva y extrae múltiples archivos de y a un único archivo


llamado “archivo tar” o tarfile. Un archivo tar es normalmente un dispositivo de
cinta, pero puede ser cualquier archivo.

Características del comando star

El star soporta cabeceras extendidas tar, que definen un nuevo estándar para ir
mas allá de las limitaciones del formato tradicional tar. Esto permite entre otras
cosas, almacenar todas las marcas de tiempo, archivos de tamaño arbitrario y
archivos sin limitaciones del tamaño en el nombre .

Por defecto utiliza una tubería FIFO para optimizar el flujo de datos desde/hacia el
dispositivo de cinta. Esto permite mantener al dispositivo de cinta en movimiento
durante toda la copia de seguridad.

Soporta el archivado y restauración de Listas de Control de Acceso (ACL) de


archivos.

Soporta el archivado y restauración del contexto de seguridad de archivos en


sistemas con SELinux habilitado.

Es en un gran porcentaje (aproximadamente 25%) mas rápido el el tradicional tar.

Realizando una copia de seguridad

Para realizar una copia de seguridad de un directorio o sistema de archivos, se


utiliza el comando star con la opción -c (Create). En su forma mas simple, la

Red Hat Certified Engineer 102


Herramientas del sistema

sintaxis del comando seria:


star -c f=nombre_archivo_tar archivo1 directorio1 ... archivoN directorioN

El destino especificado con la opción f= puede ser un archivo en disco o un


dispositivo de cinta. En linux, el nombre del dispositivo de cinta es normalmente
/dev/st0. Por ejemplo, para realizar una copia de seguridad de directorios a un
archivo debera ejecutar el siguiente comando:
# star -c f=/tmp/[Link] /prod/aplicaciones /dev/aplicaciones

El comando anterior archivara el contenido de los directorio


/prod/aplicaciones y /dev/aplicaciones en el archivo tar
/tmp/[Link].

Para verificar el contenido de una copia de seguridad realizada con star, se utiliza
la opción -t (table of contents). Para listar el contenido del archivo tar creado en
el ejemplo anterior seria:
# star -t f=/tmp/[Link]

Para restaurar un archivo contenido en un archivo tar, debe utilizar la opción -x


(extract). Si no se especifica el archivo a extraer, se extraen todos los archivos
contenidos en el archivo tar, si se especifica un directorio, se extrae el directorio y
su contenido, si se especifica uno o mas archivos, solo se extraen los archivos.

Es importante resaltar que al especificar el nombre del archivo o directorio a


extraer, no debe indicar la barra inicial de los nombres de los archivos, debido a
que por defecto la barra inicial es removida durante la extracción, permitiendo
extraer el archivo relativamente al directorio donde se encuentra.

Por ejemplo:

Extraer todos los archivos existentes en un archivo tar:


# star -x f=/tmp/[Link]

Extraer un directorio y su contenido:


# star -x f=/tmp/[Link] prod/aplicaciones

Extraer un archivo especifico existente en un archivo tar:


# star -x f=/tmp/[Link] dev/aplicaciones/msgtas.c

Ahora que la sintaxis básica del comando star ha sido presentada,


comenzaremos la revisión de las opciones que pueden especificarse al comando
star. Para una lista completa de las opciones, consulte la pagina del manual
star(1).

103 Ing. Iván Ferreira


Herramientas del sistema

Opción Descripción

-c Create. Crea un nuevo archivo tar


-t Table of contents. Lista el contenido de un archivo tar
-x Extract. Extrae el contenido de un archivo tar
-v Verbose. Incrementa el nivel de detalle de la operación,
generalmente utilizado para listar los archivos a medida que son
archivados.
-u Update. Permite agregar solo los archivos nuevos a un archivo
tar, actualizándolo en lugar de archivar todo nuevamente.
-acl Access Control List. Permite el archivado y recuperación de
las listas de control de acceso de los archivos.
bs= Block Size. Configura el tamaño de bloques de salida en bytes.
Puede especificar los valores agregando al numero las letras k
(kilo), m (mega).
C=dir Ejecuta la operación chdir(2) antes de archivar o extraer los
archivos tar.
-j Utiliza una tubería bzip2 al archivar o extraer los archivos.
list=<archiv Obtiene la lista de archivos a ser archivados o extraídos desde
o> un archivo. El archivo especificado contiene una lista de
nombres de archivos, cada uno en una nueva linea.
-M, -xdev No desciende puntos de montaje. Esto es útil cuando se realizan
copias de seguridad de un sistema de archivos completo.
--multivol Permite dividir los archivos en múltiples volúmenes en caso de
ser necesario.
pattern= Especifica un patron de concordancia. Permite seleccionar o
excluir archivos de la lista de archivos.
-U Unconditional. Por defecto, un archivo mas viejo que se
encuentra en el archivo tar, no reemplazara al archivo mas
nuevo que se encuentra en disco. Esta opción permite
sobreescribir los archivos en disco aún siendo mas nuevos que
los existentes en la copia de seguridad.
-V Invierte el orden de la lista especificada en el patrón de
concordancia.
-z Utiliza una tubería gzip al archivar o extraer los archivos.
-xattr Almacena o extrae los atributos extendidos. Esto es necesario
en sistemas con SELinux habilitado.
-H=exustar Especifica el tipo de cabecera. Es necesario especificar esta
opción si se están almacenando o extrayendo atributos

Red Hat Certified Engineer 104


Herramientas del sistema

Opción Descripción

extendidos o listas de control de acceso de archivos.


-p Restaura los archivos y directorios con sus permisos originales.
-/ No remueve la barra inicial de los nombres de archivos durante
una operación de extracción. Esto podria ser peligroso y
restaurar el archivo sobre el archivo original, en lugar de permitir
restaurarlo en una ubicación alternativa.

Ejemplos de utilización de las opciones del comando star

Es momento de utilizar eficientemente las opciones presentadas anteriormente, a


continuación se presentaran algunos ejemplos de utilización del comando star.

En este ejemplo, se realiza la copia de seguridad del directorio /oradata a un


dispositivo de cinta. Se habilita la opción de múltiples volúmenes y se especifica el
tamaño de bloques para ajustarse al valor optimo para el dispositivo de cinta,
redireccionando la salida y el error estándar a archivos de registro.
# star -cv –multivol bs=256k f=/dev/st0 /oradata

El siguiente ejemplo, realiza una copia de seguridad del directorio /app a un


archivo tar comprimido con bzip2.

# star -cjv f=/tmp/[Link].bz2 /app

En este ejemplo se lista el contenido del archivo creado anteriormente.


# star -tj f=tmp/[Link].bz2

El siguiente ejemplo, realiza una copia de seguridad de los archivos de zona de un


servidor DNS que tiene SELinux habilitado.
# star -cv -xattr -H=exustar bs=256k f=/dev/st0 /var/named

El siguiente ejemplo extrae todos los archivos contenidos en el dispositivo de cinta


al directorio /restore, de forma incondicional conservando los permisos de los
archivos.
# star -xpU f=/dev/st0 -C /restore

En este ejemplo, se utiliza un patron de concordancia para extraer archivos que


comienzan con z que se encuentran en el directorio app del dispositivo de cinta, el
carácter especial asterisco “*” debe ser escapado con la barra invertida.
# star -xpU f=/dev/st0 pattern=app/z\*

105 Ing. Iván Ferreira


Herramientas del sistema

En el siguiente ejemplo, se hace una copia de seguridad del sistema de archivos


raíz, sin respaldar los sistemas de archivos montados.
# star -cv -xdev bs=256k f=/dev/st0 /

Realizando copias de seguridad incrementales

En la mayoría de los sistemas, el intervalo de copia es diario, pero puede


seleccionar cualquier otro intervalo de tiempo. No es necesario salvar todos los
archivos en un sistema de archivos en cada copia, es posible copiar sólo aquellos
que han cambiado desde la copia previa. Esto es conocido como copias de
seguridad incrementales.

Con la herramienta star, puede realizar nueve niveles de copias de seguridad


incrementales. Por ejemplo, mientras en nivel 0 copia todo un sistema de archivos,
el 1 copia solo los archivos que cambiaron desde el último nivel 0, y un nivel 7
copia solo los archivos que cambiaron desde la última copia 6.

Puede organizar una estrategia de copias como la siguiente:

Dom Lun Mar Mier Jue Vie Sab

0 1 2 3 4 5 6

Cada domingo realiza una copia completa del sistema, y diariamente una copia de
los archivos que cambiaron desde la copia del día anterior. Esto reduce el tiempo
de copia de seguridad. Sin embargo, si es necesario restaurar el sistema, deben
ser restauradas todas las copias en orden a partir del 0. Esto incrementa el tiempo
de restauración que generalmente es mas crítico que el tiempo de copias de
seguridad.

Para realizar copias de seguridad incrementales con el comando star, es


necesario utilizar la opción level=N, siendo N un numero indicando el nivel de la
copia de seguridad, así como la opción wtardumps.

Para crear una copia de seguridad nivel 0, ejecute el siguiente comando:


# star -c -xdev -sparse -acl -wtardumps level=0 f=nombre_archivo_tar \
-C /punto_de_montaje .

Para crear copia de seguridad nivel 1, ejecute el siguiente comando:


# star -c -xdev -sparse -acl -wtardumps level=1 f=archivo_tar \
-C /punto_de_montaje .

Red Hat Certified Engineer 106


Herramientas del sistema

La restauración debían realizarse en un sistema de archivos vacío. El proceso de


restauración inicia con la restauración de la última copia de seguridad nivel 0.
Luego es necesario restaurar la última copia incremental de cada nivel en orden
ascendente.

Para extraer la copia de seguridad nivel 0 ejecute:


# cd /punto_montaje
# star -xpU -restore f=archivo_tar

Para extraer la copia de seguridad nivel 1 ejecute el mismo comando:


# cd /punto_montaje
# star -xpU -restore f=archivo_tar

Así sucesivamente hasta restaurar todas las copias incrementales de cada nivel
existente.

Haciendo copias de seguridad remotas

Es posible utilizar star en conjunto con ssh para realizar copias de seguridad a
traves de la red. Primero deberá configurar la variable de entorno RSH para indicar
que el método de conexión al servidor remoto es ssh. Luego, deberá indicar el
nombre del archivo tar destino, de la siguiente forma:
f=usuario@[Link]:/archivo_tar

Por ejemplo, para realizar una copia de seguridad del sistema de archivos
/oracle a través de la red utilizando ssh, al servidor [Link] en el directorio
/backup, ejecute el siguiente comando:

# env RSH=/usr/bin/ssh star -cvM f=usuario@[Link]:/backup/[Link]


/oracle

Para listar el contenido de un archivo tar que se encuentra en un host remoto


ejecute el siguiente comando:
# env RSH=/usr/bin/ssh star -cvM f=usuario@[Link]:/backup/[Link]

Para restaurar la copia de seguridad, ejecute el comando:


# cd /oracle
# env RSH=/usr/bin/ssh star -xv f=usuario@[Link]:/backup/[Link]

107 Ing. Iván Ferreira


7

Gestor de arranque y autoinstalación


Gestor de arranque y autoinstalación

Gestores de arranque y autoinstalación

Antes de poder ejecutar CentOS Linux, debe ser cargado en memoria por un
programa especial llamado gestor de arranque. El programa de gestor de arranque
existe en el disco duro primario del sistema (o en otros dispositivos) y es
responsable de la carga del kernel de Linux con sus archivos necesarios, o, en
algunos casos, de otros sistemas operativos en la memoria.

Cada arquitectura de sistemas que pueda ejecutar CentOS Linux usa un gestor de
arranque diferente. Por ejemplo, la arquitectura Alpha usa el gestor de arranque
aboot, mientras que la arquitectura Itanium usa el gestor de arranque ELILO.

Este capítulo explica comandos y opciones de configuración para los cargadores


de arranque suministrados con CentOS Linux para la arquitectura x86: GRUB.

GRUB

GNU GRand Unified Boot loader o GRUB es un programa que habilita al usuario
a seleccionar qué sistema operativo instalado o kernel descargar en el momento de
arranque del sistema. Permite también que el usuario transmita argumentos al
kernel.

Proceso de arranque en un sistema x86 y GRUB

Esta sección explica con más detalle el papel específico que desempeña GRUB al
arrancar un sistema x86.

GRUB se carga a sí mismo en la memoria en las diferentes etapas:

● La etapa 1 o cargador de arranque primario se lee en la memoria con el


BIOS desde el MBR[1].El gestor de arranque primario existe en menos de
512 bytes de espacio en disco entre el MBR y es capaz de cargar bien sea
la etapa 1.5 o la etapa 2 del gestor de arranque.

● El gestor de arranque de la etapa 1 lee en la memoria al gestor de arranque


de la etapa 1.5. si es necesario Determinado hardware requiere un paso
intermedio para obtener el cargador de arranque de la etapa 2. Esto sucede
a menudo cuando la partición /boot está por encima de 1024 cilindros de
disco duro o cuando se usa el modo LBA. Este cargador de arranque de la
etapa 1.5 se encuentra en la partición /boot o en una pequeña parte del
MBR y la partición /boot.

● La etapa 2 o el gestor de arranque secundario se lee en la memoria. El

109 Ing. Iván Ferreira


Gestor de arranque y autoinstalación

gestor de arranque secundario visualiza el menú GRUB y el entorno del


comando. Esta interfaz le permite seleccionar qué sistema operativo o kernel
de Linux arrancar, pasar argumentos al kernel o ver los parámetros del
sistema, tales como la RAM disponible.

● El gestor de arranque secundario lee el sistema operativo o el kernel y initrd


en la memoria. Una vez que GRUB determina qué sistema operativo iniciar,
éste lo carga en la memoria y transfiere el control de la máquina a dicho
sistema operativo.

El método de arranque usado para arrancar CentOS Linux se conoce como método
de carga directa porque el gestor de arranque carga el sistema operativo
directamente. No existe punto medio entre el gestor de arranque y el kernel.

El proceso de arranque usado por otros sistemas operativos puede variar. Por
ejemplo, los sistemas operativos de Microsoft DOS y Windows, así como otros
sistemas operativos de propietarios, se cargan mediante un método de arranque de
carga encadenada. Bajo este método, el MBR señala el primer sector de la
partición que tiene el sistema operativo. Allí encuentra los archivos necesarios para
arrancar el sistema operativo.

GRUB soporta ambos métodos de arranque, directo y carga encadenada,


permitiendo arrancar desde casi cualquier sistema operativo.

Funciones de GRUB

GRUB contiene una serie de funciones que lo convierten en el método favorito


respecto al resto de gestores de arranque disponibles para la arquitectura x86. A
continuación tiene una lista de las características más importantes:

GRUB proporciona un entorno pre-OS basado en comandos verdaderos para


máquinas x86. Esto proporciona una flexibilidad máxima en la carga de los
sistemas operativos con determinadas opciones o con la recopilación de
información sobre el sistema. Durante muchos años arquitecturas que no son x-86
han usado entornos previos al sistema operativo que permiten arrancar el sistema
desde una línea de comandos.

GRUB soporta el modo Direccionamiento Lógico de Bloques (LBA). El modo LBA


coloca la conversión de direccionamiento utilizada para buscar archivos en la
unidad de disco duro del firmware y se utiliza en muchos discos IDE y en todos los
discos duros SCSI. Antes de LBA, los gestores de arranque encontraban la
limitación del cilindro 1024 del BIOS, donde el BIOS no podía encontrar un archivo
después de ese cabezal de cilindro del disco. El soporte LBA permite que GRUB
arranque los sistemas operativos desde las particiones más allá del límite de 1024
cilindros, siempre y cuando el BIOS del sistema soporte el modo LBA. Las
revisiones más modernas de la BIOS soportan el modo LBA.

Red Hat Certified Engineer 110


Gestor de arranque y autoinstalación

GRUB puede leer las particiones ext2. Esto permite que GRUB acceda a su archivo
de configuración, /boot/grub/[Link], cada vez que el sistema arranca,
eliminando la necesidad que tiene el usuario de escribir una nueva versión de la
primera etapa del gestor de arranque al MBR en caso de que se produzcan
cambios de la configuración. El único caso en el que el usuario necesitaría
reinstalar GRUB en el MBR es en caso de que la localización física de la partición
/boot se traslade en el disco.

Terminología de GRUB

Una de las cuestiones más importantes que deben entenderse antes de utilizar
GRUB es cómo el programa hace referencia a los dispositivos, por ejemplo, a los
discos duros y a las particiones. Esta información es muy importante si desea
configurar GRUB para arrancar varios sistemas operativos.

Nombres de dispositivos

Suponga que un sistema tiene más de un disco duro. El primer disco duro del
sistema es llamado (hd0) por GRUB. La primera partición en ese disco es llamada
(hd0,0), y la quinta partición en el segundo disco duro es llamada (hd1,4). En
general, la nomenclatura utilizada para los sistemas de archivos al usar GRUB se
desglosa del siguiente modo:
(<tipo-dispositivo><numero-dispositivo-bios>,<numero-particion>)

Los paréntesis y las comas son muy importantes en el nombre.

● <tipo-dispositivo> hace referencia a si es un disco duro (hd) o una


unidad de disquete (fd).

● <número-dispositivo-bios> es el número de dispositivo según la BIOS


del sistema, empezando desde 0. El orden es aproximadamente equivalente
al modo en el que el kernel de Linux organiza los dispositivos con letras,
donde la letra a en hda corresponde al número 0, y la letra b en hdb
corresponde al número 1, y así sucesivamente.

● <número-partición> hace referencia al número de una partición


concreta en dicho dispositivo. Al igual que en el caso de <número-
dispositivo-bios>, la numeración de las particiones empieza por 0.

Nomenclatura de dispositivos en GRUB

GRUB usa las reglas siguientes para denominar los dispositivos y las particiones

No es relevante si los discos duros que utiliza son IDE o SCSI. Todos los discos

111 Ing. Iván Ferreira


Gestor de arranque y autoinstalación

duros empiezan con hd. Las unidades de disquete empiezan con fd.

Para especificar todo un dispositivo sin respetar sus particiones, simplemente debe
suprimir la coma y el número de partición. Esto es importante para indicarle a
GRUB que configure el registro MBR para un disco concreto. Por ejemplo, (hd0)
especifica la MBR en el primer dispositivo y (hd3) especifica la MBR en el cuarto
dispositivo.

Si tiene varios discos duros, es muy importante saber el orden de la unidad de


arranque de la BIOS. Esto es muy sencillo si sólo tiene discos IDE o SCSI, pero si
tiene una combinación de ambos, el asunto se complica un poco.

Nombres de archivos y listas de bloques

Al escribir comandos en GRUB que hagan referencia a un archivo, como una lista
de menús que debe usarse para permitir el arranque de varios sistemas operativos,
debe incluir el archivo inmediatamente después de especificar el dispositivo y la
partición.

Una especificación de archivo de ejemplo que haga referencia a un nombre de


archivo absoluto se organiza del modo siguiente:
(<tipo-dispositivo><numero-dispositivo-bios>,<numero-particion>)/ruta/al/archivo

La mayoría de las veces, un usuario especificará los archivos por la ruta del
directorio en esa partición más el nombre del archivo.

También puede especificar archivos a GRUB que no aparecen realmente en el


sistema de archivos, tal como un gestor de arranque de cadena que aparece en los
primeros bloques de la partición. Para especificar estos archivos, deberá indicar
una lista de bloques, que indique a GRUB, bloque por bloque, la ubicación exacta
del archivo en la partición. Puesto que un archivo puede estar formado por varios
conjuntos de bloques, hay un modo específico de escribir listas de bloques. Cada
ubicación de sección de archivo se describe con un número de desplazamiento de
bloques seguido de un número de bloques de ese punto de desplazamiento, y las
secciones se colocan juntas de forma ordenada y separadas por comas.

Saber cómo escribir listas de bloques es útil al utilizar GRUB para cargar sistemas
operativos que usan el método de carga encadenada, como Microsoft Windows.
Puede suprimir el número de desplazamiento de bloques si empieza por el bloque
0. Por ejemplo, el archivo de carga encadenada de la primera partición del primer
disco duro tendrá el nombre siguiente:
(hd0,0)+1

Lo siguiente muestra el comando chainloader con una designación de lista de


bloques similar en la línea de comandos de GRUB después de establecer el

Red Hat Certified Engineer 112


Gestor de arranque y autoinstalación

dispositivo correcto y la partición adecuada como raíz:


chainloader+1

Una entrada típica para el inicio de un sistema operativo Windows sería:


# Seccion de carga de Windows
title Windows
rootnoverify (hd0,0)
chainloader(hd0,0)+1

Sistema de archivos raíz de GRUB

Algunos usuarios se confunden con el uso del término sistema de archivos en


GRUB. Es importante recordar que el sistema de archivos raíz de GRUB no tiene
nada que ver con el sistema de archivos raíz de Linux.

El sistema de archivos raíz de GRUB es la partición raíz de un dispositivo concreto.


GRUB usa esta información para montar el dispositivo y carga los archivos desde
el mismo.

Con CentOS Linux, una vez que GRUB ha cargado la partición raíz (que es lo
mismo que la partición /boot y contiene el kernel de Linux), el comando kernel
puede ejecutarse con la localización del archivo del kernel como una opción. Una
vez que el kernel de Linux inicia, establece el sistema de archivos raíz con los
cuales los usuarios de Linux están familiarizados. El sistema de archivos root de
GRUB original y los montajes deben olvidarse en este punto; la única finalidad de
su existencia era arrancar el archivo del kernel.

Interfaces de GRUB

GRUB dispone de tres interfaces eficaces que proporcionan distintos niveles de


funcionalidad. Cada una de estas interfaces le permite arrancar el kernel de Linux u
otros sistemas operativos.

Las interfaces son como sigue:

● Interfaz de menú: Si el programa de instalación de CentOS Linux ha


configurado automáticamente GRUB, ésta es la interfaz que ya conoce. En
esta interfaz hay un menú de sistemas operativos o kernels preconfigurados
con sus propios comandos de arranque en forma de lista ordenada por
nombre, después de arrancar el sistema por primera vez. Puede utilizar las
teclas de flecha para seleccionar una opción en lugar de la selección por
defecto y pulsar la tecla [Intro] para arrancar el sistema. Como alternativa, se
puede establecer un período de inactividad, de modo que GRUB inicie la
carga de la opción por defecto.

Presione la tecla [e] para entrar en la interfaz del editor o la tecla [c] para

113 Ing. Iván Ferreira


Gestor de arranque y autoinstalación

cargar la interfaz de línea de comandos.

● Interfaz del editor de entrada del menú: Para tener acceso al editor de
entradas del menú, presione la tecla [e] desde el menú del gestor de
arranque. Los comandos de GRUB de dicha entrada se muestran aquí y
puede alterar estas líneas de comandos antes de arrancar el sistema
operativo agregando una línea de comandos ([o] inserta una nueva línea
después de la línea actual y [O] inserta una nueva línea antes de ella),
modificandola ([e]), o borrando una ([d]).

Una vez realizados los cambios, la tecla [b] ejecuta los comandos y arranca
el sistema operativo. Con la tecla [Esc] se omiten los cambios y el usuario
vuelve a la interfaz de menú estándar. Con la tecla [c] se carga la interfaz de
línea de comandos.

● Interfaz de línea de comandos: Esta es la interfaz de GRUB más básica,


pero también la que proporciona un mayor control. En esta interfaz puede
escribir cualquier comando de GRUB seguido de la tecla [Intro] para
proceder a la ejecución correspondiente. Esta interfaz cuenta con algunas
funciones similares a las de shell avanzadas, incluyendo el uso de [Tab]
para autocompletar, y las combinaciones de teclas con [Ctrl] al escribir
comandos, tales como [Ctrl]-[a] para moverse al comienzo de la línea y
[Ctrl]-[e] para moverse al final. Además, las teclas de flecha, [Inicio], [Fin],
y [Supr] funcionan de forma similar al bash shell.

Orden de uso de Interfaces

Cuando GRUB carga la segunda etapa de su gestor de arranque, primero busca


por su archivo de configuración. Cuando lo encuentra, lo utiliza para crear la lista
de menú y despliega la interfaz de menú.

Si no puede encontrar el archivo de configuración o si éste no se puede leer, GRUB


carga la interfaz de línea de comandos para permitirle al usuario escribir
manualmente los comandos necesarios para completar el proceso de arranque.

En el caso de que el archivo de configuración no sea válido, GRUB imprimirá el


error y solicitará la introducción de valores. Esto puede ser muy útil, porque podrá
ver con exactitud donde está el problema y corregirlo en el archivo. Si pulsa
cualquier tecla se volverá a cargar la interfaz de menú, donde podrá modificar la
opción de menú y corregir el problema según el error que GRUB haya notificado. Si
la corrección falla, GRUB informa del error y puede empezar de nuevo.

Comandos de GRUB

GRUB permite varios comandos en su línea de comandos. Algunos de los

Red Hat Certified Engineer 114


Gestor de arranque y autoinstalación

comandos aceptan opciones después del nombre y estas opciones deben ir


separadas del comando por comas y de otras opciones de esa línea por caracteres
de espacio.

En la lista siguiente se indican los comandos más útiles:

Opción Descripción
boot Arranca el sistema operativo o gestor de
encadenamiento que se ha especificado y
cargado previamente.
chainloader <nombre-archivo> Carga el archivo especificado como gestor de
encadenamiento. Para extraer el archivo en el
primer sector de la partición especificada,
puede utilizar +1 como nombre de archivo.
displaymem Muestra el uso actual de memoria, en función
de la información de la BIOS. Esto es útil si no
está seguro de la cantidad de RAM que tiene
un sistema y todavía tiene que arrancarlo.
initrd <nombre-archivo> Le permite especificar un disco RAM inicial
para utilizarlo al arrancar. initrd es necesario
cuando el kernel necesita ciertos módulos
para poder arrancar adecuadamente, tales
como cuando la partición se formatea con el
sistema de archivos ext3.
install Instala GRUB en la MBR del sistema.
kernel Indica la ruta al archivo kernel Linux
root <dispositivo-particion> Configura la partición raíz de GRUB para que
sea el dispositivo y la partición concreta, por
ejemplo, (hd0,0), y monta la partición de
modo que se puedan leer los archivos.
rootnoverify <dispositivo- Configura la partición raíz de GRUB para que
particion>
sea el dispositivo y la partición concreta, por
ejemplo, (hd0,0), y monta la partición de
modo que se puedan leer los archivos.

Para el sistema CentOS Linux, es probable que tenga una línea similar a la
siguiente:
kernel /vmlinuz-<version> ro root=/dev/sda3

Esta línea especifica que el archivo vmlinuz se carga desde un sistema de


archivos raíz de GRUB, por ejemplo, (hd0,0). También se transfiere una opción
al kernel que especifica que el sistema de archivos raíz del kernel del Linux debe
encontrarse, al cargarse, en sda3, la tercera partición en el primer disco duro.

115 Ing. Iván Ferreira


Gestor de arranque y autoinstalación

Después de esta opción se pueden indicar varias opciones del kernel, si es


necesario.

Hay otros comandos disponibles aparte de los indicados. Escriba info grub para
obtener una lista completa de los comandos.

Archivo de configuración de menú de GRUB

El archivo de configuración /boot/grub/[Link], usado para crear la lista en


la interfaz de menú de GRUB de los sistemas operativos para el arranque,
básicamente permite al usuario seleccionar un grupo predefinido de comandos
para su ejecución.

Comandos especiales del archivo de configuración

Los comandos siguientes sólo pueden usarse en el archivo de configuración de


menú de GRUB:

Opción Descripción
color <normal> <selected> Le permite configurar los colores específicos que se
usarán en el menú. Se configuran dos colores: uno
de fondo y otro de primer plano. Use nombres de
colores simples, tales como red/black. Por ejemplo:
color red/black green/blue
default <nombre-título> Nombre del título por defecto de la entrada que se
cargará si se supera el tiempo de inactividad de la
interfaz de menú.
fallback <nombre-título> Si se utiliza, el nombre de título de la entrada que
deberá probarse si falla el primer intento.
hiddenmenu Si se utiliza, no se podrá mostrar la interfaz de
menú de GRUB ni cargar la entrada por defecto
default si caduca el período timeout. El usuario
puede ver el menú estándar de GRUB si pulsa la
tecla [Esc].
password <contraseña> Si se utiliza, el usuario que no conozca la
contraseña no podrá modificar las entradas de esta
opción de menú.
timeout Si se utiliza se establece la cantidad de tiempo, en
segundos, antes de que GRUB cargue la entrada
designada por el comando default.
splashimage Especifica la ubicación de la imagen de pantalla de

Red Hat Certified Engineer 116


Gestor de arranque y autoinstalación

Opción Descripción

fondo que se utilizará al arrancar.


title Establece el título que se utilizará con un grupo de
comandos concreto para cargar un sistema
operativo.
# Se puede usar al principio de una línea para insertar
comentarios en el archivo de configuración de
menú.

Estructura del archivo de configuración

El archivo de configuración de menú de GRUB es /boot/grub/[Link]. Los


comandos para configurar las preferencias globales para la interfaz de menú están
ubicados al inicio del archivo, seguido de las diferentes entradas para cada sistema
operativo o kernels listados en el menú.

El siguiente es un ejemplo de archivo de configuración de menú muy básico


diseñado para arrancar bien sea CentOS Linux o Microsoft Windows:
default=0
timeout=5
splashimage=(hd0,0)/grub/[Link]
hiddenmenu

# Seccion de carga de Linux


title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
initrd /[Link]

# Seccion de carga de Windows


title Windows
rootnoverify (hd0,0)
chainloader(hd0,0)+1

Este archivo indicará a GRUB que cree un menú con CentOS Linux como el
sistema operativo predeterminado y que establezca un arranque automático
después de 10 segundos. Se proporcionan dos secciones, una para cada entrada
de sistema, con comandos específicos para la tabla de partición de cada sistema.

Cambiar los niveles de ejecución en el tiempo de arranque

Bajo CentOS Linux, es posible cambiar el nivel de ejecución predeterminado en el


momento de arranque.

Si está usando GRUB como gestor de arranque, siga los pasos siguientes:

117 Ing. Iván Ferreira


Gestor de arranque y autoinstalación

En la pantalla gráfica del gestor de arranque GRUB, seleccione la etiqueta de


arranque CentOS Linux y pulse [e] para editarla.

Vaya en la parte inferior a la línea del kernel y pulse [e] para editarla.

En el intérprete de comandos, escriba el número del nivel de ejecución en el que


desea arrancar (desde 1 a 5), o las palabras single o emergency y presione
[ENTER].

Volverá a la pantalla de GRUB con la información sobre el kernel. Pulse [b] para
arrancar el sistema.

Instalaciones Kickstart

Muchos administradores de sistemas prefirieren usar un método de instalación


automatizado para instalar CentOS Linux en sus maquinas. Para cubrir esta
necesidad, CentOS crea el método de instalación kickstart. Usando kickstart, un
administrador de sistemas puede crear un archivo conteniendo las respuestas a
todas las preguntas que normalmente se le preguntarán durante una instalación
típica de CentOS Linux.

Los archivos kickstart se pueden mantener en un servidor de sistema único y ser


ledos por computadores individuales durante la instalación. Este método de
instalación puede soportar el uso de un solo archivo kickstart para instalar CentOS
Linux en múltiples máquinas, haciéndolo ideal para administradores de sistemas y
de red.

Kickstart le permite automatizar la instalación de CentOS Linux.

Cómo realizar una instalación de Kickstart?

Las instalaciones de Kickstart pueden realizarse usando un CD-ROM, un disco


duro local, o a través de NFS, FTP, o HTTP.

Para usar kickstart, debe:

● Crear un archivo kickstart.

● Crear un disquete de arranque con el archivo o hacer el kickstart disponible


en la red.

● Hacer el árbol de instalación disponible.

● Iniciar la instalación de kickstart indicando la opción apropiada durante el

Red Hat Certified Engineer 118


Gestor de arranque y autoinstalación

inicio de la instalación.

Opciones de Kickstart

Exite una gran cantidad de opciones que pueden ser utilizadas en un archivo
Kickstart para indicar los valores a ser utilizados durante la instalación. Para un
detalle de todas las opciones, refiérase al manual CentOS Enterprise Linux:
System Administration Guide y las Notas de Revisión.

Para simplificar la creación de un archivo kickstart puede utilizar un archivo


[Link] de cualquier sistema existente y realizar los cambios
apropiados a este archivo.

Si prefiere usar una interfaz gráfica para la creación de su archivo kickstart, puede
usar la aplicación de configuración Kickstart, system-config-kickstart.

Usando el archivo kickstart

El archivo kickstart debe ser copiado a una ubicación accesible por el programa de
instalación, estas ubicaciones incluyen:
● Una partición de disco

● Un floppy

● HTTP, FTP o NFS

● CD de inicio

Para iniciar la instalación automática desde un disquete, copie el archivo kickstart


generado con el nombre [Link] a un disquete formateado con vfat.

Un CD de inicio puede ser creado a partir del archivo images/[Link] del


primer CD de instalación. A esta imagen es posible agregar el archivo [Link]
antes de grabarla al CD. El archivo debe llamarse [Link] y estar ubicado en la
raíz del CD. Para agregar el archivo antes de crear el CD, debe montar la imagen
[Link], copiar el contenido a un directorio diferente, agregar el archivo [Link]
y utilizar el comando mkisofs para crear una nueva imagen iso. Para lograr esto
siga los siguientes pasos:

Cree dos directorios, /tmp/bootiso y /tmp/bootiso-ks.

# mkdir /tmp/bootiso
# mkdir /tmp/bootiso-ks

Monte el archivo [Link] que se encuentra en el directorio images/ del medio

119 Ing. Iván Ferreira


Gestor de arranque y autoinstalación

de instalación en el directorio /tmp/bootiso

# mount -o loop images/[Link] /tmp/bootiso

Copie el contenido del CD al segundo directorio para crear una nueva imagen de
instalación:
# cp -r /tmp/bootiso/* /tmp/bootiso-ks/

Copie el archivo kickstart al directorio isolinux/ de tal forma a incluir el archivo


[Link] en la nueva imagen de instalación:
# cp [Link] /tmp/bootiso-ks/isolinux/[Link]

Cree una nueva imagen ISO con el comando mkisofs:

# cd /tmp/bootiso-ks
# mkisofs -o [Link] -b [Link] -c [Link] -no-emul-boot \
-boot-load-size 4 -boot-info-table -R -J -T isolinux/

Grabe el nuevo archivo [Link] a un CD e inicie el equipo con él.

Iniciando la instalación Kickstart


Inicie el equipo con el primer CD de instalación e indique el parámetro correcto de
inicio según donde este ubicado el archivo kickstart:

● CD-ROM
linux ks=cdrom:/[Link]

● Recurso NFS
linux ks=nfs:<servidor>:/<recurso>/<[Link]>

● Servidor HTTP
linux ks=[Link]

● Disquete
linux ks=floppy

● Dispositivos de discos
linux ks=hd:<dispositivo>:/<[Link]>

Reemplace <dispositivo> por el nombre del disco que contiene el archivo


kickstart. Debe estar formateado con ext2 o vfat.

Todos estos comandos asumen que la conexión de red debería utilizar la interfaz
eth0. Para utilizar una interfaz alternativa, utilice la opción:
ksdevice=<dispositivo>

Red Hat Certified Engineer 120


Gestor de arranque y autoinstalación

También puede indicar al programa anaconda los valores de ethtool para la


interfaz, por ejemplo:
ethtool="duplex full speed 100"

Configuración de un servidor de instalación

El medio de instalación para CentOS Enterprise Linux debe estar disponible para
una instalación de red (a través de NFS, FTP o HTTP) o una instalación a través de
almacenamiento local. Utilice los pasos siguientes si está llevando a cabo una
instalación NFS, FTP o HTTP.

El servidor NFS, FTP o HTTP a utilizar para la instalación sobre la red, debe ser
una máquina separada que pueda proporcionar los directorios del medio de
instalación.

Para copiar los archivos de instalación a una máquina Linux la cual actúa como el
servidor de instalación, ejecute los pasos siguientes:

● Para cada medio de instalación, ejecute los comandos siguientes:


# mount /dev/<dispositivo> /media/cdrom
# cp -var /media/cdrom/* /export/CentOS
# umount /media/cdrom/

Luego, haga /export/CentOS accesible para la instalación de red a través de


NFS, FTP o HTTP y verifique el acceso desde un sistema cliente.

● Para NFS, exporte el directorio añadiendo una entrada a /etc/exports para


exportar a un sistema específico:
/export/CentOS *(ro,async)

● Reinicie demonio NFS con el comando:


/sbin/service nfs restart

Las instalaciones NFS pueden utilizar imágenes ISO en vez de copiar el árbol de
instalación completo. Después de colocar las imágenes ISO requeridas en un
directorio, seleccione instalar a través de NFS. Luego apunte el programa de
instalación a ese directorio para llevar a cabo la instalación.

Las instalaciones FTP y HTTP también soportan un segundo tipo de estructura de


árbol. Para hacer más fácil el acceso a los contenidos de los medios de instalación
en caso de imágenes de CD monte imagen ISO con el siguiente punto de montaje
en el servidor FTP o HTTP (donde X es el número de CD-ROM o imágenes ISO):

121 Ing. Iván Ferreira


Gestor de arranque y autoinstalación

/var/ftp/discX/

Por ejemplo:
# mount -o loop [Link] /var/ftp/disc1/
# mount -o loop [Link] /var/ftp/disc2/

Instalación utilizando PXE


Algunas interfaces de red incluyen la posibilidad de utilizar PXE (Pre-Execution
Environment). PXE envía una solicitud DHCP a la dirección de broadcast. Si el
servidor DHCP esta configurado para enviar la dirección IP o nombre de host al
cliente, y la ubicación del servidor tftp que contiene los archivos necesarios para
iniciar la instalación de CentOS Enterprise Linux, el cliente puede iniciar una
instalación de red sin tener que arrancar desde un medio local.

También puede utilizar este método para realizar una instalación de red
automatizada con kickstart.

Configuración del servidor tftp

El servidor tftp no está instalado por defecto. Debe instalar el paquete tftp-server y
el paquete syslinux. La siguiente información debe ser configurada en el servidor
tftp:

● Identificador de S.O.: Una palabra única que describe el árbol de


instalación al cual el servidor PXE direcciona al cliente.

● Protocolo para instalación: Debe ser NFS, HTTP o FTP.

● Ubicación del archivo kickstart (opcional): La ubicación del archivo


kickstart.

● Dirección IP del servidor de red: Dirección IP o nombre de host del


servidor NFS, FTP o HTTP que proporciona el árbol de instalación.

● Ubicación del árbol de instalación: El directorio que contiene el árbol de


instalación. Este debe incluir el directorio images/pxeboot/.

Configurando los archivos del servidor tftp

Primero, configure el directorio /tftpboot/linux-install/<os>/ con los


archivos necesarios para realizar una instalación vía PXE.

# mkdir /tftpboot/linux-install

Copie el archivo /usr/lib/syslinux/pxelinux.0 al directorio creado:

Red Hat Certified Engineer 122


Gestor de arranque y autoinstalación

# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/linux-install

Cree el directorio msg/:

# mkdir /tftpboot/linux-install/msg

Copie todos los archivos .msg del directorio isolinux/ del árbol de instalación o
del primer CD de instalación.
# cp isolinux/*.msg /tftpboot/linux-install/msg

Cree el directorio que se utilizara como identificador de la versión de S.O. que


estará instalando, por ejemplo CentOS.
# mkdir /tftpboot/linux-install/CentOS

Copie los archivos [Link] y vmlinuz del directorio images/pxeboot/ del


árbol de instalación o del primer CD de instalación.
# cd images/pxeboot/
# cp [Link] vmlinuz /tftpboot/linux-install/CentOS

Si realizará una instalación kickstart, copie los archivos kickstart en el directorio


linux-install/CentOS.

Cree el directorio /tftpboot/linux-install/[Link]:

# mkdir /tftpboot/linux-install/[Link]

El directorio [Link] debería contener un archivo por cada sistema a ser


instalado. El nombre del archivo es la dirección IP o nombre de host del sistema a
ser instalado. Si el sistema no tiene un archivo asociado, la información de
configuración contenida en el archivo default es utilizada.

El siguiente es un ejemplo de un archivo de configuración. Reemplace <os> con el


id del directorio creado para la instalación de la versión de Linux y <metodo> con
el método de instalación que desea utilizar, por ejemplo
nfs:<servidor>/<dir>.

default local
timeout 100
prompt 1
display msgs/[Link]
F1 msgs/[Link]
F2 msgs/[Link]
F3 msgs/[Link]
F4 msgs/[Link]
F5 msgs/[Link]
F7 msgs/[Link]

label local
localboot 1

123 Ing. Iván Ferreira


Gestor de arranque y autoinstalación

label network
kernel <os>/vmlinuz
append initrd=<os>/[Link] ramdisk_size=6878 method=<method> ip=dhcp \
ks=<method>

Este ejemplo de archivo, crea dos opciones de arranque, local y network. Por
defecto, iniciara local. Para iniciar una instalación desde la red, en el prompt de la
instalación deberá indicar network.

Habilite e inicie el servicio tftp el cual es controlado por xinetd:

# chkconfig xinetd on
# chkconfig tftp on
# service xinetd restart

Configuración del servidor DHCP


Las siguientes líneas deben ser adicionadas en el archivo [Link]:

allow booting;
allow bootp;
class "pxeclients" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server <dirección-ip-servidor>;
filename "linux-install/pxelinux.0";
}

Para mayor información acerca de la configuración de un servidor DHCP, consulte


el manual de administración de servicios de red.

Red Hat Certified Engineer 124


8

Reconfiguración del kernel


Reconfiguración del kernel

Reconfiguración del kernel

Actualización del kernel

El kernel que viene con CentOS Linux está personalizado por el equipo de
desarrollo del kernel de CentOS para asegurar su integridad y compatibilidad con el
hardware soportado. Antes que CentOS libere un kernel, debe pasar un conjunto
de evaluaciones rigurosas para asegurar su calidad.

Los kernels CentOS Linux están empaquetados en formato RPM para as hacerlos
ms fácil de actualizar y verificar. Por ejemplo, cuando el paquete RPM kernel
distribuido por CentOS, Inc. es instalado, una imagen initrd es creada; por lo tanto
no es necesario usar el comando mkinitrd después de instalar un kernel
diferente. También modifica el fichero de configuración del gestor de arranque para
incluir el nuevo kernel, tanto si se instala LILO o GRUB.

Preparación de la actualización

CentOS Linux se distribuye con el kernel 2.6. Las características de un kernel tal
como se distribuye con CentOS Linux son:

● Asynchronous I/O: Las aplicaciones no deben pausar luego de emitir


mensajes de I/O de lectura hasta que éstas se completen.

● Granularidad SMP Incrementada: particularmente en el subsistema de I/O


SCSI . Permite mayor ancho de banda de I/O en sistemas SMP con múltiple
adaptadores de I/O.

● Mejoras en el SMP Scheduler: Mejora el rendimiento incrementando el hit-


rate de caché de CPU y reduciendo la contención en sistemas SMP con
mejoras en el bloqueo (spinlock).

● Eliminación Bounce Buffer: Reduce I/O relacionado a operaciones de


copia de memoria en sistemas con memoria > 1GB.

● Generic logical CPU Scheduler : Maneja cpu multi-núcleo y con


hypertheading.

● Object-based reverse Mapping VM: Aumenta el rendimiento en sistemas


de memoria limitada.

● Read Copy Update: Optimización del Algoritmo SMP para estructuras de


datos del sistema operativo.

Red Hat Certified Engineer 126


Reconfiguración del kernel

● Soporte SMP y NUMA mejorado: Aumenta el rendimiento y la escalabilidad


para servidores grandes.

● Network interrupt mitigation (NAPI): Aumenta el rendimiento en sistemas


con altas cargas de red.

● Conforma con la Interface LSB (Linux Standard Base): soporta una API
Linux estándar

● Multiple mejoras para incrementar el rendimiento de bases de datos.

● Mejoras en los sistemas de archivos: Aumento del rendimiento en


sistemas de archivos ext3. Expansión dinámica de tamaños de sistemas de
archivos hasta 8 TB.

● Logical Volume Manager (LVM): Proporciona nuevas características tales


como snapshots de lectura/escritura y una herramienta de administración
GUI.

● Mayor seguridad: Soporte para control de acceso mandatorio (SELinux).

● Compatibilidad multimedia mejorada y soporte mejorado para USB.

Antes de actualizar el kernel, tome algunas precauciones. La primera es


asegurarse que tiene un disco de arranque en caso de que haya problemas. Si el
gestor de arranque no está configurado apropiadamente para arrancar el nuevo
kernel, no será capaz de arrancar su sistema a menos que tenga un disquete de
arranque.

Para crear una imágen de disco de arranque para su sistema, conéctese como
usuario root y en el intérprete de comandos teclee el siguiente comando:
# /sbin/mkbootdisk --iso --device <[Link]> `uname -r`

Queme la imagen iso en un CD-ROM y reinicie la máquina con el disco de


arranque. Verifique que funciona antes de continuar.

Para determinar cuáles paquetes del kernel están instalados, ejecute el comando
siguiente en el intérprete de comandos:
# rpm -qa | grep kernel

La salida contendrá alguno o todos de los siguientes paquetes, dependiendo del


tipo de instalación que haya realizado (el número de la versión puede variar).

De la anterior salida, puede determinar qué paquetes necesita descargar para


actualizar el kernel. El único paquete necesario para un sistema con un único
procesador es el kernel.

127 Ing. Iván Ferreira


Reconfiguración del kernel

Si tiene un ordenador con más de un procesador, necesita el paquete kernel-smp


que contiene el soporte para más de un procesador y hasta 16 GB de memoria.
También se recomienda instalar el paquete kernel en el caso de que el kernel con
varios procesadores no funcione correctamente con el sistema.

Si tiene un ordenador con una memoria superior a 4 GB (y hasta 64 GB), necesita


el paquete kernel-PAE para que el sistema pueda usar más de cuatro gigabytes
de memoria.

El paquete kernel-doc contiene documentación sobre desarrollo del kernel y no


es necesario. Se recomienda si el sistema es usado para desarrollos del kernel.

El paquete kernel-headers incluye las cabeceras del lenguaje C, necesarias


para construir la mayoría de los programas estándar.

El paquete kernel-xen es una versión del kernel de linux necesario para ejecutar
Virtualización.

Los paquetes kernel-devel contienen las cabeceras y makefiles para construir


nuevos módulos.

En el nombre del archivo, cada paquete del kernel contiene la arquitectura para la
cual el paquete fue construido. El formato es kernel-<variante>-
<version>.<arq>.rpm donde <variante> es smp, utils, etc, y <arq> es
una de las siguientes:

● x86_64 para la arquitectura AMD64

● ia64 para la arquitectura Intel® Itanium™

● ppc64 para la arquitectura IBM® eServer™ pSeries™

● ppc64 para la arquitectura IBM® eServer™ iSeries™

● s390 para la arquitectura IBM® S/390®

● s390x para la arquitectura IBM® eServer™ zSeries®

● i686: Kernels x86 optimizados para distintos procesadores como Intel®


Pentium® II, Intel® Pentium® III, Intel® Pentium® 4, AMD Athlon®, and
AMD Duron® .

Realizando la actualización

Después de obtener todos los paquetes necesarios, es hora de actualizar el kernel


existente. En el intérprete de comandos de la shell como root, cámbiese al

Red Hat Certified Engineer 128


Reconfiguración del kernel

directorio que contiene los paquetes RPM y siga los pasos.

Use siempre el argumento -i con el comando rpm para mantener el viejo kernel.
Si la opción -U es usada para actualizar el paquete kernel, se sobreescribirá el
kernel instalado actualmente (la versión del kernel y la versión x86 pueden variar):
# rpm -ivh kernel-<version>.[Link]

Si el sistema contiene más de 4 GB de RAM, hasta 64 GB de RAM, deberá instalar


el paquete kernel-hugemem.

# rpm -ivh kernel-PAE-<version>.[Link]

El próximo paso es verificar que la imagen del disco inicial RAM ha sido creada.

Verificación de la imagen de disco RAM inicial

Si el sistema usa un controlador SCSI o un sistema de archivos ext3, necesitará un


disco RAM inicial. El propósito de dicho disco es permitir a un kernel modular tener
acceso a los módulos que son necesarios para arrancar antes de que el kernel
tenga acceso a los dispositivos donde los módulos normalmente residen.

El disco RAM inicial puede ser creado con el comando mkinitrd. Sin embargo,
este paso es ejecutado automáticamente si el kernel y sus paquetes asociados son
instalados o actualizados desde los paquetes RPM distribuidos por CentOS, Inc.;
por tanto, no necesita ser ejecutado manualmente. Para verificar que fue creado,
use el comando ls -l /boot para asegurarse de que el archivo initrd-
<version>.img fue creado (la versión debería coincidir la versión del kernel que
acaba de instalar).

Ahora que ya tiene instalado el nuevo kernel, necesita verificar que el gestor de
arranque está configurado para cargar el nuevo kernel.

Configuración del gestor de arranque

El paquete RPM kernel configura el gestor de arranque GRUB para arrancar el


nuevo kernel si cualquiera de estos gestores de arranque es instalado. Sin
embargo, no configura el gestor de arranque para cargar el nuevo kernel por
defecto.

Es una buena idea confirmar que el gestor de arranque se ha configurado


correctamente. Esto es un paso crucial. Si el gestor de arranque esta configurado
de forma incorrecta, no podrán arrancar el sistema. Si esto ocurre, arranque el
sistema con el disquete de arranque que creó anteriormente e intente configurar de
nuevo el gestor de arranque.

129 Ing. Iván Ferreira


Reconfiguración del kernel

Asegúrese que el fichero /boot/grub/[Link] contenga la sección title con


la misma versión del paquete kernel que acaba de instalar (lo mismo para los
paquetes kernel-smp o kernel-hugemem):

# [Link] generated by anaconda


#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda5
# initrd /[Link]
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/[Link]
hiddenmenu
title CentOS (2.6.18-92.el5PAE)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5PAE ro root=LABEL=/ rhgb quiet
initrd /[Link]
title CentOS (2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/ rhgb quiet
initrd /[Link]

Si ha creado una partición separada para /boot, el camino al kernel y la imagen


initrd será relativo a la partición /boot.

Observe que el nuevo kernel no está configurado para ser el kernel por defecto.
Para configurar GRUB para que arranque el nuevo kernel por defecto, cambie el
valor de la variable default al número del título de la sección que contiene el
nuevo kernel. La cuenta comienza con 0. Por ejemplo, si el nuevo kernel es el
segundo título en la sección, configure default a 1.

Comience evaluando el nuevo kernel reiniciando el computador y vigilando los


mensajes para asegurarse de que el hardware es detectado adecuadamente.

Módulos del kernel

El kernel de Linux tiene un diseño modular. En el momento de arranque, sólo se


carga un kernel residente mínimo en memoria. Por ello, cuando un usuario solicita
alguna característica que no esta presente en el kernel residente, se carga
dinámicamente en memoria un módulo kernel, también conocido algunas veces
como un controlador.

Durante la instalación, se prueba el hardware en el sistema. Basado en esta prueba


y en la información proporcionada por el usuario, el programa de instalación decide
qué módulos necesita cargar en el momento de arranque. El programa de
instalación configura el mecanismo de carga dinámica para que funcione de forma
transparente.

Red Hat Certified Engineer 130


Reconfiguración del kernel

Si se añade un nuevo hardware después de la instalación y este requiere un


módulo kernel, el sistema debe ser configurado para cargar el módulo adecuado
para el nuevo hardware. Cuando el sistema es arrancado con el nuevo hardware,
se ejecuta el programa Kudzu detecta el nuevo hardware si es soportado y
configura el módulo necesario para él. El módulo también puede ser especificado
manualmente modificando el archivo de configuración del módulo,
/etc/[Link] para las versiones 2.4 de kernel y /etc/[Link]
para las versiones 2.6 de kernel.

Utilidades del módulo del kernel

Está disponible un grupo de comandos para el manejo de módulos kernel. Use


estos comandos para determinar si un módulo ha sido cargado exitósamente o
cuando se esté probando módulos diferentes para una nueva pieza de hardware.

El comando /sbin/lsmod muestra una lista de los módulos cargados


actualmente. Por ejemplo:
# lsmod
Module Size Used by
nls_utf8 6208 1
autofs4 24517 2
hidp 23105 2
rfcomm 42457 0
l2cap 29505 10 hidp,rfcomm
bluetooth 53797 5 hidp,rfcomm,l2cap
vmxnet 15488 0
sunrpc 144893 1
dm_mirror 29253 0
dm_multipath 22089 0
dm_mod 61661 2 dm_mirror,dm_multipath
video 21193 0
sbs 18533 0
backlight 10049 1 video
i2c_ec 9025 1 sbs
button 10705 0
battery 13637 0
asus_acpi 19289 0
ac 9157 0
ipv6 258273 16
xfrm_nalgo 13765 1 ipv6
crypto_api 11969 1 xfrm_nalgo
lp 15849 0
sg 36189 0
floppy 57125 0
pcnet32 35141 0
pcspkr 7105 0
parport_pc 29157 1
mii 9409 1 pcnet32
parport 37513 2 lp,parport_pc
i2c_piix4 12237 0

Por cada línea, la primera columna es el nombre del módulo, la segunda columna
es el tamaño del módulo y la tercera es el recuento de usos y los módulos

131 Ing. Iván Ferreira


Reconfiguración del kernel

dependientes. Si el módulo indica 0 en la columna de uso, ese módulo no se


encuentra utilizado.

Para cargar un módulo del kernel, use el comando /sbin/modprobe seguido del
nombre del módulo. Por defecto, modprobe intenta cargar el módulo desde los
subdirectorios /lib/modules/<kernel-version>/kernel/drivers/. Hay
un subdirectorio para cada tipo de módulo, tal como el subdirectorio net/ para los
controladores de interfaces de red. Algunos módulos del kernel tienen
dependencias, es decir que otros módulos deben ser cargados antes para que el
otro se cargue. El comando /sbin/modprobe verifica estas dependencias y carga
los módulos necesarios antes de cargar el módulo específico.

Por ejemplo, el comando


# /sbin/modprobe hid

carga cualquier dependencia de módulos y luego el módulo hid.

Para imprimir a la pantalla todos los comandos a medida en que /sbin/modprobe


los ejecuta, use la opción -v. Por ejemplo:

# /sbin/modprobe -v hid

El comando /sbin/insmod también existe para cargar módulos kernel; sin


embargo no resuelve dependencias. Por ello se recomienda el uso de
/sbin/modprobe.

Para descargar módulos del kernel, use el comando /sbin/rmmod seguido por el
nombre del módulo. La utilidad rmmod sólo descarga módulos que ya no son
usados y que no son una dependencia de otro módulo en uso.

Por ejemplo, el comando


# /sbin/rmmod hid

baja el módulo del kernel hid.

Otra utilidad muy conveniente es modinfo. Use el comando /sbin/modinfo para


mostrar información sobre el módulo del kernel. La sintaxis general es:
/sbin/modinfo [options] <module>

Las opciones incluyen -d, lo cual muestra una breve descripción del módulo, y -p
lo que lista los parámetros que el módulo soporta. Para una lista completa de las
opciones, consulte la página del manual de modinfo.

Red Hat Certified Engineer 132


Reconfiguración del kernel

Construcción de un kernel personalizado

Mucha gente nueva en Linux pregunta "¿Por qué construir mi propio kernel?". Dado
el avance realizado con el uso de módulos para el kernel, la respuesta más
acertada a esta pregunta es, "A menos que sepa por qué construir su propio kernel,
probablemente no lo necesite".

El kernel entregado con CentOS Linux y a través del sistema de Errata de CentOS
Linux proporciona soporte para la mayoría del hardware moderno y características
del kernel. Para la mayoría de los usuarios, no necesita ser recompilado. Esta
sección es proporcionada como una guía para aquellos usuarios que deseen
recompilar su kernel y aprender un poco más sobre ello, para usuarios que quieren
compilar una característica experimental en el kernel, etc.

Preparación para la construcción

Antes de construir un kernel personalizado, es extremadamente importante


asegurarse de que tiene un disquete de arranque de emergencia en caso de que
se cometa un error. Después de preparar el disquete, prúebelo para asegurarse de
que funciona correctamente.

En versiones anteriores de CentOS Linux, para recompilar el kernel, debía tener


instalado el paquete kernel-source.

Actualmente, para evitar la redundancia de paquetes, CentOS/CentOS ya no


incluyen el paquete kernel-source proporcionado por versiones anteriores. Los
usuarios que requieren acceso al kernel de CentOS original pueden encontrarlos
en el paquete kernel-<version>.[Link].

Consulte siempre las Notas de la Versión (Release Notes) para información


exacta de como obtener y construir el árbol del kernel.

Para crear el árbol del kernel fuente ejecute los siguientes pasos:

1. Obtenga el archivo kernel-<version>.[Link] de una de las


siguientes fuentes:

● El directorio SRPMS de la imagen de CD iso SRPMS.

● A través de FTP, descargando del sitio de CentOS o [Link].

● A través del comando:


# yum install yum-utils
# yumdownloader --source kernel

133 Ing. Iván Ferreira


Reconfiguración del kernel

2. Instale el paquete kernel-<version>.[Link] usando el siguiente


comando:
# rpm -Uvh kernel-<version>.[Link]

3. Prepare la fuente del kernel usando los siguientes comandos:


# cd /usr/src/redhat/SPECS
# rpmbuild -bp --target $(uname -m) [Link]

4. El árbol del las fuentes del kernel serán ubicadas en el directorio


/usr/src/redhat/BUILD/kernel-<version>. Es buena idea mover el
directorio linux-<version> resultante al directorio /usr/src:

# cd /usr/src/redhat/BUILD/kernel-<version>
# mv linux-<version> /usr/src/
# cd /usr/src
# ln -s ./linux-<version> linux
# cd /usr/src/linux

Construcción del Kernel

Las instrucciones de esta sección se aplican a construir un kernel modular.

Para construir un kernel para la arquitectura x86 (realice todos los pasos como
root):

Abra un intérprete de comandos y cámbiese al directorio /usr/src/linux/.


Todos los comandos desde este punto en adelante deben ser ejecutados desde
este directorio.
# cd /usr/src/linux

Es importante que empiece la construcción del kernel con el árbol de las fuentes en
perfectas condiciones. Esto es, es recomendable que comience con el comando
make mrproper. Esto borrará cualquier fichero de configuración remanente de
configuraciones previas que pueda estar disperso por el árbol de las fuentes. Si ya
tiene un fichero de configuración funcional /usr/src/linux/.config, haga una
copia de respaldo en un directorio diferente antes de ejecutar este comando.
# cp .config [Link]
# make mrproper

Se recomienda que use la configuración del kernel de CentOS Linux por defecto
como punto de partida. Para hacer esto, copie el archivo de configuración para la
arquitectura del sistema desde el directorio /usr/src/linux/configs/ a
/usr/src/linux/.config. También puede copiar la configuración actual
existente en el directorio /boot. Si el sistema tiene más de cuatro gigabytes de
memoria, copie el archivo que contiene la palabra clave smp, si tiene mas de 16 GB

Red Hat Certified Engineer 134


Reconfiguración del kernel

de memoria, utilice hugemem. Puede además generar un archivo .config


ejecutando el comando:
# make oldconfig

Luego, personalice el kernel.

Los otros métodos disponibles para la configuración del kernel incluyen:

● make config Un programa de texto interactivo. Los componentes le son


presentados de forma lineal y los va respondiendo uno a uno. Este método
no requiere el Sistema X Window y no le permite cambiar sus respuestas a
preguntas previas.

● make menuconfig Un programa de modo de texto, basado en menú. Los


componentes le son presentados en un menú categorizado; seleccione los
componentes deseados de la misma manera usada en el programa de
instalación en modo texto de CentOS Linux. Cambie la etiqueta
correspondiente al punto que quiera incluir: [*] (incorporado), [ ] (excluido),
<M> (modularizado), o < > (posibilidad de modularizar). Este método no
requiere el Sistema X Window.

● make oldconfig Este es un script no interactivo que configurará su fichero


de configuración con los valores predeterminados. Si está usando el kernel
predeterminado de CentOS, creará un fichero de configuración para el
kernel que manejará CentOS Linux en su arquitectura. Esto es útil para
configurar su kernel con una configuración predeterminada que funciona, y
entonces poder desactivar las características que no quiera usar.

Al iniciar la herramienta de configuración se mostrarán las distintas categorías.


Dentro de cada categoría hay componentes. Seleccione y (yes), m (module), o n
(no) al lado del componente para compilarlo en el kernel, compilarlo como un
módulo kernel o no compilarlo. Para obtener más detalles de un componente,
utilice el botón help.

Solo para el kernel 2.4

Después de crear el archivo /usr/src/linux/.config, use el comando make


dep para configurar las dependencias correctamente.
# make dep

Use el comando make clean para preparar el árbol fuente para construir.

# make clean

Se le recomienda que aporte un número de versión modificada al kernel

135 Ing. Iván Ferreira


Reconfiguración del kernel

personalizado de manera que no sobreescriba el kernel ya existente. El método


descrito aquí es el más sencillo para recuperar el sistema en caso de problemas. Si
está interesado en otras posibilidades, puede encontrar más detalles en el Kernel-
HOWTO o en el Makefile en /usr/src/linux.

Por defecto, /usr/src/linux/Makefile incluye la palabra custom al final de la


línea que empieza por EXTRAVERSION. Añadir a la cadena le permitirá tener
contemporáneamente en su sistema el kernel antiguo en funcionamiento y el kernel
nuevo.

Si el sistema contiene más de un kernel personalizado, un buen método es anexar


la fecha al final (u otro identificador).

Compile el kernel con make bzImage. Este comando creará el archivo kernel
arch/i386/boot/bzImage.

# make bzImage

Compile cualquier módulo que haya configurado con make modules.


# make modules

Use el comando make modules_install para instalar los módulos del kernel
(aún si no se compiló ninguno). Observe el guión (_) en el comando. Esto instala
los módulos kernel en la ruta del directorio
/lib/modules/<KERNELVERSION>/kernel/drivers (donde
KERNELVERSION es la versión especificada en el Makefile).

# make modules_install

Use make install para copiar su nuevo kernel y sus ficheros asociados a los
directorios apropiados. Este comando además generará la imagen initrd necesaria
para el kernel compilado y agregará una entrada en el archivo de configuración del
cargador de arranque para iniciar el kernel.
# make install

Si posee un adaptador SCSI y ha compilado el driver SCSI driver como un módulo


o si ha construido un kernel con el soporte ext3 como un módulo (predeterminado
en CentOS Linux), se necesitará la imagen initrd.

Aunque la imagen initrd y las modificaciones del gestor de arranque han sido
creadas, debería verificar que ha sido realizado correctamente y también
asegurarse de usar la versión del kernel personalizado.

Construcción de un kernel monolítico

Red Hat Certified Engineer 136


Reconfiguración del kernel

Para construir un kernel monolítico, sigua los mismos pasos que al compilar un
kernel modulari, con unas pocas excepciones.

Cuando configure el kernel, no compile nada como módulo. En otras palabras, sólo
responda Yes o No a las preguntas. También, debería responder No a kmod
support (CONFIG_KMOD) y module version (CONFIG_MODVERSIONS) support.

Omita la creación de los módulos, es decir, no debe ejecutar los siguiente pasos:
# make modules
# make modules_install

Añada la línea kernel en [Link] la opción nomodules.

Resumen de pasos necesarios para construir un kernel personalizado

El siguiente es un resumen del procedimiento de construcción de un kernel


presentado anteriormente. No encontrará descripción de lo que hace cada
comando, pero podrá visualizar rápidamente los pasos necesarios para crear un
kernel.

# cd /usr/src/linux
# vi Makefile (1)
# cp .config [Link]
# make mrproper
# cp /boot/config-version .config
# make menuconfig (2)
# make dep (3)
# make clean
# make bzImage
# make modules
# make modules_install
# make install

(1) Edite el makefile y cambie la variable EXTRAVERSION.

(2) Puede utilizar make config, make menuconfig o make xconfig.

(3) Solo necesario para la compilación de un kernel version 2.4

137 Ing. Iván Ferreira


9

El sistema X Window
El sistema X Window

El sistema X Window

Mientras que el corazón de CentOS Enterprise Linux es el kernel, para muchos


usuarios, la cara del sistema operativo es el entorno gráfico proporcionando por el
Sistema X Window, también llamado simplemente X.

En el mundo UNIX, los entornos de ventanas han existido desde hace décadas,
siendo éstos precursores de muchos de los utilizados en los sistemas operativos
actuales. A través de los años X se ha convertido en el entorno gráfico (GUI)
predominante para sistemas operativos del tipo UNIX.

El entorno gráfico para CentOS Enterprise Linux es suministrado por la Fundación


[Link], una implementación de código abierto creada para manejar el desarrollo y la
estrategia para el sistema X y sus tecnologías asociadas. [Link] es un proyecto de
gran escala que se apoya en un gran número de desarrolladores en todo el mundo.

Presenta una amplia gama de soporte para diferentes dispositivos de hardware y


arquitecturas, así como la posibilidad de ejecutarse en diferentes sistemas
operativos y plataformas. La versión actual de CentOS Enterprise Linux incluye
específicamente el lanzamiento X11R7.1 del sistema X Window.

El sistema X Window utiliza una arquitectura cliente-servidor. El servidor de X (el


binario Xorg) escucha por conexiones desde las aplicaciones cliente X a través de
la red o una interfaz local de loopback. El servidor gestiona la comunicación con el
hardware, que puede ser una tarjeta gráfica, un monitor, un teclado o un ratón. Las
aplicaciones cliente de X existen en el espacio del usuario, creando una interfaz
gráfica del usuario (GUI) y pasando peticiones al servidor de X.

El lanzamiento X11R7.1

CentOS Enterprise Linux 5 utiliza el lanzamiento X11R7.1 del sistema de ventanas


X. Este lanzamiento incluye varios controladores de vídeo, EXA, soporte mejorado
de plataformas en comparación con versiones anteriores y otras características.
Además, este lanzamiento incluye varias funciones de configuración automática
para el servidor X.

En el lanzamiento X11R7.1, todas las bibliotecas, archivos de cabecera, y archivos


binarios se encuentran en /usr/ y no en /usr/X11R6. El directorio /etc/X11/
contiene archivos de configuración para los clientes X y las aplicaciones del
servidor. Entre estos archivos se encuentran los archivos de configuración del
servidor mismo, del servidor de fuentes xfs, de los administradores de visualización
X y de otros componentes base.

El archivo de configuración para la nueva arquitectura de fuentes basado en


Fontconfig es /etc/fonts/[Link].

139 Ing. Iván Ferreira


El sistema X Window

Ya que el servidor X ejecuta tareas avanzadas sobre una amplia variedad de


hardware, éste requiere información detallada sobre el hardware sobre el cual
trabaja. El servidor X detecta automáticamente gran parte de esta información. Sin
embargo, algunos detalles deben ser configurados.

El programa de instalación instala y configura X automáticamente, a menos que los


paquetes del lanzamiento X11R7.1 no sean seleccionados para la instalación. Sin
embargo, si la tarjeta de vídeo o el monitor cambian, X debe ser reconfigurado. La
manera más apropiada de reconfigurar el servidor es a través de system-
config-display, particularmente para dispositivos que no se detectan
automáticamente.

En algunas circunstancias, la reconfiguración del servidor X puede requerir la


edición manual del archivo de configuración, /etc/X11/[Link].

Entornos de escritorio

Un entorno de escritorio une diferentes clientes de X, los cuales cuando se usan


juntos crean un ambiente de usuario gráfico común y una plataforma de desarrollo.

Los entornos de escritorio tienen características avanzadas las cuales permiten a


los clientes X y a otros procesos comunicarse unos con otros y permitir a todas las
aplicaciones escritas para funcionar en ese ambiente a que realicen tareas
avanzadas, tales como operaciones de arrastrar y soltar.

CentOS Linux proporciona dos entornos de escritorio:

● GNOME Es el entorno de escritorio por defecto en CentOS Linux basado en


el conjunto de herramientas gráficas GTK+ 2.

● KDE Un entorno de escritorio alternativo basado en el conjunto de


herramientas gráficas Qt 3.

Ambos entornos GNOME y KDE tienen aplicaciones de productividad avanzadas,


tales como procesadores de palabras, hojas de cálculo y navegadores Web así
como herramientas para personalizar la apariencia de la GUI. Adicionalmente, si
ambas librerías están presentes, la GTK+ 2 y la Qt, las aplicaciones KDE pueden
ejecutarse en GNOME y viceversa.

Puede utilizar el comando switchdesk para cambiar el entorno de escritorio


utilizado.

La sintaxis del comando es:


switchdesk < KDE | GNOME | XFCE | FVWM | WindowMaker >

Red Hat Certified Engineer 140


El sistema X Window

Gestores de ventanas

Los gestores de ventanas son programas clientes de X que son o parte del entorno
de escritorio o, en otros casos, standalone. Su propósito principal es controlar la
forma en que las ventanas gráficas son posicionadas, redimensionadas o movidas.
Los manejadores de ventanas controlan las barras de títulos, el comportamiento del
foco, los vínculos del botón del ratón y teclas especificadas por el usuario.

Se incluyen cuatro gestores de ventanas con CentOS Linux:

● kwin El gestor de ventanas KWin es el manejador por defecto para el


entorno KDE. Es un manejador de ventanas que soporta temas
personalizados.

● metacity El gestor de ventanas Metacity es el manejador por defecto del


entorno GNOME. Es un manejador de ventanas simple y eficiente que
también soporta temas personalizados.

● mwm El gestor de ventanas Motif, es un gestor básico tipo standalone.


Puesto que está diseñado para ser un gestor standalone, no se debería
utilizar en conjunto con los entornos de escritorios GNOME o KDE.

● twm El minimalista Administrador de pestañas de ventanas, el cual


proporciona el conjunto de herramientas más básicas de cualquier gestor de
ventanas y puede ser usado bien sea standalone o con un entorno de
escritorio. Es instalado como parte del lanzamiento X11R7.1.

Estos gestores de ventanas pueden ejecutarse sin los entornos de escritorio para
poder obtener una impresión de sus diferencias. Teclee el comando:
xinit -e <ruta-al-gestor-de-ventanas>

Donde <ruta-al-gestor-de-ventanas> es la ubicación del archivo binario de


gestor de ventanas. El archivo binario puede ser encontrado escribiendo which
<nombre-de-gestor-de-ventanas>. Por ejemplo:

# which twm/usr/bin/twm
# xinit -e /usr/bin/twm

El primer comando retorna la ruta absoluta del gestor de ventanas twm, el segundo
comando inicia twm.

Para salir de un gestor de ventanas, cierra la última ventana o presione Ctrl-Alt-


Backspace. Una vez haya salido del gestor de ventanas, puede regresar al nivel de
ejecución 5 escribiendo startx en el intérprete de comandos.

141 Ing. Iván Ferreira


El sistema X Window

Archivos de configuración del servidor X

El servidor X es un binario ejecutable (/usr/bin/Xorg). Los archivos de


configuración asociados se almacenan en el directorio /etc/X11/ (es un enlace
simbólico — X — que apunta a /usr/bin/Xorg). El archivo de configuración para
el servidor X es /etc/X11/[Link].

El directorio /usr/lib/xorg/modules/ contiene los módulos del servidor X que


pueden ser cargados dinámicamente en tiempo de ejecución. Por defecto, el
servidor X sólo carga algunos de los módulos en /usr/lib/xorg/modules/.

Para cargar módulos opcionales, éstos deben ser especificados en el archivo de


configuración del servidor X, /etc/X11/[Link].

Cuando se instala CentOS Enterprise Linux, los archivos de configuración para X


son creados con la información sobre el hardware del sistema reunida durante el
proceso de instalación.

El archivo [Link]

Mientras que casi nunca se necesita editar manualmente el


/etc/X11/[Link], es muy útil conocer sobre las varias secciones y los
parámetros opcionales disponibles, especialmente cuando se estén solucionando
problemas.

La estructura de Xorg

El archivo /etc/X11/[Link] está formado de muchas secciones diferentes


las cuales hacen referencia a aspectos específicos del hardware del sistema.

Cada sección comienza con una línea Section "<nombre-seccion>" (donde


<nombre-seccion> es el título para la sección) y termina con una línea
EndSection. Dentro de cada sección, hay líneas conteniendo nombres de
opciones y al menos un valor de opción, ocasionalmente visto en comillas.

Las líneas que comienzan con un símbolo de numeral o almohadilla [#] no son
leídas por el servidor y son usadas como comentarios.

Algunas opciones dentro del archivo de configuración aceptan un switch boleano el


cual activa o desactiva la característica. Los valores boleanos son:

● 1, on, true, yes - Activa la opción.

● 0, off, false, no - Desactiva la opción.

Red Hat Certified Engineer 142


El sistema X Window

Lo siguiente son algunas de las secciones más importantes ordenadas como


aparecen en un archivo de configuración típico.

Sección ServerFlags

La sección opcional ServerFlags contiene varios parámetros globales del


servidor. Cualquier parámetro en esta sección puede ser sobreescrito por opciones
colocadas en la sección ServerLayout

Las entradas dentro de la sección ServerFlags están en sus propias líneas y


comienzan con el término Option seguido por una opción encerrada en dobles
comillas ["].

A continuación un ejemplo de la sección ServerFlags:

Section "ServerFlags"
Option "DontZap" "true"
EndSection

La siguiente es una lista de algunas de las opciones más útiles:

● "DontZap" "<booleano>" - Cuando el valor de <booleano> está


configurado a verdadero, esta configuración previene el uso de la
combinación de teclas [Ctrl]-[Alt]-[Retroceso] para terminar inmediatamente
el servidor X.

● "DontZoom" "<booleano>" - Cuando el valor de <booleano> está


colocado a verdadero, esta configuración previene moverse a lo largo de las
resoluciones de vídeo configuradas usando las combinaciones de teclas
[Ctrl]-[Alt]-[Keypad-Mas] y [Ctrl]-[Alt]-[Keypad-Menos]

Sección ServerLayout

La sección ServerLayout vincula los dispositivos de entrada y salida controlados


por el servidor X. Como mínimo, esta sección debe especificar un dispositivo de
salida y al menos dos dispositivos de entrada (un teclado y un ratón).

El ejemplo siguiente ilustra una sección ServerLayout típica:

Section "ServerLayout"
Identifier "Default Layout"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection

Las entradas siguientes son usadas a menudo en la sección ServerLayout:

143 Ing. Iván Ferreira


El sistema X Window

● Identifier - Especifica un nombre único para esta sección ServerLayout.

● Screen - Especifica el nombre de la sección Screen a ser usado con el


servidor X. Pueden estar presentes más de una opción Screen.

Lo siguiente es un ejemplo de una entrada Screen típica:

Screen 0 "Screen0" 0 0

El primer número en esta entrada de ejemplo Screen (0) indica que el


primer conector del monitor o head en la tarjeta de vídeo usa la
configuración especificada en la sección Screen con el identificador
"Screen0".

Si la tarjeta de vídeo tiene más de una cabeza, será necesaria otra entrada
Screen con un número diferente y un identificador de sección Screen.

Los números a la derecha de "Screen0" proporcionan las coordenadas


absolutas X y Y para la esquina superior izquierda de la pantalla (0 0 por
defecto).

● InputDevice - Especifica el nombre de una sección InputDevice a ser


usada con el servidor X.

Al menos deben haber dos entradas InputDevice: una para el ratón por
defecto y una para el teclado por defecto. Las opciones CorePointer y
CoreKeyboard indican que estos son el ratón y teclado principales.

● Option "<nombre-opcion>" - Una entrada opcional que especifica


parámetros extra para esta sección. Cualquier sección listada aquí
sobreescriben aquellas listadas en la sección ServerFlags.

Reemplace <nombre-opcion> con una opción válida listada para esta


sección en la página man X.

Es posible crear más de una sección ServerLayout. Sin embargo, el servidor


sólo leerá la primera sección que aparezca a menos que se especifique una
sección ServerLayout alternativa como argumento en la línea de comandos
cuando inicie la sesión X.

Sección Files

La sección Files configura la ruta para servicios vitales al servidor X, tal como la
ruta de la fuente. Esta sección es opcional, estas rutas son normalmente
detectadas de forma automática. Esta sección puede ser usada para sobreescribir

Red Hat Certified Engineer 144


El sistema X Window

las rutas detectadas automáticamente.

El siguiente ejemplo ilustra una sección Files:


Section "Files"
RgbPath "/usr/X11R6/lib/X11/rgb"
FontPath "unix/:7100"
EndSection

Las siguientes entradas son usadas comúnmente en la sección Files:

● RgbPath - Especifica la ubicación de la base de datos de colores RGB. Esta


base de datos define todos los esquemas de color en X y los junta para
valores RGB específicos.

● FontPath - Especifica dónde el servidor X debe ser conectado para obtener


las fuentes desde el servidor de fuentes xfs.

Por defecto, la FontPath es unix/:7100. Esto le dice al servidor X para


obtener información de fuentes usando sockets de dominio UNIX para la
comunicación entre procesos (IPC) en el puerto 7100.

● ModulePath - Un parámetro opcional el cual especifica directorios


alternativos el cual almacena módulos de servidor X.

Sección Module

La sección Module especifica cuales módulos del directorio


/usr/lib/xorg/modules/ cargará el servidor X. Los módulos añaden
funcionalidad adicional al servidor X.

Por defecto, el servidor X carga automáticamente los siguientes módulos desde el


directorio /usr/lib/xorg/modules/:

● extmod

● dbe

● glx

● freetype

● type1

● record

● dri

145 Ing. Iván Ferreira


El sistema X Window

El ejemplo siguiente ilustra una sección Module típica:


Section "Module"
Load "extmod"
Load "dbe"
Load "glx"
Load "freetype"
Load "type1"
Load "record"
Load "dri"
EndSection

El directorio predeterminado para cargar estos módulos puede modificarse a través


del parámetro opcional ModulePath en la sección Files.

Si se añade una sección Module a /etc/X11/[Link], el servidor X cargará


los módulos listados en esta sección en vez de los módulos predeterminados.

Sección InputDevice

Cada sección InputDevice configura un dispositivo de entrada para el servidor X.


Los sistemas típicamente tienen al menos dos secciones InputDevice, un
teclado y un ratón.

El ejemplo siguiente ilustra una sección InputDevice típica para un teclado:

Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "es"
EndSection

Las entradas siguientes son comúnmente usadas en la sección InputDevice:

● Identifier - Especifica un nombre único para esta sección InputDevice.


Esto es una entrada requerida.

● Driver - Especifica el nombre del controlador del dispositivo que X debe


cargar para el dispositivo.

● Option - Especifica las opciones necesarias pertinentes al dispositivo.

Para un ratón, estas opciones incluyen:

– Protocol - Indica el protocolo usado por el ratón, tal como IMPS/2.

– Device - Indica la ubicación del dispositivo físico.

– Emulate3Buttons - Especifica si se va a permitir a un ratón de dos

Red Hat Certified Engineer 146


El sistema X Window

botones a que se comporte como uno de tres cuando se presionen


ambos botones simultáneamente.

Consulte la página man [Link] para una lista de las opciones válidas
para esta sección.

Sección Monitor

Cada sección Monitor configura un tipo de monitor utilizado por el sistema. Esta
también es una entrada opcional, ya que la mayoría de monitores son detectados
automáticamente.

La forma más sencilla de configurar un monitor es durante el proceso de instalación


o usando system-config-display.

Este ejemplo muestra una sección de Monitor típica:


Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "DDC Probed Monitor - ViewSonic G773-2"
DisplaySize 320 240
HorizSync 30.0 - 70.0
VertRefresh 50.0 - 180.0
EndSection

Tenga cuidado cuando modifique manualmente valores en la sección Monitor de


los archivos de configuración. Valores inapropiados pueden dañar o destruir su
monitor. Consulte la documentación sobre monitores para un listado de parámetros
seguros.

A continuación se muestran entradas comunes usadas en la sección Monitor:

● Identifier - Proporciona un nombre único para esta sección Monitor.


Esta es una entrada requerida.

● VendorName - Parámetro opcional que muestra el nombre del fabricante del


monitor.

● ModelName - Parámetro opcional que muestra el nombre del modelo del


monitor.

● DisplaySize - Un parámetro opcional que especifica, en milímetros, el


tamaño físico del área de dibujo del monitor.

● HorizSync - Especifica el rango de la frecuencia de sincronización


horizontal compatible con el monitor en kHz. Estos valores ayudan al
servidor X a determinar la validez de las entradas Modeline especificadas

147 Ing. Iván Ferreira


El sistema X Window

para el monitor.

● VertRefresh - Lista de los rangos de frecuencias de refresco verticales


soportados por el monitor, en Hz. Estos valores se usan como referencia
para que el servidor X sepa cuando deberá utilizar cada una de las entradas
que aparecen en Modeline con este monitor.

● Modeline - Un parámetro opcional el cual especifica los modos de vídeo


adicionales para el monitor en resoluciones particulares, con ciertas
resoluciones de refrescamiento de sincronización horizontal y vertical. Vea la
página man de X para una explicación más detallada de las entradas
Modeline.

● Option "<nombre-opcion>" - Una entrada opcional la cual especifica


parámetros extra para la sección. Reemplace <nombre-opcion> con una
opción válida listada para esta sección en la página man de [Link].

Sección Device

Cada sección Device configura una tarjeta de vídeo en el sistema. Mientras una
sección Device es lo mínimo, instancias adicionales pueden ocurrir para cada
tarjeta de vídeo instalada en la máquina.

El siguiente ejemplo ilustra una sección Device típica para una tarjeta de vídeo:

Section "Device"
Identifier "Videocard0"
Driver "mga"
VendorName "Videocard vendor"
BoardName "Matrox Millennium G200"
VideoRam 8192
Option "dpms"
EndSection

Las siguientes entradas son usadas comúnmente en la sección Device:

● Identifier - Especifica un nombre único para esta sección Device. Esta


es una entrada requerida.

● Driver - Especifica cuál controlador debe cargar el servidor X para poder


utilizar la tarjeta de vídeo. Se puede encontrar una lista de los controladores
en /usr/X11R6/lib/X11/Cards, el cual es instalado con el paquete
hwdata.

● VendorName - Un parámetro opcional el cual especifica el fabricante de la


tarjeta de vídeo.

● BoardName - Un parámetro opcional el cual especifica el nombre de la

Red Hat Certified Engineer 148


El sistema X Window

tarjeta de vídeo.

● VideoRam - Un parámetro opcional el cual especifica la cantidad de RAM


disponible en la tarjeta de vídeo en kilobytes. Este valor sólo es necesario
para tarjetas de vídeo que el servidor X no puede probar para detectar la
cantidad de RAM.

● BusID - Una entrada opcional la cual especifica la ubicación del bus de la


tarjeta de vídeo. Esta opción es necesaria solamente para sistemas con
múltiples tarjetas.

● Screen - Una entrada opcional la cual especifica que conector de monitor o


cabezal en la tarjeta de vídeo configura la sección Device. Esta opción es
útil solamente para tarjetas de vídeo con múltiples cabezales.

Si múltiples monitores son conectados a diferentes cabezales en la misma


tarjeta de vídeo, deben existir secciones Device separadas y cada una de
estas secciones debe tener un valor Screen diferente.

Los valores para la entrada Screen deben ser enteros. El primer cabezal en
la tarjeta de vídeo tiene un valor de 0. El valor para cada cabezal adicional
incrementa este valor en uno.

● Option "<nombre-opcion>" - Una entrada opcional la cual especifica


parámetros extra para la sección. Reemplace <nombre-opcion> con una
opción válida listada para esta sección en la página man de X.

Una de las opciones más comunes es "dpms", la cual activa la conformidad


de energía Service Star para el monitor.

Sección Screen

Cada sección Screen vincula una tarjeta de vídeo (o cabezal) a un monitor


referenciando la sección Device y la sección Monitor para cada uno. Mientras
que una sección Screen es lo mínimo, pueden ocurrir instancias adicionales para
cada combinación de tarjeta de vídeo y monitor presente en la máquina.

El ejemplo siguiente ilustra una sección Screen típica:

Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 16
SubSection "Display"
Depth 24
Modes "1280x960" "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
SubSection "Display"

149 Ing. Iván Ferreira


El sistema X Window

Depth 16
Modes "1152x864" "1024x768" "800x600" "640x480"
EndSubSection
EndSection

Las siguientes entradas son usadas a menudo en la sección Screen:

● Identifier - Especifica un nombre único para esta sección Screen. Esta


es una entrada requerida.

● Device - Especifica el nombre único de una sección Device. Esta es una


entrada requerida.

● Monitor - Especifica el nombre único de una sección Monitor. Esta es


una entrada requerida.

● DefaultDepth - Especifica la profundidad del color por defecto en bits. En


el ejemplo anterior, el valor por defecto es 16, lo que proporciona miles de
colores. Múltiples entradas de DefaultDepth son permitidas, pero al
menos una debe estar presente.

● SubSection "Display" - Especifica los modos de la pantalla disponibles


en una profundidad de color particular. Una sección Screen puede tener
múltiples subsecciones Display, pero debe haber al menos una para la
profundidad de color especificada en la entrada DefaultDepth.

● Option "<option-name>" - Una entrada opcional que especifica


parámetros extra para la sección. Reemplace <option-name> con una
opción válida listada para esta sección en la página man.

DRI

La sección opcional DRI especifica parámetros para Direct Rendering


Infrastructure (DRI). DRI es una interfaz que permite a las aplicaciones de
software 3D sacar provecho de las capacidades de aceleración de hardware 3D
incorporadas en la mayoría del hardware moderno de vídeo. Además, DRI puede
mejorar el rendimiento de 2D a través de la aceleración de hardware, si es
soportado por el controlador de la tarjeta.

Esta sección es ignorada a menos que DRI esté activada en la sección Module.

El ejemplo siguiente muestra una sección DRI típica:


Section "DRI"
Group 0
Mode 0666
EndSection

Red Hat Certified Engineer 150


El sistema X Window

Puesto que tarjetas de vídeo diferentes utilizan DRI de formas diferentes, no


modifique estos valores para esta sección sin primero referirse a
[Link]

Fuentes

CentOS Linux utiliza dos métodos para manejar fuentes y mostrarlas bajo X. El
subsistema de fuentes más nuevo Fontconfig simplifica la gestión de fuentes y
proporciona características avanzadas, tales como anti-aliasing. Este sistema es
usado automáticamente para aplicaciones programadas usando el conjunto de
herramientas Qt 3 o GTK+ 2.

Por compatibilidad, CentOS Linux incluye el subsistema de fuentes original,


llamado el subsistema de fuentes nucleo de X. Este sistema, el cual tiene más de
15 años, está basado en el Servidor de fuentes de X (xfs).

Esta sección discute cómo configurar fuentes para X usando ambos sistemas.

Fontconfig

El subsistema de fuentes Fontconfig permite a las aplicaciones accesar


directamente fuentes en el sistema y usar Xft u otros mecanismos de traducción de
fuentes para interpretar fuentes Fontconfig con anti-aliasing avanzados. Las
aplicaciones gráficas pueden usar la librería Xft con Fontconfig para dibujar texto a
la pantalla.

Con el tiempo, el subsistema de fuentes Fontconfig/Xft reemplazará el subsistema


de fuentes base de X.

Es importante resaltar que Fontconfig comparte el archivo de configuración


/etc/fonts/[Link], el cual sustituye al /etc/X11/XftConfig. El
archivo de configuración Fontconfig no debería se modificado manualmente.

Añadir fuentes a Fontconfig

Añadir fuentes al subsistema Fontconfig es un proceso bastante directo.

Para añadir fuentes para todo el sistema, copie las nuevas fuentes en el directorio
/usr/share/fonts/local/.

Para añadir fuentes para un usuario individual, copie las nuevas fuentes en el
directorio .fonts/ en el directorio principal del usuario.

151 Ing. Iván Ferreira


El sistema X Window

Utilice el comando fc-cache para actualizar la información caché de la fuente,


como en el ejemplo siguiente:
fc-cache <path-to-font-directory>

En este comando, sustituya <path-to-font-directory> con el directorio


conteniendo las nuevas fuentes (bien sea /usr/share/fonts/local/ o
~/.fonts/).

Añadir fuentes TrueType

Mientras Linux viene con una selección de fuentes ya instalada, existe una
selección mucho mayor de fuentes TrueType disponibles en la web e incluído con
productos que cualquier otro tipo de fuente.

Inicialmente cree un directorio para almacenar las fuentes TrueType:


# mkdir /usr/X11R6/lib/X11/fonts/TTF

Copie las fuentes a ese directorio y ejecute los siguientes comandos:


# cd /usr/X11R6/lib/X11/fonts/TTF
# ttmkfdir > [Link]
# mkfontdir

Si verifica el contenido del directorio debería encontrar dos archivos además de los
archivos de fuente, “[Link]” y “[Link]”. Estos archivos simplemente
contienen una lista de los nombres de las fuentes para cada fuente TrueType.

Finalmente debe agregar el nuevo directorio a la lista de ubicaciones en la cual


Xwindows buscará las fuentes:
chkfontpath -a /usr/X11R6/lib/X11/fonts/TTF

Para agregar nuevas fuentes repita el mismo procedimiento, sin embargo el


comando chkfontpath se ejecuta una sola vez, solamente cada vez que se
desea agregar un directorio.

Sistema de fuentes base de X

Por compatibilidad, CentOS Linux todavía proporciona el subsistema de fuentes


base de X, el cual utiliza el servidor de fuentes X (xfs) para proporcionar fuentes a
las aplicaciones clientes X.

El servidor X busca por un servidor de fuentes especificado en la entrada


FontPath bajo la sección Files del archivo de configuración.

Red Hat Certified Engineer 152


El sistema X Window

Configuración de xfs

El script /etc/rc.d/init.d/xfs inicia el servidor xfs. Se pueden configurar


muchas opciones en el archivo /etc/X11/fs/config.

La siguiente es una lista de las opciones más usadas:

● alternate-servers - Configura una lista de servidores alternativos de


fuentes que podrán ser utilizados en el caso de que el servidor actual no
esté disponible. Los diferentes servidores deberán estar separados por
comas.

● catalogue - Lista ordenada de rutas que contienen las fuentes a utilizar.


Cada ruta hacia las fuentes deberá estar separada por una coma antes de
que comience otra nueva ruta en la lista.

Puede utilizar la cadena :unscaled inmediatamente después de la ruta


hacia las fuentes para hacer que las fuentes no escalables se carguen antes
que el resto de las fuentes de la ruta. Entonces, podrá especificar la ruta
completa de nuevo de tal forma que las otras fuentes que sean escalables
puedan ser cargadas.

● client-limit - Configura el número de clientes que el servidor de


fuentes podrá servir antes de comenzar a denegar las conexiones. El
número por defecto es 10.

● clone-self Permite al servidor de fuentes clonar una nueva versión de sí


mismo si se llega al límite definido por el parámetro client-limit. Por
defecto, esta opción está configurada como on.

● default-point-size - Configura el tamaño de punto por defecto para


cualquier fuente que no especifique este valor. El valor de esta opción está
estimado en décimas de puntos. El valor por defecto de 120 se corresponde
a fuentes de 12 puntos.

● default-resolutions - Especifica una lista de resoluciones soportadas


por el servidor X. Cada resolución de la lista debe estar separada por una
coma.

● deferglyphs - Especifica si retrasar la carga de glyphs (el gráfico usado


para visualmente representar una fuente). Para desactivar esta
característica utilice none, para activarla para todas las fuentes utilice all, o
para activar esta característica solamente para fuentes de 16-bit use 16.

● error-file - Le permite especificar la ruta y el nombre de archivo donde

153 Ing. Iván Ferreira


El sistema X Window

se almacenarán los informes de error de xfs.

● no-listen - Dice a xfs que no escuche utilizando un protocolo en


particular. Por defecto, esta opción está configurada con tcp para evitar que
xfs escuche utilizando puertos TCP, por motivos de seguridad. Si planea
utilizarxfs para servir fuentes a estaciones de trabajo en red, deberá borrar
esta línea.

● port - Especifica el puerto TCP en el cual xfs escuchará si no-listen no


existe o está entre comentarios.

● use-syslog - Especifica si utilizar el registro de errores del sistema.

Añadir fuentes a xfs

Para añadir fuentes al subsistema base de fuentes de X (xfs), siga los pasos
siguientes:

Si aún no existe, cree un directorio llamado /usr/share/fonts/local/ usando


el comando siguiente como usuario root:
# mkdir /usr/share/fonts/local/

Si es necesario la creación del directorio /usr/share/fonts/local/, se debe


añadir a la ruta xfs usando el comando siguiente como root:
# chkfontpath --add /usr/share/fonts/local/

Copie el nuevo archivo de fuente en el directorio /usr/share/fonts/local/

Actualice la información de la fuente emitiendo el siguiente comando como root:


# ttmkfdir -d /usr/share/fonts/local/ -o /usr/share/fonts/local/[Link]

Reinicie el servidor de fuentes xfs utilizando el comando siguiente como root:


# service xfs reload

Fuentes Liberation

En Mayo de 2007, CentOS anunció la liberación pública de estas fuentes bajo la


marca registrada LIBERATION, para sustituir las privativas que vienen con los
sistemas de Microsoft y que este no licencia a terceros, algo que facilitaría la
compatibilidad y haría más sencillo a los usuarios cambiar de procesador de textos,
por ejemplo.

Red Hat Certified Engineer 154


El sistema X Window

Básicamente se trata de igualar las características principales de es espaciado


horizontal y ancho para que al usar otro paquete de fuentes, el texto no se
modifique ni cambie su posición.

Existen tres conjuntos: Sans (un substituto para Arial, Albany, Helvetica, Numbus
Sans L y Bitstream Vera Sans), Serif (un sustituto para Times New Roman,
Thornade, Nimbus Roman, y Bitstream Vera Serif) y Mono (un substituto para
Courier New, Cumberland, Courier, Nimbus Mono L, y Bitstream Vera Sans Mono).

Están disponibles para su descarga como paquetes .RPM para CentOS Linux y
como un archivo comprimido .[Link] para instalarlas mediante los ficheros .TTF.

Niveles de ejecución y X

En la mayoría de los casos, la instalación por defecto de CentOS Linux configura


una máquina para arrancar en un entorno de conexión gráfico, conocido como nivel
de ejecución 5. Es posible, sin embargo, arrancar en el modo multiusuario de sólo
texto llamado nivel de ejecución 3 y comenzar una sesión X desde allí.

Nivel de ejecución 3

Cuando estamos en el nivel de ejecución 3, la forma habitual de iniciar una sesión


X es escribiendo el comando startx. El comando startx es un front-end del
programa xinit el cual lanza el servidor X y conecta los clientes X al mismo. Ya
que usted debe de haber entrado en el sistema con su usuario cuando realice este
procedimiento a partir del nivel de ejecución 3, startx no lanzará un gestor de
visualización o autenticará al usuario.

Cuando startx comienza, busca un archivo .xinitrc en el directorio principal


del usuario para definir el entorno de escritorio y posiblemente otras aplicaciones
clientes X a ejecutar. Si este archivo .xinitrc no se encuentra, se utilizará el
archivo por defecto /etc/X11/xinit/xinitrc.

El script por defecto xinitrc luego buscará por los archivos definidos por el
usuario y archivos de sistema por defecto, incluyendo .Xresources, .Xmodmap y
.Xkbmap en el directorio principal del usuario y Xresources, Xmodmap y Xkbmap
en el directorio /etc/X11/. Los archivos Xmodmap y Xkbmap, si existen, son
usados por la utilidad xmodmap para configurar el teclado. Los archivos
Xresources son leídos para asignar valores de preferencia específicos a
aplicaciones.

Después de configurar estas opciones, el script xinitrc ejecuta todos los scripts
localizados en el directorio /etc/X11/xinit/xinitrc.d/. Un script muy
importante en este directorio es xinput, el cual configura los parámetros tales

155 Ing. Iván Ferreira


El sistema X Window

como el idioma por defecto.

Luego, el script xinitrc intenta ejecutar .Xclients en el directorio principal del


usuario y cambia a /etc/X11/xinit/Xclients si no lo puede encontrar. El
propósito del archivo Xclients es arrancar el entorno de escritorio o
posiblemente, sólo un gestor de ventanas básico. El script .Xclients en el
directorio principal del usuario inicia el entorno de escritorio especificado por el
usuario en el archivo .Xclients-default. Si .Xclients no existe en el
directorio principal del usuario, el script estándar /etc/X11/init/Xclients
intenta iniciar otro entorno de escritorio, intentando primero con GNOME y luego
con KDE seguido por twm.

El usuario es devuelto a una sesión de modo texto después de desconectarse de X


del nivel de ejecución 3.

Nivel de ejecución 5

Cuando el sistema arranca en el nivel de ejecución 5, se lanza una aplicación


cliente de X especial, llamada un gestor de visualización. Un usuario debe
autenticarse usando el gestor de visualización antes de que se inicien cualquier
entorno de escritorio o gestores de ventanas.

Dependiendo de los entornos de escritorio instalados en su máquina, estan


disponibles tres gestores de visualización diferentes para manejar la autenticación
de los usuarios.

● gdm - Es el gestor de visualización por defecto para CentOS Linux y permite


que los usuarios puedan configurar los parámetros de idioma, cierre del
sistema, reinicio o conexión al sistema.

● kdm - es el gestor de visualización de KDE que permite a los usuarios


apagar, reiniciar o conectarse al sistema.

● xdm - Este es un gestor de visualización muy básico que sólo permite que el
usuario se conecte al sistema.

Cuando arranque en el nivel de ejecución 5, el script prefdm determina el gestor


de visualización preferido haciendo referencia al archivo
/etc/sysconfig/desktop. Refiérase al archivo
/usr/share/doc/initscripts-<version-number>/[Link]
(donde <version-number> es el número de la versión del paquete initscripts)
para ver un listado de las opciones disponibles para este archivo.

Cada uno de los gestores de visualización hace referencia al archivo


/etc/X11/xdm/Xsetup_0 para configurar la pantalla de conexión. Una vez que
el usuario se conecte al sistema, el script /etc/X11/xdm/GiveConsole corre

Red Hat Certified Engineer 156


El sistema X Window

para asignar la propiedad de la consola para el usuario. Luego, el script


/etc/X11/xdm/Xsession se ejecuta para llevar a cabo muchas de las tareas
que son normalmente realizadas por el script xinitrc cuando arranca X desde el
nivel de ejecución 3, incluyendo la configuración del sistema y los recursos del
usuario, así como también ejecutar los scripts en el directorio
/etc/X11/xinit/xinitrc.d/.

El usuario puede especificar cuál entorno de escritorio desea utilizar cuando se


autentican usando los gestores de visualización gdm o kdm seleccionándolo desde
el menú Session (accesado al seleccionar Botón de menú principal [en el Panel] =>
Preferencias => Más Preferencias => Sesiones). Si el entorno de escritorio no es
especificado en el gestor de visualización, el script /etc/X11/xdm/Xsession
verificará los archivos .xsession y .Xclients en el directorio principal del usuario
para decidir cuál entorno de escritorio cargar. Como último recurso el archivo
/etc/X11/xinit/Xclients es usado para seleccionar un entorno de escritorio
o gestor de ventanas para usarse de la misma forma que en el nivel de ejecución 3.

Cuando el usuario termina una sesión X en la visualización por defecto (:0) y se


desconecta, el script /etc/X11/xdm/TakeConsole se ejecuta y vuelve a asignar
la propiedad de la consola al usuario root. El gestor de visualización original, que
continúa ejecutándose después que el usuario se conecta, toma el control
liberando un nuevo gestor de visualización. Esto reinicia el servidor XFree86,
despliega una nueva ventana de conexión y reinicia el proceso completo otra vez.

El usuario es devuelto al gestor de visualización después de desconectarse de X


desde el nivel de ejecución 5.

Para más información sobre cómo los gestores de visualización controlan la


autenticación de los usuarios, consulte /usr/share/doc/gdm-<version-
number>/README (donde <version-number> es el número de la versión para el
paquete gdm instalado) y la página man de xdm.

Ejecutando aplicaciones remotas con X11

Cada aplicación gráfica en X Window lee al iniciarse la variable de entorno


DISPLAY para averiguar a qué pantalla debe enviar sus gráficos. Esto junto con la
capacidad de red del Sistema X Window hace posible ejecutar aplicaciones
gráficas remotamente. Es decir, se utiliza la capacidad de CPU de una máquina
mientras se utiliza la aplicación desde otra máquina distinta. Todo el GUI (graphical
user interface, interfaz gráfica de usuario) aparece en la máquina desde la que se
opera. No se nota que se utilizan dos ordenadores.

Todas las aplicaciones X Window, realmente son clientes de red que se conectan a
un servidor, el servidor X. La función de este servidor X es comunicarse con el
hardware gráfico, dibujar las imágenes en la pantalla, leer las entradas del ratón y
del teclado. Los clientes (sus programas como gimp, mozilla ...) envían al servidor

157 Ing. Iván Ferreira


El sistema X Window

instrucciones sobre cómo pintar cuadros y botones. A cambio reciben del servidor
los eventos de ratón y teclado. Obviamente se necesita algún tipo de
autentificación, de otra forma cualquiera podría estropear la pantalla de cualquier
otro.

Existen dos programas para controlar el acceso:

● xhost - usando este programa puede dar permiso a cualquier usuario en


una máquina dada a escribir gráficos en su pantalla. Ejemplo: usted está
sentado frente a una máquina llamada mercurio. Para permitir el acceso a
cualquier programa en el host venus a su pantalla debería escribir el
comando:

# xhost +venus

● xauth - es una autentificación basada en cookies y mucho más sofisticada.


Con xauth se puede dar acceso a los usuarios de forma individual. Es
mucho más seguro que xhost. La autentificación usa una cookie alojada en
el fichero .Xauthority en el directorio personal de los usuarios. Si la
máquina remota tiene una cookie válida en este fichero entonces se
garantizará el acceso. Para copiar la cookie desde la máquina frente a la
que está sentado (mercurio) al host desde donde quiere lanzar el programa
(venus) puede usar uno de los siguientes métodos:
# xauth extract - mercurio:0.0 | ssh venus /usr/X11R6/bin/xauth merge

o
# scp ~/.Xauthority venus:

Al lanzar un programa (cliente) ocurre lo siguiente:

1. El cliente busca en la variable de entorno DISPLAY el servidor, si no intenta


conectarse al servidor en este host.

2. El servidor comprueba si el cliente tiene permiso para enviarle "imágenes". Si el


cliente está autorizado entonces el servidor dibujará la imagen en la pantalla.

La variable de entorno DISPLAY tiene la siguiente sintaxis:

# export DISPLAY=nombre_host:número_display.número_pantalla

Un ejemplo para podría ser:


# export DISPLAY=mercurio:0.0

Red Hat Certified Engineer 158


El sistema X Window

Utilización de X remoto con telnet

Telnet es un protocolo obsoleto e inseguro. Es recomendado que utilice SSH en su


lugar. Sin embargo, en caso de contar con un host antiguo que no soporte SSH,
puede utilizar este procedimiento.

Suponiendo que se se encuentra actualmente con una sesión X en el equipo


llamado [Link] y desea ejecutar algo remotamente desde el equipo
llamado [Link]. Observe atentamente el nombre de host en el prompt.

Debe indicar a su servidor X que clientes desde [Link] tienen permiso


para dibujar imágenes en su pantalla:
[root@mercurio ~]# xhost +[Link]

Conéctese al host remoto [Link]:


[root@mercurio ~]# telnet [Link]

Ahora ha iniciado sesión en venus, cada comando que ejecute será ejecutado en
venus. Debe exportar la variable display indicando que la pantalla estará en el host
[Link].0:
[root@venus ~]# export DISPLAY=[Link].0

Inicie el programa. Por ejemplo:


[root@venus ~]# xterm &

Como resultado, el programa estará ejecutándose en el host venus, pero la interfaz


gráfica será mostrada en host mercurio.

Utilización de X remoto con SSH

La utilización de X remoto con SSH es mucho mas simple. Debe conectarse al


equipo remoto utilizando la opción -X de ssh:

# ssh -X usuario@host

# xterm &

SSH se encarga de configurar automáticamente las variables y los permisos de


seguridad requeridos.

Sesiones gráficas remotas (XDMCP)

Cuando se tienen distintas máquinas en una LAN y se desea aprovechar el poder y


recursos de una de estas y ahorrar trabajó, una sesión gráfica remota será de gran

159 Ing. Iván Ferreira


El sistema X Window

utilidad.

Sesión gráfica remota con GDM

GDM tiene una característica poco usada, pero muy útil. El método será de mucha
utilidad suponiendo que se tiene un servidor central con buena cantidad de
memoria y un buen microprocesador y lo más nuevo en software, y en la red de
área local (LAN) se tienen una o varias máquinas con muy poco espacio en disco
y/o poco poder en el microprocesador, o resulta mucho trabajo instalar todo un
sistema optimizado y personalizado.

El objetivo será entonces querrás que los usuarios puedan utilizar el servidor con
mayor poder y recursos para que se ejecuten ahí las sesiones gráficas y así tener
un mayor control en toda la red.

Configuración de gdm para aceptar conexiones XDMCP

En el servidor, abra una terminal como root y ejecute el comando gdmsetup, vaya
a la pestaña de Remota y seleccione de la lista desplegable Estilo: Igual que la
entrada local.

Como medida de seguridad, deshabilite el acceso de root tanto local como


remotamente en la pestaña seguridad, desmarcando la casilla Permitir la entrada

Red Hat Certified Engineer 160


El sistema X Window

remota al administrador del sistema.

En los clientes, debe respaldarse y editarse el archivo /etc/X11/prefdm y debe


hacerse que contenga únicamente lo siguiente, considerando que se debe poner la
ruta completa de X:
#!/bin/sh
/usr/bin/X -query <dirección_ip_del_Servidor>

Ejemplo:
#!/bin/sh
/usr/bin/X -query [Link]

Deben reiniciarse los servidores X de las máquinas clientes.

Las máquinas clientes verán a GDM ejecutándose como si se estuviese en el


mismo servidor, y permitirá iniciar GNOME o KDE o cualquier otro entorno gráfico
utilizado. Si cuenta con buenos adaptadores de red, ni siquiera se notará si se está
en un cliente o en el servidor.

Si lo prefiere, también puede iniciar el servidor de vídeo remoto simplemente


ejecutando:
/usr/bin/X -query <dirección_ip_del_Servidor>

Desde el prompt de cualquier terminal.

Escritorio Remoto

En instalaciones empresariales los administradores de sistema típicamente tienen


que lidiar con un gran número de problemas básicos en estaciones de trabajo de
usuarios. Tomar el control remoto de una sesión de usuario para arreglar el
problema al mismo tiempo que se entrena al usuario en cómo resolverlo por si
mismos es una forma simple y eficiente de manejar este tipo de escenarios de
soporte.

Vino es un servidor VNC para GNOME. Permite que usuarios remotos se conecten
a una sesión ejecutando GNOME a través de VNC.

Configuración de las preferencias de vino

En una terminal, ejecute el comando vino-preferences.


# vino-preferences

161 Ing. Iván Ferreira


El sistema X Window

Marque la casilla de verificación Permitir a otros usuarios ver mi escritorio, si desea


que los demás usuarios controlen la sesión, marque la casilla Permitir a otros
usuarios controlar tu escritorio. En las opciones de seguridad, si lo desea, marque
la casilla de verificación Pedir confirmación si desea que sea notificado antes de
que su sesión sea controlada remotamente Requerir que el usuario introduzca una
contraseña si desea que el usuario remoto introduzca una antes de conectarse a su
escritorio.

Desde el equipo remoto, para conectarse a la sesión del usuario, debe ejecutar el
comando:
# vncviewer [Link]

Cambiando la resolución de la pantalla desde la línea de comandos

Si desea cambiar la resolución de la pantalla desde la línea de comandos, puede


utilizar el comando xrandr.

Si ejecuta el comando xrandr sin argumentos, se mostrarán las opciones de


resolución posibles. La resolución actual está indicada con un *.

Para cambiar la resolución, ejecute el comando xrandr con la opción -s


<resolución>, por ejemplo:
# xrandr -s 800x600
# xrandr -s 1024x768
# xrandr -s 1280x1024

Red Hat Certified Engineer 162


10

Solución de problemas
Solución de problemas

Solución de problemas

Diagnóstico de problemas del sistema y servicios

Para verificar si existe algún registro que permita identificar problemas que existen
o existieron en la plataforma, puede utilizar el comando dmesg y los archivos de
registros de syslog.

El comando dmesg permite mostrar los mensajes registrados en el buffer del kernel
y los mensajes mostrados durante el inicio del sistema. El archivo
/var/log/messages contiene la mayoría de los eventos del sistema. Existen
otros archivos de registro de eventos, para identificarlos, visualice la configuración
de syslog.

Diagnóstico y solución de problemas X

El sistema de ventanas X es robusto y estable, pero ocasionalmente pueden


suceder problemas. Puede intentar varias cosas para intentar solucionar problemas
de X:

● Los menejadores de sesión crean archivos de registro en su directorio


HOME, como ~/.xsession-errors. Verifique estos archivos así como el
/var/log/messages y /var/log/[Link]

● Problemas con los archivos .xinitrc o .Xclients, pruebe eliminar o


renombrar estos archivos.

● Verifique la variable de entorno DISPLAY y asegúrese de tener permiso de


acceso a X con el comando xhost.

● Asegúrese que el directorio /usr/bin está en su variable PATH.

● Verifique el espacio en disco, si algún sistema de archivos se ha llenado,


puede provocar que el sistema X no inicie.

● Verifique que el archivo /etc/hosts está correctamente configurado, debe


existir una entrada para la interfaz loopback y una entrada para el nombre de
host del equipo.

● Asegúrese que el servidor de fuentes está en ejecución.

Modo de rescate

Red Hat Certified Engineer 164


Solución de problemas

Cuando las cosas salen mal, siempre hay que corregir los problemas. A pesar de
todo, estos métodos requieren que usted comprenda muy bien cómo funciona el
sistema.

El modo de rescate consiste en la posibilidad de poder tener un entorno Linux


completo que se pueda iniciar desde un disquete o un CD, o utilizando cualquier
otro método. Tal y como su nombre indica, el modo de rescate se proporciona para
que usted rescate algo. En el modo de operación normal, su sistema CentOS Linux
utiliza los ficheros que se encuentran en el disco duro de su sistema para realizar
todo: ejecutar programas, almacenar sus ficheros, y mucho más. A pesar de esto,
hay ocasiones en las que no podrá hacer que su sistema Linux se ejecute
suficientemente bien como para tener acceso a los ficheros de su disco duro.

Al usar el modo rescate, podrá acceder a esos ficheros, incluso aunque no pueda
ejecutar Linux desde ese disco.

Normalmente, será necesario que entre en el modo rescate por dos razones:

• Es incapaz de hacer iniciar Linux.

• Está teniendo problemas con el hardware o con el software, y quiere recuperar


algunos ficheros importantes y sacarlos del disco duro de su sistema.

A continuación, veremos más de cerca cada uno de estos escenarios.

Incapaz de Iniciar Linux

Este tipo de problemas suele estar relacionado con la instalación de otro sistema
operativo después de haber instalado CentOS Linux. Algunos sistemas operativos
asumen que no existe ningún otro sistema operativo en su ordenador y
sobreescriben el Master Boot Record (MBR) que en un principio contenía el gestor
de arranque LILO o GRUB.

Si se sobreescribe el cargador de arranque de esta manera, no podrá iniciar


CentOS Linux a no ser que entre en modo rescate.

Problemas Hardware/Software

Esta categoría contiene una amplia variedad de situaciones diferentes. Dos


ejemplos serían un disco duro que se ha caído y ha dejado de funcionar, o que se
olvide de ejecutar LILO tras haber compilado un nuevo kernel. En ambas
situaciones, puede que no le sea posible iniciar CentOS Linux.

Si puede iniciar en modo rescate, puede que consiga resolver el problema o al


menos conseguir copias de los ficheros más importantes que tenga en su sistema.

165 Ing. Iván Ferreira


Solución de problemas

Para inciar su sistema en modo rescate, teclee el siguiente comando en la línea de


comandos al iniciar la instalación:
boot: linux rescue

Puede llegar a esta línea de comandos de diferentes maneras:

● Iniciando su sistema a partir CD 1 de instalación de CentOS Linux.

● Iniciando desde la red o desde un disco de inicio creado con mkbootdisk.

Una vez tenga su sistema en modo rescate, se le aparecerá una línea de


comandos en la consola virtual.

Si su sistema de ficheros principal no está dañado, podrá montarlo y ejecutar


cualquiera de las utilidades standard de Linux.

Por ejemplo, si su sistema de ficheros principal está en /dev/sda5, podrá montar


esta partición con el siguiente comando:
# mkdir /mnt/disco
# mount -t ext3 /dev/hsa5 /mnt/disco

En el comando anterior, /mnt/disco es el nombre de un directorio que usted


debería haber creado.

Si no puede montar el disco podrá fsck para verificar la integridad del disco. Está
ejecutando Linux en modo rescate. Si no conoce el nombre de sus particiones
Linux, puede intentar deducir cuales son. Montar particiones que no existen no es
peligroso.

Iniciar el modo monousuario directamente

Si su sistema inicia pero no le permite entrar al nivel de ejecución configurado,


generalmente 3 o 5, inicio, o ha olvidado la contraseña del root, puede iniciar el
modo monousuario directamente. Intente reiniciar especificando una de las
siguientes opciones en la línea de comandos del cargador de arranque.

Si está usando el gestor de arranque por defecto, GRUB, puede entrar a modo
usuario único haciendo lo siguiente:

En el menú del gestor de arranque, escriba para entrar al modo de edición.


Se le presentará con un listado de entrada de arranque. Busque una línea que sea
parecida a la siguiente:
kernel /vmlinuz-2.4.18-0.4 ro root=/dev/sda2

Pulse la tecla de la flecha hasta que línea aparezca evidenciada y pulse [a].

Red Hat Certified Engineer 166


Solución de problemas

Presione la barra espaciadora para agregar un espacio en blanco, luego agregue la


palabra single para indicarle a GRUB que arranque en modo usuario único de
Linux o emergency para indicar que inicie en modo emergencia. Presione para
que el cambio tome efecto.

Se le devolverá a la pantalla de modo de modificación. Pulse y GRUB arrancará el


modo de Linux como usuario único.

En modo monousuario, el ordenador se inicia en el nivel de ejecución 1. Se


montará su sistema de ficheros local, pero la red no se activará. Podrá tener
acceso a un indicador de comandos de sistema.

En modo emergencia, iniciará en el entorno más reducido posible. El sistema de


ficheros principal se montará en sólo lectura y no se configurará casi nada. La
principal ventaja del modo de emergencia sobre el modo Linux single es que sus
ficheros init no se cargarán. Si su init está corrupto o no funciona, podrá montar
los sistemas de ficheros para recuperar datos que se podrían perder durante una
reinstalación.

Si desea realizar una modificación de algún archivo de configuración, debe


remontar el sistema de archivos en modo lectura escritura:
# mount -o rw,remount /

Disco de inicio

Es muy recomendado que genere un disco de inicio durante la instalación o


mientras el equipo está funcionando correctamente, para generar un disco de inicio
ejecute el comando:
# mkbootdisk --iso --device [Link] `uname -r`

El disco de inicio le permite iniciar el servidor si existen problemas con el sector de


arranque. El servidor iniciará el cargador de arranque desde el CD y luego
continuará con el proceso de inicio normal desde el disco local.

Una vez iniciado, puede realizar tareas de verificación del entorno de inicio, por
ejemplo, asegurarse que el archivo /etc/grub/[Link] están correctamente
configurados.

Para reinstalar grub ejecute el comando:


# grub-install /dev/<device>

Donde <device> es el MBR del disco correspondiente o la partición activa.

Además puede realizar una copia del mbr de un disco con el siguiente comando:

167 Ing. Iván Ferreira


Solución de problemas

# dd if=/etc/sda of=/etc/[Link] bs=512 count=1

Guarde el archivo [Link], puede utilizarlo para restaurar el MBR posteriormente


con el comando:
# dd if=/etc/[Link] of=/etc/sda bs=512 count=1

Red Hat Certified Engineer 168

También podría gustarte