Está en la página 1de 166

LE- 201 - Linux Enterprise / Administración de servidores

Tabla de contenido

Instalación del sistema operativo CentOS Linux.............................................................7


Aspectos básicos del hardware.........................................................................................8
La CPU..........................................................................................................................8
El kernel de Linux y Multi-core......................................................................................9
Memoria.......................................................................................................................12
Buses...........................................................................................................................13
Controladores y periféricos.........................................................................................13
Espacios de direcciones..............................................................................................14
Cronómetros................................................................................................................15
Interrupciones..............................................................................................................16
Información de hardware adicional.............................................................................16
Instalación de CentOS Linux...........................................................................................17
Nombres de Dispositivo en Linux................................................................................17
Crear un CD-ROM de arranque de instalación...........................................................18
Arranque de la instalación desde un USB pen drive..................................................18
Interfaz gráfica de usuario del programa de instalación.............................................19
Nota sobre las consolas virtuales................................................................................19
Opciones de arranque adicionales..............................................................................19
Selección de un método de instalación.......................................................................21
Instalación desde un CD-ROM....................................................................................21
Instalación desde un disco duro..................................................................................22
Preparación para la instalación de red........................................................................22
Instalación a través de NFS........................................................................................22
Instalación a través de FTP.........................................................................................23
Instalación a través de HTTP......................................................................................23
Particionamiento automático de discos...........................................................................23
Esquema de particionamiento recomendado..............................................................24
Configuración del gestor de arranque.............................................................................26
Primer arranque...............................................................................................................26
Configuración del cortafuegos.....................................................................................26
Configuración de Kdump.............................................................................................26
Configuración de SELinux...........................................................................................27
El archivo anaconda-ks.cfg..............................................................................................27
Administración del sistema de archivos.........................................................................29
El sistema de archivos.....................................................................................................30
Extended File System .................................................................................................31
Grupos de bloques..................................................................................................32
Super Bloque...........................................................................................................33
Descriptor de grupo.................................................................................................34
Mapa de bits de bloques.........................................................................................35
Mapa de bits de inodos ..........................................................................................35
Tabla de inodos ......................................................................................................35
El inodo Extended File System...................................................................................35
El sistema de archivos EXT3......................................................................................37
Gestión de particiones.....................................................................................................39
Numeración de particiones..........................................................................................39
Usando fdisk................................................................................................................40
Creación del sistema de archivos....................................................................................41
Ajustando parámetros del sistema de archivos ext2/ext3...........................................42
Montado de sistemas de archivos ..............................................................................43
Ejemplo de la adición de un disco con sistema de archivos ext3...............................46
Verificación y reparación del sistema de archivos ext2/ext3......................................49
Gestión del espacio Swap...............................................................................................51
Añadir el espacio Swap...............................................................................................52
Añadir un archivo swap...........................................................................................53
Utilización de autofs.........................................................................................................54
Proceso de arranque, inicio y cierre del sistema...........................................................56
Proceso de arranque.......................................................................................................57
Vista detallada del proceso de arranque.....................................................................58
El BIOS........................................................................................................................58
El gestor de arranque..................................................................................................59
Gestores de arranque para otras arquitecturas..........................................................60
El kernel.......................................................................................................................60
Programa /sbin/init.......................................................................................................61
Ejecutar programas adicionales en el momento de arranque....................................64
Uso de sysctl ...................................................................................................................64
Niveles de ejecución de SysV Init...................................................................................65
Niveles de ejecución....................................................................................................66
Utilidades de los niveles de ejecución........................................................................67
Cierre del sistema............................................................................................................68
Administración de usuarios..............................................................................................70
Usuarios y grupos............................................................................................................71
Herramientas de administración de usuarios y grupos...............................................71
Configuración de usuarios desde la línea de comandos................................................72
Añadir un usuario........................................................................................................72
Añadir un grupo...........................................................................................................73
Vencimiento de la contraseña.....................................................................................74
El archivo /etc/passwd.................................................................................................75
El archivo /etc/group....................................................................................................76
Grupos de usuario privado..........................................................................................76
Directorios de grupos..................................................................................................77
Contraseñas Shadow......................................................................................................78
El archivo /etc/shadow.................................................................................................79
Configuración de la autenticación...................................................................................81
Métodos de autenticación...........................................................................................81
Instalación y gestión de paquetes...................................................................................84
Gestión de paquetes........................................................................................................85
Metas de diseño RPM.................................................................................................86
Instalación de paquetes RPM.....................................................................................87
Paquete ya instalado...................................................................................................88
Archivos en conflicto....................................................................................................88
Dependencias no resueltas.........................................................................................89
Desinstalación.............................................................................................................90
Actualización...............................................................................................................90
Refrescamiento...........................................................................................................91
Consultas.....................................................................................................................92
Verificación..................................................................................................................93
Verificando la firma del paquete......................................................................................95
Importar claves............................................................................................................96
Verificación de la firma de paquetes...........................................................................96
Técnicas de uso de rpm..................................................................................................97
Yellowdog Updater Modified (YUM)................................................................................99
Configuración de YUM................................................................................................99
Utilización de YUM....................................................................................................103
Creación de un repositorio yum local........................................................................104
Creación del repositorio base para YUM..................................................................104
Creación del repositorio updates para YUM.............................................................105
Configuración de los equipos para utilizar el repositorio YUM local.........................106
Configuración de impresoras ........................................................................................108
Añadir una impresora local........................................................................................110
Añadir una impresora IPP.........................................................................................111
Añadir una impresora UNIX (LPD) remota................................................................112
Añadir una impresora Samba (SMB)........................................................................112
Añadir una impresora JetDirect.................................................................................113
Selección del modelo de impresora..........................................................................114
Administración de trabajos de impresión......................................................................115
Deshabilitando las impresoras y las colas de impresión...............................................117
Compartir una impresora...............................................................................................119
El sistema X Window.......................................................................................................121
El lanzamiento X11R7.1................................................................................................122
Entornos de escritorio....................................................................................................123
Gestores de ventanas....................................................................................................124
Archivos de configuración del servidor X......................................................................126
El archivo xorg.conf...................................................................................................126
La estructura de Xorg............................................................................................126
Sección ServerFlags.............................................................................................127
Sección ServerLayout...........................................................................................128
Sección Files.........................................................................................................129
Sección Module.....................................................................................................130
Sección InputDevice.............................................................................................131
Sección Monitor.....................................................................................................132
Sección Device......................................................................................................134
Sección Screen.....................................................................................................136
DRI.............................................................................................................................137
Fuentes..........................................................................................................................138
Fontconfig..................................................................................................................138
Añadir fuentes a Fontconfig......................................................................................138
Añadir fuentes TrueType...........................................................................................139
Sistema de fuentes base de X..................................................................................140
Configuración de xfs..................................................................................................140
Añadir fuentes a xfs...................................................................................................142
Fuentes Liberation.....................................................................................................142
Niveles de ejecución y X................................................................................................143
Nivel de ejecución 3..................................................................................................143
Nivel de ejecución 5..................................................................................................144
Ejecutando aplicaciones remotas con X11...................................................................146
Utilización de X remoto con telnet.............................................................................148
Utilización de X remoto con SSH..............................................................................149
Sesiones gráficas remotas (XDMCP).......................................................................149
Sesión gráfica remota con GDM...............................................................................149
Configuración de gdm para aceptar conexiones XDMCP........................................150
Escritorio Remoto......................................................................................................151
Configuración de las preferencias de vino................................................................151
Cambiando la resolución de la pantalla desde la línea de comandos..........................152
Software RAID..................................................................................................................154
Tecnología RAID...........................................................................................................155
Software RAID...............................................................................................................155
Niveles de RAID............................................................................................................156
RAID Nivel 0 – Conjunto de bandas sin paridad.......................................................156
RAID 1 – Espejado de discos....................................................................................157
RAID 5 – Conjunto de bandas con paridad distribuida.............................................158
RAID 6 – Conjunto de bandas con doble paridad distribuida...................................159
Configuración de software RAID...................................................................................161
Verificación del estado de los dispositivos RAID......................................................164
Gestión de arreglos con el comando mdadm...........................................................165
1
Instalación del sistema operativo CentOS Linux
Instalación del sistema operativo CentOS Linux

Instalación de CentOS Linux

Aspectos básicos del hardware

Un sistema operativo debe trabajar íntimamente con el hardware que le sirve de


cimientos. El sistema operativo necesita ciertos servicios que solo pueden
suministrar el hardware. Para entender totalmente el sistema operativo Linux, se
necesita entender los aspectos básicos del hardware que hay debajo.

La CPU

La CPU, o mejor, microprocesador, es el corazón de cualquier computadora. El


microprocesador calcula, realiza operaciones lógicas y gestiona flujos de datos
leyendo instrucciones desde la memoria y ejecutándolas. En los primeros días de la
informática los componentes funcionales del microprocesador eran unidades
separadas (y grandes físicamente). Fue entonces cuando se acuñó el término
Unidad Central de Proceso (Central Processing Unit). El microprocesador
moderno combina esos componentes en un circuito integrado, grabado en una
pequeña pieza de silicio. Los términos CPU, microprocesador y procesador se usan
de manera intercambiable en este libro.

Los microprocesadores operan sobre datos binarios; estos son datos compuestos
de unos y ceros. Estos unos y ceros corresponden a interruptores eléctricos que
están encendidos o apagados. Igual que 42 es un número decimal que significa ``4
decenas y 2 unidades'', un número binario es una serie de dígitos binarios, cada
uno representando una potencia de 2.

Los microprocesadores pueden realizar operaciones aritméticas como sumar,


multiplicar y dividir, y operaciones lógicas como “¿es X mayor que Y?'”.

La ejecución del procesador viene gobernada por un reloj externo. Este reloj, el
reloj del sistema, envía pulsos de reloj regulares al procesador y, a cada pulso de
reloj, el procesador hace algún trabajo. Por ejemplo, un procesador podría ejecutar
una instrucción a cada pulso de reloj. La velocidad del procesador se describe en

Red Hat Certified Engineer 8


Instalación del sistema operativo CentOS Linux

términos de la frecuencia de pulsos del reloj del sistema. Un procesador de 100Mhz


recibirá 100 000 000 pulsos de reloj cada segundo. Puede llevar a confusión
describir la potencia de una CPU por su frecuencia de reloj ya que diferentes
procesadores realizan diferentes cantidades de trabajo a cada pulso de reloj. De
todos modos, si el resto de las características son iguales, una mayor velocidad de
reloj significa un procesador más potente.

Las instrucciones ejecutadas por el procesador son muy simples; por ejemplo
“copia en el registro Y el contenido de la posición X de la memoria”. Los registros
son el almacén interno del microprocesador, se usan para almacenar datos y
realizar operaciones sobre ellos. Las operaciones realizadas pueden hacer que el
procesador deje de hacer los que estaba haciendo y salte a otra instrucción en otra
parte de la memoria. Estos pequeños ladrillos dan al microprocesador moderno un
poder casi ilimitado ya que puede ejecutar millones o incluso miles de millones de
instrucciones por segundo.

Las instrucciones deben ser obtenidas de la memoria para ejecutarlas. Las propias
instrucciones pueden hacer referencia a datos en la memoria, y esos datos deben
ser obtenidos de la memoria y guardados en ella cuando se requiera.

Para obtener información de la CPU que está utilizando el sistema ejecute el


comando:

# cat /proc/cpuinfo

El kernel de Linux y Multi-core

En plataformas basadas en procesadores multi-core, más de un núcleo de


ejecución reside en un paquete físico. Cada núcleo tiene recursos propios y
compartidos los cuales varian dependiendo de la implementación. Las
implementaciones mas típicas de multi-core comparten al menos un nivel de cache
y el bus frontal (front side bus – FSB).

Múltiples hilos lógicos (Hyper-threading – HT) o núcleos de ejecución (Multi-

9 Ing. Iván Ferreira


Instalación del sistema operativo CentOS Linux

core – MC) en un paquete físico aparece al sistema operativo como múltiples


procesadores lógicos, similar a los entornos de multi procesamiento simétrico
(SMP). Por ejemplo, un procesador físico podría visualizarse como cuatro
procesadores lógicos, si este utiliza tecnología dual-core y HT habilitado.

El archivo /proc/cpuinfo contiene información acerca de las CPU del sistema.


Este archivo además exporta la información de multi-core y hyper-threading al
sistema operativo.

El valor “ht” en el campo “flags” de /proc/cpuinfo indican que el procesador


soporta los registros para reportar HT o MC. Los campos adicionales en los
registros de /proc/cpuinfo dará información más precisa acerca de la topología
de la CPU vista por el sistema operativo:

● physical id – Identificador del paquete físico de la CPU lógica. Varias


CPU lógicas puede tener el mismo physical id.

● siblings – Numero total de procesadores lógicos (incluye tanto hilos y


núcleos) en el paquete físico.

● cpu cores – El numero total de núcleos en el paquete físico actualmente


en uso por el sistema operativo.

● core id – El identificador del núcleo de la CPU lógica.

A continuación se presentan algunos ejemplos que permitirán entender cómo


utilizar los valores mostrados en cada campo.

Un único procesador, un sólo core, con HT:

Campo Valor
processor 0 1
physical id 0 0

Red Hat Certified Engineer 10


Instalación del sistema operativo CentOS Linux

Campo Valor
siblings 2 2
core id 0 0
cpu cores 1 1

Un único procesador, dual core, sin HT:

Campo Valor
processor 0 1

physical id 0 0

siblings 2 2

core id 0 1

cpu cores 2 2

Dos procesadores, dual core, con HT:

Campo Valor
processor 0 1 2 3 4 5 6 7

physical id 0 0 0 0 1 1 1 1

siblings 4 4 4 4 4 4 4 4

core id 0 0 1 1 0 0 1 1

cpu cores 2 2 2 2 2 2 2 2

Un único procesador, quad core, sin HT:

Campo Valor
processor 0 1 2 3
physical id 0 0 0 0
siblings 4 4 4 4
core id 0 2 1 3
cpu cores 4 4 4 4

11 Ing. Iván Ferreira


Instalación del sistema operativo CentOS Linux

Los Kernels de Linux más recientes (> 2.6.17) reportan la topología de la CPU en
sysfs además. Este mecanismo es más simple y rápido comparado con /proc.

Los campos exportados bajo /sys/devices/system/cpu/cpuX/topology


proporcionan la información completa de la topología:

● physical_package_id - Identificador del paquete físico de la CPU lógica.

● core_id - El identificador del núcleo de la CPU lógica.

● core_siblings – Máscara de todas las CPUs en el paquete físico.

● thread_siblings – Máscara de todas las CPU lógicas un núcleo de CPU.

Obteniendo el Hamming Weight (número de bits activos) de la máscara


proporcionará las capacidades del paquete físico.

Memoria

Todos los sistemas tienen una jerarquía de memoria, con memoria de diferentes
velocidades y tamaños en diferentes puntos de la jerarquía. La memoria más
rápida se conoce como memoria caché y es una memoria que se usa para
almacenar temporalmente contenidos de la memoria principal. Este tipo de
memoria es muy rápida pero cara, por tanto la mayoría de los procesadores tienen
una pequeña cantidad de memoria caché en el chip y más memoria caché en el
sistema (en la placa). Algunos procesadores tienen una caché para contener
instrucciones y datos, pero otros tienen dos, una para instrucciones y la otra para
datos. El procesador Alpha tiene dos memorias caché internas; una para datos (la
Caché-D) y otra para instrucciones (la Caché-I). La caché externa (o Caché-B)
mezcla los dos juntos. Finalmente está la memoria principal, que comparada con
la memoria caché externa es muy lenta. Comparada con la caché en la CPU, la
memoria principal se arrastra.

Las memorias caché y principal deben mantenerse sincronizadas (coherentes). En

Red Hat Certified Engineer 12


Instalación del sistema operativo CentOS Linux

otras palabras, si una palabra de memoria principal se almacena en una o más


posiciones de la caché, el sistema debe asegurarse de que los contenidos de la
caché y de la memoria sean los mismos. El trabajo de coherencia de la caché es
llevado a cabo parcialmente por el hardware y parcialmente por el sistema
operativo. Esto es cierto también para un número de tareas principales del sistema,
donde el hardware y el software deben cooperar íntimamente para alcanzar sus
objetivos.

Puede obtener información de la memoria del sistema ejecutando el comando:

# cat /proc/meminfo

Buses

Los componentes individuales de la placa del sistema están conectados entre sí


por sistemas de conexión múltiple conocidos como buses. El bus de sistema está
dividido en tres funciones lógicas; el bus de direcciones, el bus de datos y el
bus de control. El bus de direcciones especifica las posiciones de memoria
(direcciones) para las transferencias de datos. El bus de datos contiene los datos
transferidos El bus de datos es bidireccional; permite escribir datos en la CPU y
leerlos desde la CPU. El bus de control contiene varias lineas que se usan para
dirigir señales de sincronismo y control a través del sistema. Existen muchos tipos
de bus, por ejemplo los buses ISA y PCI son formas populares de conectar
periféricos al sistema.

Para obtener información del bus pci ejecute:

# cat /proc/pci

Información de los dispositivos existentes en los demás buses del sistema, pueden
ser obtenidos consultando el directorio /proc/bus.

Controladores y periféricos

Los periféricos son dispositivos reales, como tarjetas gráficas o discos controlados

13 Ing. Iván Ferreira


Instalación del sistema operativo CentOS Linux

por chips controladores que se encuentran en la placa del sistema, o en tarjetas


conectadas a ella. Los discos IDE son controlados por el chip controlador IDE, y los
discos SCSI por los chips controladores de disco SCSI, y así sucesivamente. Estos
controladores están conectados a la CPU y entre ellos por una variedad de buses.
La mayoría de los sistemas construidos actualmente usan buses PCI e ISA para
conectar entre sí los principales componentes del sistema. Los controladores son
procesadores como la propia CPU, se pueden ver como asistentes inteligentes de
la CPU. La CPU tiene el control sobre todo el sistema.

Todos los controladores son diferentes, pero usualmente tienen registros que los
controlan. El software que se ejecute en la CPU debe ser capaz de leer y escribir
en esos registros de control. Un registro puede contener un estado que describa un
error. Otro puede ser usado para propósitos de control; cambiando el modo del
controlador. Cada controlador en un bus puede ser accedido individualmente por la
CPU, esto es así para que el software gestor de dispositivos pueda escribir en sus
registros y así controlarlo, La banda IDE es un buen ejemplo, ya que ofrece la
posibilidad de acceder a cada unidad en el bus por separado. Otro buen ejemplo es
el bus PCI, que permite acceder a cada dispositivo (por ejemplo una tarjeta gráfica)
independientemente.

Espacios de direcciones

El bus del sistema conecta la CPU con la memoria principal y está separado de los
buses que conectan la CPU con los periféricos. El espacio de memoria en el que
existen los periféricos hardware se conoce colectivamente como espacio de I/O
(por Input/Output, Entrada/Salida). El espacio de I/O puede estar subdividido a su
vez, pero no nos preocuparemos demasiado sobre eso de momento. La CPU
puede acceder a la memoria en el espacio del sistema y a la memoria en el espacio
de I/O, mientras que los controladores sólo pueden acceder a la memoria en el
espacio del sistema indirectamente, y sólo con la ayuda de la CPU. Desde el punto
de vista del dispositivo, digamos un controlador de disquetes, verá sólo el espacio
de direcciones en el que se encuentran sus registros de control (ISA) y no la
memoria del sistema.

Red Hat Certified Engineer 14


Instalación del sistema operativo CentOS Linux

Típicamente, una CPU tendrá instrucciones separadas para acceder al espacio de


memoria y al espacio de I/O. Por ejemplo, puede haber una instrucción que
signifique “lee un byte de la dirección de I/O 0x3f0 y ponlo en el registro X”. Así es
exactamente como controla la CPU a los periféricos hardware del sistema, leyendo
y escribiendo en sus registros en el espacio de I/O. En qué lugar del espacio I/O
tienen sus registros los periféricos comunes (controlador IDE, puerta serie,
controlador de disco flexible, y demás) ha sido definido por convenio a lo largo de
los años conforme la arquitectura del PC se ha desarrollado. Sucede que la
dirección 0x3f0 del espacio I/O es la dirección de uno de los registros de control de
la puerta serie (COM1).

Existen ocasiones en las que los controladores necesitan leer o escribir grandes
cantidades de datos directamente desde o a la memoria del sistema. Por ejemplo,
cuando se escriben datos del usuario al disco duro. En este caso, se usan
controladores de Acceso Directo a Memoria (Direct Memory Access - DMA)
para permitir que los periféricos hardware accedan directamente a la memoria del
sistema, pero este acceso está bajo el estricto control y supervisión de la CPU.

Para obtener información del espacio de direcciones ejecute el comando:

# cat /proc/ioports

Cronómetros

Todos los sistemas operativos necesitan saber la hora, y así, la placa madre
incluye un dispositivo especial llamado el Reloj de Tiempo Real (Real Time Clock
- RTC). Este dispositivo suministra dos cosas: una hora del día fiable y un
cronómetro preciso. El RTC tiene su propia batería, de forma que siga funcionado
incluso cuando el PC no esté encendido, así es como el equipo “sabe”' siempre la
fecha y hora correctas. El cronómetro permite que el sistema operativo planifique
de manera precisa el trabajo esencial.

15 Ing. Iván Ferreira


Instalación del sistema operativo CentOS Linux

Interrupciones

Linux usa distintos componentes físicos para llevar a cabo trabajos muy diferentes.
El dispositivo de vídeo maneja el monitor, el dispositivo IDE maneja los discos, y
así sucesivamente. Puede manejar estos dispositivos de forma sincronizada, es
decir, puede enviar una petición de alguna operación (como escribir un bloque de
memoria a disco) y luego esperar que la operación se complete. Este método,
aunque funciona, es muy poco eficiente y el sistema operativo pasaría mucho
tiempo «ocupado sin hacer nada» mientras espera que cada operación finalice.
Una manera mejor y más eficiente sería realizar la petición y luego realizar otra, un
trabajo más útil que luego se interrumpiría cuando el dispositivo haya finalizado la
petición. Con este esquema puede haber muchas peticiones pendientes hacia los
dispositivos en el sistema, todas al mismo tiempo.

Algunas interrupciones son fijas por convenio de la arquitectura del hardware y


entonces el controlador simplemente pide esa interrupción cuando se haya
inicializado. Esto es lo que hace el controlador de la disquetera; siempre pide la
IRQ 6 (IRQ = Interrupt ReQuest, petición de Interrupción). Puede haber
ocasiones en las que un controlador no sepa qué interrupción va a usar el
dispositivo. Esto no es un problema para los controladores de dispositivos PCI ya
que siempre saben cual es su número de interrupción. Desafortunadamente no hay
ninguna manera fácil de que los controladores de dispositivos ISA encuentren su
número de interrupción.

Para obtener información de las interrupciones utilizadas ejecute el comando:

# cat /proc/interrupts

Información de hardware adicional

Otros comandos que permiten obtener información del equipo son dmesg, lshal,
lspci, lsusb, dmidecode y hwbrowser.

Red Hat Certified Engineer 16


Instalación del sistema operativo CentOS Linux

Instalación de CentOS Linux

Antes de instalar CentOS Linux verifique que cumple los requisitos de espacio en
disco para la instalación.

La instalación de CentOS Linux requiere de una partición utilizada como área de


intercambio de memoria (swap) de al menos el mismo tamaño que la memoria
RAM. Los archivos del sistema operativo requieren entre 500 M a 5 GB
dependiendo de los paquetes seleccionados.

Nombres de Dispositivo en Linux

En Linux, los nombres de disco y de particiones pueden ser diferentes de otros


sistemas operativos. Para crear y montar particiones, necesita conocer los nombres
que utiliza Linux. Este es el esquema básico de nomenclatura:

● La primera unidad de disquete se llama /dev/fd0. La segunda unidad de


disquete se llama /dev/fd1, etc.

● El primer disco duro de tecnología diferente a IDE (incluyendo los discos


USB) se llama /dev/sda. El segundo disco duro de tecnología diferente a
IDE se llama /dev/sdb, el tercero /dev/sdc, etc.

● El dispositivo de CD/DVD-ROM normalmente es accedido a través de


/dev/cdrom. Un dispositivo con capacidad de grabación de medios es
accedido a través de /dev/cdrecorder.

● El disco maestro de la controladora IDE primaria se llama /dev/hda. El


disco esclavo de la controladora IDE primaria se llama /dev/hdb. El disco
maestro de la controladora IDE secundaria se llama /dev/hdc. El disco
esclavo de la controladora IDE secundaria se llama /dev/hdd.

● El primer dispositivo de cinta se llama /dev/st0. El segundo dispositivo de

17 Ing. Iván Ferreira


Instalación del sistema operativo CentOS Linux

cinta se llama /dev/st1, etc.

Las particiones de cada disco se representan añadiendo un número decimal al


nombre del disco: sda1 y sda2 representan la primera y segunda partición del la
primera unidad de disco del sistema.

He aquí un ejemplo de la vida real. Supongamos que tiene un sistema con dos
discos. El primer disco se llama por tanto sda, y el segundo sdb. Si la unidad sda
tiene 3 particiones, éstas se llamarán sda1, sda2 y sda3. Lo mismo se aplica para
el disco sdb y sus particiones.

En versiones más recientes de Linux, los dispositivos IDE utilizan también la


nomenclatura /dev/sd.

Crear un CD-ROM de arranque de instalación

En el directorio images/ encontrará el archivo boot.iso. Este archivo ISO puede


ser usado para iniciar el programa de instalación. Deberá quemar el archivo
boot.iso a un CD grabable y la máquina debe estar configurada para arrancar
desde el CD-ROM.

Arranque de la instalación desde un USB pen drive

Si no puede arrancar desde el CD-ROM, pero puede iniciar desde un dispositivo


USB, como un USB pen drive, la siguiente alternativa de inicio esta disponible.

Para iniciar desde un USB pen drive, utilice el comando dd para copiar la imagen
diskboot.img desde el directorio /images/ del medio de instalación. Por
ejemplo:

# dd if=diskboot.img of=/dev/sda

El BIOS debe soportar iniciar desde un dispositivo USB.

Red Hat Certified Engineer 18


Instalación del sistema operativo CentOS Linux

Interfaz gráfica de usuario del programa de instalación

Si ha utilizado la interfaz de usuario en modo gráfico (GUI) con anterioridad, este


proceso le será muy familiar. Use el ratón para navegar por las pantallas, pulse los
botones o rellene los campos de texto. Puede también utilizar las teclas [Tab] y
[ENTER] para navegar.

Si no quiere utilizar el programa de instalación GUI, está disponible el programa de


instalación en modo texto. Para utilizarlo, ejecute el siguiente comando de
arranque:

boot: linux text

Nota sobre las consolas virtuales

El programa de instalación de CentOS Linux ofrece más que las ventanas de


diálogo del proceso de instalación. Además de darle la posibilidad de insertar
comandos desde el intérprete de comandos de la shell, tiene a su disponibilidad
muchos tipos diferentes de mensajes. El programa de instalación despliega estos
mensajes en cinco consolas virtuales, entre las que puede cambiarse usando una
combinación de teclas.

Consola Combinación de teclas Contenido


1 [Ctrl]-[Alt]-[F1] Diálogo de instalación
2 [Ctrl]-[Alt]-[F2] Intérprete de comandos de la shell
3 [Ctrl]-[Alt]-[F3] Log de instalación
4 [Ctrl]-[Alt]-[F4] Mensajes de sistema
5 [Ctrl]-[Alt]-[F5] Otros mensajes
7 [Ctrl]-[Alt]-[F7] Pantalla gráfica de X

Opciones de arranque adicionales

Aunque para un usuario resulta más sencillo arrancar desde un CD-ROM y ejecutar
una instalación gráfica, en ocasiones hay instalaciones en las que puede ser

19 Ing. Iván Ferreira


Instalación del sistema operativo CentOS Linux

necesario realizar el arranque con un método distinto. En esta sección se describen


las opciones de arranque adicionales que hay disponibles para el sistema CentOS
Linux.

Si no desea realizar una instalación gráfica, puede iniciar una instalación en modo
texto mediante el siguiente comando de arranque:

boot: linux text

Las imágenes ISO ahora tienen un md5sum integrado. Para probar la integridad
checksum de una imagen ISO, en el indicador de comandos de arranque de la
instalación, escriba:

boot: linux mediacheck

Si el programa de instalación no detecta correctamente el hardware instalado,


probablemente deberá reiniciar la instalación en modo experto. Para usar el modo
experto, escriba el siguiente comando de arranque:

boot: linux noprobe

Para ejecutar la instalación en modo texto en modo experto utilice:

boot: linux text noprobe

Si necesita realizar una instalación en modo serie, escriba el siguiente comando:

boot: linux console=<dispositivo>

Si tiene un disco de controlador de dispositivo (driver disk), especialmente para


controladoras de disco, puede informar al programa de instalación con la opción.
Se solicitará el disco controlador durante la instalación del sistema:

boot: linux dd

Para ejecutar la instalación en modo texto a través del puerto serie, utilice:

boot: linux text console=<dispositivo>

Red Hat Certified Engineer 20


Instalación del sistema operativo CentOS Linux

En el comando anterior, <dispositivo> es el dispositivo que está utilizando


(como ttyS0 o ttyS1). Por ejemplo, linux text console=ttyS0,115200n8.
Esto es especialmente útil para servidores sin tarjeta de video incorporada.

Selección de un método de instalación

Es posible iniciar el programa de instalación desde la unidad de CD y continuarla a


partir de otra fuente de instalación. Para seleccionar el método de instalación utilice
la siguiente opción de arranque:

boot: linux askmethod

La instalación puede ser realizada desde:

● DVD/CD-ROM: Si posee un lector de DVD/CD-ROM puede utilizar este


método.

● Disco duro: Si ha copiado las imágenes ISO de CentOS Linux en el disco


duro local, puede utilizar este método.

● NFS: Si está realizando la instalación desde un servidor NFS utilizando


imágenes ISO o una imagen réplica de CentOS Linux, puede utilizar este
método.

● FTP: Si está realizando la instalación directamente desde un servidor FTP,


utilice este método.

● HTTP: Si está realizando la instalación directamente desde un servidor Web


HTTP, utilice este método.

Instalación desde un CD-ROM

Para instalar CentOS Linux desde un CD-ROM, escoja CD-ROM y seleccione OK.
Cuando el programa se lo indique, inserte el CD de CentOS Linux en el lector de
disco (si no arrancó desde una unidad de CD). Una vez que el CD esté en la

21 Ing. Iván Ferreira


Instalación del sistema operativo CentOS Linux

unidad de CD-ROM, seleccione OK, y presione [Enter].

Instalación desde un disco duro

Las instalaciones desde un disco duro solamente funcionan con los sistemas de
archivos ext2, ext3 o FAT. Si tiene un sistema de archivos diverso de los que
aparecen aquí como reiserfs, no podrá llevar a cabo este tipo de instalación.

Las instalaciones desde el disco duro usan imágenes ISO.

La pantalla “Selección de la partición” se puede aplicar sólo si está realizando la


instalación desde una partición del disco (es decir, si ha seleccionado Disco duro
en el Método de instalación. Esta ventana de diálogo le permite nombrar la
partición del disco y el directorio desde el que está instalando CentOS Linux.

Introduzca el nombre del dispositivo de la partición que contiene las imágenes ISO.
También hay un campo etiquetado Directorio que contiene imágenes. Si las
imágenes ISO no se encuentran en el directorio root de esa partición introduzca el
recorrido hacia las imágenes ISO (por ejemplo, si las imágenes ISO están en
/iso/CentOS, introduzca /iso/CentOS).

Preparación para la instalación de red

Si está llevando a cabo una instalación de red, la ventana de diálogo Configurar


TCP/IP aparecerá. Este diálogo le pedirá su IP y otras direcciones de red. Puede
escoger configurar la dirección IP y la máscara del dispositivo a través de DHCP o
manualmente.

Instalación a través de NFS

La ventana de NFS aparece solamente si está realizando una instalación desde un


servidor NFS.

Introduzca el nombre de dominio completo o la dirección IP del servidor NFS.

Red Hat Certified Engineer 22


Instalación del sistema operativo CentOS Linux

A continuación, introduzca el nombre del directorio exportado. Introduzca el


directorio que contiene los archivos rpm.

Instalación a través de FTP

La ventana de FTP aparece solamente si está realizando una instalación desde un


servidor FTP si seleccionó FTP en el Método de instalación). Esta pantalla le
permite identificar el servidor FTP desde el que está realizando la instalación de
CentOS Linux.

Introduzca el nombre o la dirección IP del sitio FTP desde el que está instalando y
el nombre del directorio que contiene los archivos de instalación CentOS para su
arquitectura.

Instalación a través de HTTP

La ventana de HTTP aparece solamente si está realizando una instalación desde


un servidor HTTP si seleccionó HTTP en la ventana Método de instalación). Esta
pantalla le pedirá información sobre el servidor HTTP desde el que está realizando
la instalación de CentOS Linux.

Introduzca el nombre o la dirección IP del sitio HTTP desde el que está instalando y
el nombre del directorio que contiene los archivos de instalación CentOS para su
arquitectura.

Particionamiento automático de discos

El particionamiento automático le permite tener control de los datos que se han


eliminado en su sistema. Tiene las siguientes opciones:

● Remover particiones de linux en dispositivos seleccionados y crear


disposición: seleccione esta opción para eliminar tan sólo las particiones
Linux (particiones creadas en una instalación Linux previa). No borrará el
resto de particiones que tenga en el disco(s) duro(s) (tal como VFAT o

23 Ing. Iván Ferreira


Instalación del sistema operativo CentOS Linux

particiones FAT32).

● Remover particiones en dispositivos seleccionados y crear


disposición: seleccione esta opción para eliminar todas las particiones de
su disco duro (esto incluye las particiones creadas por otros sistemas
operativos).

● Usar espacio disponible en dispositivos seleccionados y crear


disposición: seleccione esta opción para conservar los datos y las
particiones actuales, presumiendo que tiene suficiente espacio disponible en
los discos duros.

● Crear disposición personalizada: seleccione esta opción para crear las


particiones de manera personalizada.

Si desea verificar y realizar cambios en las particiones creadas con el


particionamiento automático, puede marcar la opción Revise y modifique la capa
de particiones.

Esquema de particionamiento recomendado

A no ser que tenga razones para hacerlo de otro modo, le recomendamos que cree
las siguientes particiones:

● Una partición /boot (100MB – 150MB) la partición montada sobre /boot


contiene el kernel del sistema operativo (que permitirá al sistema arrancar
CentOS Linux), junto a otros archivos utilizados para el proceso de arranque.
Debido a las limitaciones de la mayoría de las BIOS de los ordenadores, se
aconseja crear una partición pequeña para guardar estos archivos. Para la
mayoría de los usuarios, una partición de arranque de 100 MB es suficiente.

● Una partición swap Las particiones swap se usan para soportar la memoria
virtual. En otras palabras, los datos se escriben en la partición swap cuando
no hay suficiente RAM para almacenar los datos que su sistema está

Red Hat Certified Engineer 24


Instalación del sistema operativo CentOS Linux

procesando. El tamaño mínimo de la partición swap debería ser igual al de la


memoria RAM que tiene el sistema.

Hasta CentOS 2.1 existía una limitación del tamaño de la partición de swap
hasta 2 GB para cada espacio swap. Esto era debido a que el comando
mkswap no soportaba la creación de áreas de swap mayores a 2 GB. En
CentOS Enterprise Linux 3 y superior, el comando mkswap permite la
creación de particiones swap mayores a 2 GB.

CentOS Enterprise Linux 2.1 soporta hasta 32 particiones de 2 GB. Total 64


GB.CentOS Enterprise Linux 3 y superiores soportan particiones de swap
mas grandes y esta dado por el límite del tamaño del dispositivo de bloques.
CentOS Enterprise Linux tiene 1 TB como límite del tamaño de los
dispositivos de bloques, por tanto es 1 TB.

● Una partición root (6.0 GB) aquí es donde se ubica "/" (el directorio raíz).
En esta instalación, todos los archivos (excepto los almacenados en /boot)
se encuentran en la partición raíz. Una partición raíz 6.0 GB le permitirá
instalar todos los paquetes con suficiente espacio disponible para futuro
crecimiento.

● Una partición /home (Tamaño variable) Una partición independiente para


los directorios HOME de los usuarios es una buena practica, permitiendo
independizar el sistema de archivos raíz de los datos de usuarios, y también
permite especificar opciones de montaje adicionales para mayor control del
sistema de archivos (ej. nosuid, quota, etc).

● Una partición /var (Tamaño variable) Una partición independiente para el


directorio /var es una buena practica, permitiendo independizar el sistema
de archivos raíz de los datos de logs y spool, y también permite especificar
opciones de montaje adicionales para mayor control del sistema de archivos
(ej. nosuid, noexec, etc).

25 Ing. Iván Ferreira


Instalación del sistema operativo CentOS Linux

Configuración del gestor de arranque

El gestor de arranque es el primer software que se ejecuta cuando se arranca el


ordenador. Es responsable de la carga del kernel para el inicio del sistema
operativo. El GRUB (GRand Unified Bootloader) es el gestor de arranque por
defecto para Linux.

Si el sistema operativo ha sido instalado en un RAID por software, GRUB debe ser
instalado manualmente en el disco espejado.

Primer arranque

Durante el primer arranque del sistema operativo, deberá realizar ciertas


configuraciones adicionales básicas, tales como fecha y hora, creación de usuarios
regulares, prueba de tarjeta de sonido, configuración del cortafuegos, Kdump y
SELinux.

Configuración del cortafuegos

Un cortafuegos permite proteger al servidor de posibles ataques o accesos de


intrusos a servicios proporcionados por el equipo a través de la red. Es
recomendado que en esta etapa de la instalación del equipo deshabilite el firewall y
lo habilite posteriormente, una vez que todos los servicios hayan sido configurados
y probados.

Para detalles acerca de configuración de firewalls, infórmese acerca del curso “LE-
302 – Netfilter/IPTables”.

Configuración de Kdump

Kdump es un mecanismo de volcado del kernel en caso de fallo. Si el sistema se


cuelga, un archivo del kernel puede ser capturado utilizando kdump. La captura del
archivo de kernel puede ayudar a determinar las causas principales del falla en el
sistema. Tenga en cuenta que kdump requiere una porción de la memoria del
sistema que no podrá ser usada por ningún otro usuario.

Red Hat Certified Engineer 26


Instalación del sistema operativo CentOS Linux

Es recomendado que habilite Kdump en servidores de tal forma a tener la


información necesaria para diagnosticar problemas en caso de problemas con el
sistema.

Configuración de SELinux

SELinux proporciona un sistema flexible de control de acceso obligatorio


(mandatory access control, MAC) incorporado en el kernel. Bajo el Linux
estándar se utiliza el control de acceso a discreción (discretionary access control,
DAC), en el que un proceso o aplicación ejecutándose como un usuario (UID o
SUID) tiene los permisos y de ese usuario en los objetos, archivos, sockets y otros
procesos. Al ejecutar un kernel SELinux MAC se protege al sistema de
aplicaciones maliciosas o dañadas que pueden perjudicar o destruir el sistema.
SELinux define el acceso y los derechos de transición de cada usuario, aplicación,
proceso y archivo en el sistema.

Es recomendado que en esta etapa de la instalación del equipo deshabilite


SELinux y lo habilite únicamente si entiende las implicancias de ello. Para detalles
acerca de SELinux, infórmese acerca del curso “LE-301 – Seguridad Local”.

El archivo anaconda-ks.cfg

El programa de instalación de CentOS Linux también crea un archivo kickstart de


muestra basado en las opciones que seleccionó durante la instalación. Se escribe
al archivo /root/anaconda-ks.cfg. Debería ser capaz de modificarlo en
cualquier editor de texto o procesador de texto que pueda guardar archivos como
texto ASCII. También podrá usar la herramienta system-config-kickstart
para realizar modificaciones al archivo desde la GUI.

Este archivo puede ser utilizado para automatizar la instalación en otros equipos
utilizando el método Kickstart. Para detalles acerca de SELinux, infórmese acerca
del curso “LE-202 – Administración avanzada de servidores”.

27 Ing. Iván Ferreira


Instalación del sistema operativo CentOS Linux

Red Hat Certified Engineer 28


2
Administración del sistema de archivos
Administración del sistema de archivos

Administración del sistema de archivos

El sistema de archivos

Los sistemas de archivos (filesystem en inglés), estructuran la información


guardada en una unidad de almacenamiento (normalmente un disco duro de una
computadora), que luego será representara ya sea textual o gráficamente utilizando
un gestor de archivos. La mayoría de los sistemas operativos poseen su propio
sistema de archivos.

Una de los rasgos más importantes de Linux es su soporte para diferentes


sistemas de ficheros. Ésto lo hace muy flexible y bien capacitado para coexistir con
muchos otros sistemas operativos. Linux soporta los sistemas de ficheros; ext2,
ext3, minix, umsdos, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs and ufs,
ntfs, jfs, ReiserFS entre otros.

Un importante desarrollo tuvo lugar cuando se añadió en sistema de ficheros EXT


en Linux. El sistema de ficheros real se separó del sistema operativo y servicios del
sistema a favor de un interfaz conocido como el sistema de Ficheros Virtual, o VFS.

Red Hat Certified Engineer 30


Administración del sistema de archivos

VFS permite a Linux soportar muchos, incluso muy diferentes, sistemas de


ficheros, cada uno presentando un interfaz software común al VFS. Todos los
detalles del sistema de ficheros de Linux son traducidos mediante software de
forma que todo el sistema de ficheros parece idéntico al resto del kernel de Linux y
a los programas que se ejecutan en el sistema. La capa del sistema de Ficheros
Virtual de Linux permite al usuario montar de forma transparente diferentes
sistemas de ficheros al mismo tiempo. Por ejemplo, al ejecutar el comando mount
si el sistema de archivos a montar es ext3 se está utilizando una interfaz al
comando mount.ext3, y si el sistema de archivos a montar es FAT/FAT32 se está
utilizando una interfaz al comando mount.vfat.

Extended File System

El sistema de archivos Extended File System es el sistema de archivos por defecto


de Linux. Los archivos de almacenan en bloques de datos.

Estos bloques de datos son todos de la misma longitud y son definidos


opcionalmente durante la creación del sistema de archivos con el comando mkfs.

El tamaño de cada fichero se redondea hasta un numero entero de bloques. Si el


tamaño de bloque es 1024 bytes, entonces un fichero de 1025 bytes ocupará dos
bloques de 1024 bytes.

No todos los bloques del sistema de archivos contienen datos, algunos deben
usarse para mantener la información que describe la estructura del sistema de
ficheros.

El Extended File System define la topología del sistema de archivos describiendo


cada archivo del sistema con una estructura de datos conocida como inodo.

Un inodo describe que bloques ocupan los datos de un archivo y también los
permisos de acceso del fichero, las horas de modificación del fichero y el tipo del
fichero. Cada archivo en el sistema de archivos se describe por un único inodo y

31 Ing. Iván Ferreira


Administración del sistema de archivos

cada inodo tiene un único número que lo identifica. Los inodos del sistema de
ficheros se almacenan juntos en tablas de inodos.

En la siguiente figura se presenta la organización del sistema de archivos Extended


File System:

Grupos de bloques

El sistema de archivos Ext es dividido en grupos de bloques (Block Groups). Los


grupos de bloques reducen la fragmentación debido a que el kernel trata de manter
los bloques de datos que pertenecen a un archivo en el mismo grupo de bloques de
ser posible.

Cada grupo de bloques contiene la siguiente información:

● Una copia del Super Bloque

● Una copia del Descriptor de grupo de bloques

● Un mapa de bits de bloques de datos

● Un mapa de bits de inodos

● Una tabla de inodos

Red Hat Certified Engineer 32


Administración del sistema de archivos

● Bloques de datos

Como es posible observar en la figura anterior, el superbloque y los descriptores de


grupo son duplicados en cada grupo de bloques. Si una corrupción de datos ocurre
en el superbloque principal o descriptores de grupo del grupo de bloques 0, el
administrador puede ejecutar el comando fsck con la opción -b para utilizar
alguna otra copia del superbloque.

Super Bloque

El Super Bloque (Superblock) contiene una descripción del tamaño y forma base
del sistema de archivos.

Normalmente sólo se lee el Super Bloque del Grupo de Bloque 0 cuando se monta
el sistema de ficheros pero cada Grupo de Bloque contiene una copia duplicada en
caso de que se corrompa sistema de ficheros.

La información contenida en el Super Bloque puede ser consultada con el


comando:

dumpe2fs [-h] <dispositivo>

Entre otra información en el Super Bloque es posible encontrar:

● Número total de inodos en la partición.

● Identificador único del sistema de archivos (UUID).

● Tamaño de partición en bloques.

● Número reservado de bloques a procesos del root.

● Número de bloques total libres.

● Número de inodos total libres.

33 Ing. Iván Ferreira


Administración del sistema de archivos

● Número de 1 bloque usado en la partición.

● Tamaño bloque.

● Tamaño fragmento (No se usa).

● Número de bloques / Grupo-Bloque.

● Número de inodos / Grupo-Bloque.

● Hora y fecha del último montado del sistema de archivos.

● Contador de montajes.

● Número de operaciones de montado.

● Comportamiento ante errores del sistema de ficheros.

● Hora y fecha del último fsck.

● Bloques reservados para un UID.

● Bloques reservados para un GID.

● Tamaño de inodo.

● Número del Grupo de Bloques al cual pertenece el Super Bloque.

● Nombre del volumen.

● Ruta del último montaje.

Descriptor de grupo

El Descriptor de grupo (Block Group Descriptor) almacena la ubicación del mapa de


bits de bloques, mapa de bits de inodos y la tabla de inodos para cada grupo de

Red Hat Certified Engineer 34


Administración del sistema de archivos

bloques. Un mapa de bits es simplemente una lista de bits que describen que
bloques o inodos se encuentran en uso.

Mapa de bits de bloques

De manera a tener una contabilidad de los bloques usados en el sistema de


archivos se utiliza un mapa de bits (Block bitmap) que mantiene un registro de los
bloques que se encuentran en uso y aquellos que se encuentran libres.

Mapa de bits de inodos

Similar a los bloques, los inodos asignados a los archivos son contabilizados. Los
inodos almacenan toda la información acerca de un archivo. El mapa de bits de
inodos (Inode Bitmap) permite tener un registro de los inodos utilizados y liberados
cuando un archivo es borrado.

Tabla de inodos

La tabla de inodos es una arreglo que contiene la lista de inodos para ese grupo de
bloques en particular.

El inodo Extended File System

En el sistema de ficheros Ext, el inodo es el bloque de construcción básico; cada


fichero y directorio del sistema de ficheros es descrito por un y sólo un inodo. Los
inodos Ext para cada Grupo de Bloque se almacenan juntos en la table de inodos
con un mapa de bits que permite al sistema seguir la pista de inodos reservados y
libres.

35 Ing. Iván Ferreira


Administración del sistema de archivos

El inodo proporciona la siguiente información del archivo:

● Modo Esto mantiene dos partes de información; qué inodo describe y los
permisos que tienen los usuarios. Para Ext, un inodo puede describir un
ficheros, directorio, enlace simbólico, dispositivo de bloque, dispositivo de
caracter o FIFO.

● Propietario y grupo Los identificadores de usuario y grupo de los dueños

Red Hat Certified Engineer 36


Administración del sistema de archivos

de este fichero o directorio. Esto permite al sistema de ficheros aplicar


correctamente el tipo de acceso,

● Tamaño El tamaño en del fichero en bytes,

● Marcas de tiempo La hora en la que el inodo fue creado y la última hora en


que se modificó

● Contador de enlaces La cantidad de enlaces con las que cuenta el archivo

● Bloques de datos Punteros a los bloques que contienen los datos que este
inodo describe. Los primero doce bloques contienen punteros directos a los
bloques de datos. Si un archivo es más grande, se utilizan bloques
indirectos, doble indirecto y triple indirecto para lograr referenciar a mayor
cantidad de bloques de datos.

El sistema de archivos EXT3

El sistema de archivos Ext3 es el sistema de archivos por defecto de Linux y es


básicamente una versión mejorada del Ext2. Las mejoras introducidas
proporcionan las siguientes ventajas:

● Disponibilidad Tras un corte eléctrico o una caída inesperada del sistema


(también se denomina cierre no limpio del sistema), se debe comprobar con
el programa e2fsck cada sistema de archivos ext2 montado en la máquina
para ver si es consistente. El proceso de comprobación lleva mucho tiempo
y puede prolongar el tiempo de arranque del sistema de un modo
significativo, especialmente si hay grandes volúmenes que contienen un
elevado número de archivos. Durante este proceso, no se puede acceder a
los datos de los volúmenes.

Con la característica journaling del sistema de archivos ext3 ya no es


necesario realizar este tipo de comprobación en el sistema de archivos
después de un cierre no limpio del sistema. En el sistema ext3, únicamente

37 Ing. Iván Ferreira


Administración del sistema de archivos

se realiza una comprobación de consistencia en los casos puntuales en los


que se producen determinados errores de hardware, como, por ejemplo,
fallos en el disco duro. El tiempo empleado para recuperar un sistema de
archivos ext3 tras un cierre no limpio del sistema no depende del tamaño del
sistema de archivos ni del número de archivos, sino del tamaño del journal
(diario), utilizado para mantener la consistencia en el sistema. Por defecto, la
recuperación del tamaño del "journal" tarda alrededor de un segundo, según
la velocidad del hardware.

● Integridad de los datos El sistema de archivos ext3 proporciona una


integridad superior de los datos si se produce un cierre no limpio del
sistema. El sistema de archivos ext3 le permite seleccionar el tipo y el nivel
de protección de los datos. Por defecto, CentOS Linux configura los
volúmenes ext3 para que el nivel de consistencia de los datos sea elevado
en relación con el estado del sistema de archivos.

● Velocidad El sistema de archivos ext3, aparte de permitir escribir datos más


de una vez, en la mayoría de los casos tiene un rendimiento superior al que
proporciona ext2 porque los "journals" de ext3 optimizan el movimiento de
los cabezales de los discos duros. Se pueden seleccionar tres modos de
journaling para optimizar la velocidad, pero, como contrapartida, la integridad
de los datos se verá afectada.

● Fácil transición La migración de ext2 a ext3 es muy sencilla y se pueden


aprovechar las ventajas de un sólido sistema de archivos con journaling sin
tener que volver a dar formato al sistema, simplemente con el comando
tune2fs.

En Ext3, el tamaño máximo un un archivo es 2 TB y del sistema de archivos 8 TB.

Red Hat Certified Engineer 38


Administración del sistema de archivos

Gestión de particiones

Un disco puede dividirse en diferentes particiones. Se puede acceder a cada


partición como si fuera un disco separado. Además cada partición tiene un tipo que
se usa para indicar como esta almacenada la información en la partición.

En el primer sector del disco está el registro de arranque maestro junto a la tabla de
particiones. El registro de arranque (como su nombre indica) se usa para arrancar
el sistema. La tabla de particiones contiene información acerca del lugar y el
tamaño de cada partición. Existen dos clases de particiones:

● Primarias: Las más usadas, debido al límite del tamaño de la tabla de


particiones, sólo pueden tenerse hasta cuatro particiones primarias en un
disco.

● Extendidas: Una partición extendida no tiene datos ella misma; en su lugar,


actúa como "soporte" de particiones lógicas; solo puede tenerse una
partición extendida por disco y deberá ocupar todo el espacio restante
disponible en el disco.

Es posible crear hasta 4 particiones en una unidad de disco combinando


particiones primarias y extendidas. La partición extendida debería ser la última
partición en ser creada y deberá utilizar todo el espacio disponible en el disco. Para
poder crear más de cuatro particiones, se utiliza el espacio en la partición extendida
para crear unidades lógicas. Se pueden crear cualquier número de particiones
lógicas de un tamaño inferior o igual a la partición extendida.

Numeración de particiones

Cada partición en Linux es representada por un número. Cada partición primaria y


extendida se numera consecutivamente a partir del número uno. Las unidades
lógicas siempre comienzan a enumerarse consecutivamente desde el número
cinco. Por ejemplo, un disco con 4 particiones y 4 unidades lógicas tendría la
siguiente disposición:

39 Ing. Iván Ferreira


Administración del sistema de archivos

Usando fdisk

El comando fdisk es utilizado tradicionalmente para gestionar las particiones en


Linux. Este comando permite configurar las particiones de un disco por medio de la
línea de comandos. Existen opciones que deben ser conocidas a modo de operar
el comando fdisk. La sintaxis es la siguiente:

fdisk [-l] <dispositivo>

La opción -l indica a fdisk que simplemente muestre la tabla de particiones del


dispositivo.

Una vez iniciado fdisk, puede utilizar los siguientes comandos:

Comando Descripción
m Manual - Muestra la ayuda.
p Print - Muestra la tabla de particiones actual.
n New - Crear una nueva partición. Primero le solicitará el número de
partición, luego el cilindro de inicio y final, el cilindro de inicio es
recomendado que acepte el propuesto y el cilindro final puede
especificar de la forma +(N)M, lo cual indica al comando fdisk que
cree una partición de N MB.
d Delete - Borrar una partición. Le solicitará el número de la partición
que desea borrar.
t Toogle – Cambia el tipo de partición. Deberá realizar este
procedimiento por ejemplo para indicar que la partición creada será

Red Hat Certified Engineer 40


Administración del sistema de archivos

Comando Descripción
de tipo swap.
w Write - Guarda los cambios en la tabla de particiones de disco.
q Quit - Sale sin guardar los cambios en la tabla de particiones del
disco.
a Active - Activa o desactiva una partición para el arranque. La
partición activa es aquella que contiene el cargador de arranque. Si
el cargador de arranque está en el MBR, la partición activa será la
primera.

El siguiente ejemplo mustra el uso del comando fdisk para listar la tabla de
particiones del primer disco y salir sin realizar cambios:

# fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 255 heads, 63 sectors, 784 cylinders
Units = cylinders of 16065 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/sda1 * 1 1 26 208813+ 83 Linux native
/dev/sda2 27 27 784 6088635 5 Extended
/dev/sda5 27 27 645 4972086 83 Linux native
/dev/sda6 646 646 776 1052226 83 Linux native
/dev/sda7 777 777 784 64228+ 82 Linux swap
Command (m for help): q

Creación del sistema de archivos

Una vez creada la partición se debe crear el sistema de archivos en ella, para ello
use el comando mkfs. La sintaxis del comando es como sigue:

mkfs -t tipo [opciones] dispositivo

Ejemplo: Para crear un sistema de archivos en la primera partición del primer disco
ejecute el comando:

# mkfs -t ext3 /dev/sda1

41 Ing. Iván Ferreira


Administración del sistema de archivos

Ajustando parámetros del sistema de archivos ext2/ext3

El comando tune2fs es usado para modificar parámetros del sistema de archivos


ext2/ext3. La sintaxis es la siguiente:

tune2fs [opciones] filesystem

Las opciones mas comunes para el comando tune2fs son:

Opción Descripción
-c Ajusta el contador de montaje máximo entre verificaciones del
sistema de archivos. Si es 0 se deshabilita esta opción.
-i Ajusta el intervalo de tiempo entre verificaciones, por defecto cada 6
meses se realizará una verificación del sistema de archivos al
momento de montado.
-j Agrega un diario (journal) convirtiendo un sistema de archivos ext2
en ext3.
-L Establece una etiqueta para el volúmen.

-m Especifica el porcentaje de espacio reservado en el sistema de


archivos para el usuario root. Este espacio permite que el sistema
de archivos se llene por completo y el usuario root pueda realizar
tareas de recuperación.

A continuación se presentan algunos ejemplos:

Para migrar un filesystem de tipo ext2 a ext3, sin destruir los datos, ejecute el
siguiente comando:

# tune2fs -j /dev/sda1

# tune2fs -c0 -i0 /dev/sda1

Para mostrar los parámetros actuales del sistema de archivos utilice el comando:

dumpe2fs [-h] dispositivo

Red Hat Certified Engineer 42


Administración del sistema de archivos

Montado de sistemas de archivos

Las particiones de los discos en Linux se montan en directorios tales como /,


/home y /usr. El sistema tiene un archivo llamado /etc/fstab en el cual se
especifican dónde y en que forma se montan los diferentes dispositivos. Cada línea
en este fichero describe un dispositivo, indicando los siguientes aspectos para cada
uno:

● Nombre del dispositivo o etiqueta: Es posible montar un sistema de


archivos por medio del nombre del dispositivo o la etiqueta definida para el
sistema de archivos, por ejemplo /dev/hda1, /dev/sdc1, /dev/fd0,
LABEL=/home, LABEL=/home, etc.

Actualmente para cada dispositivo con sistema de ficheros ext3 en lugar de


especificar su nombre en el fichero fstab se puede indicar una etiqueta o
identificador asociado. La forma utilizada es LABEL=<etiqueta> o
UUID=<uuid>. Esta posibilidad hace más robusta la configuración ante la
realización de cambios en los discos duros ya sea porque se incluyan
nuevos o se reordenen los existentes. Para ver o cambiar la etiqueta de un
dispositivo se puede emplear el comando e2label.

● Directorio donde se monta: La ruta al directorio donde será montado el


dispositivo, por ejemplo /, /home, /var, etc.

● Tipo de sistema de archivos: Por ejemplo ext3, vfat, nfs, swap,


iso9660, auto, etc.

● Opciones de montaje: Las opciones con la que se montará el sistema de


archivos, por ejemplo ro, rw, exec, auto, user, etc.

● Dos valores númericos: el primero toma los valores 0 ó 1 indicando si al


dispositivo se le hará dump o no, esta opción es obsoleta. El segundo
número expresa la prioridad que tiene el dispositivo cuando se verifica la

43 Ing. Iván Ferreira


Administración del sistema de archivos

integridad del sistema de archivos durante el inicio del sistema.

Las opciones de montaje son numerosas. Las más usadas se listan a continuación:

Opción Descripción
auto Indica que el dispositivo se monta siempre que se inicie el sistema.
La opuesta es noauto.
rw Indica que el dispositivo se monta con permisos de lectura y
escritura.
ro Indica que el dispositivo se monta con permisos de lectura
solamente.
owner Indica que el primer usuario distinto de root conectado al sistema
localmente tiene derechos a montar y desmontar el dispositivo (se
adueña de este).
user Indica que cualquier usuario puede montar y solo el mismo usuario
podrá desmontar el dispositivo. La opción opuesta es nouser.
users Indica que cualquier usuario puede montar y cualquiera también,
puede desmontar el dispositivo.
suid Indica que el permiso “s” tenga efecto para los ejecutables presentes
en el dispositivo. La opción opuesta es nosuid.
exec Indica que los binarios ejecutables almacenados en el dispositivo se
pueden ejecutar. La opción opuesta es noexec.
async Expresa que todas las operaciones de entrada y salida se hacen de
forma asíncrona, o sea, no necesariamente en el momento en que
se invocan. La opción opuesta es sync.
dev Indica que se interprete como tal a los dispositivos especiales de
bloques y de caracteres presentes en el dispositivo. La opción
opuesta es nodev.
defaults es una opción equivalente a la unión de rw, suid, dev, exec, auto,
nouser y async.

Algunos ejemplos de líneas en el fichero /etc/fstab son:

LABEL=/ / ext2 defaults 1 1


/dev/sda7 /home ext3 defaults 1 2
/dev/cdrom /media/cdrom iso9660 noauto,owner,ro 0 0
/dev/sdb1 /media/usbdisk auto noauto,owner 0 0
/dev/sda2 swap swap defaults 0 0
/dev/sdc1 /d0 ext3 ro,noexec,owner,noauto 1 0

Red Hat Certified Engineer 44


Administración del sistema de archivos

Para montar y desmontar los dispositivos se emplean los comandos mount y


umount respectivamente. Estos mantienen una lista de los dispositivos montados
en el archivo /etc/mtab.

La sintaxis del comando mount es la siguiente:

mount [opciones] [dispositivo] [punto_montaje]

umount [opciones] <punto_montaje>|<dispositivo>

Algunas opciones comúnmente utilizadas son:

Opción Descripción
-a En el caso de mount monta todos los dispositivos que
tienen la opción auto en el fichero fstab, y para umount
desmonta todo lo que está en el fichero /etc/mtab.
-t <tipo> Indica el tipo de sistema de archivos a montar.
-o <opciones> Especifica las opciones de montaje (separadas por comas).

Cuando se especifican en el fichero fstab las características del montaje de un


dispositivo, para montarlo no es necesario indicarlo todo, basta con poner el
nombre del dispositivo o el directorio donde se monta por defecto.

A continuación se presentan algunos ejemplos:

El siguiente comando monta todos los dispositivos con sistemas de archivos ext3 y
con la opción auto en el fichero /etc/fstab

# mount -a -t ext3

El siguiente comando monta un pen drive en el directorio /media/usbdisk

# mount /dev/sdb1 /media/usbdisk

El siguiente comando monta el el dispositivo de CD/DVD-ROM

45 Ing. Iván Ferreira


Administración del sistema de archivos

# mount -o ro /dev/cdrom /media/cdrom

El siguiente comando desmonta el cdrom

# umount /media/cdrom

Siempre que un dispositivo esté siendo utilizado por el sistema no se podrá


desmontar. Este emitirá un mensaje de error como en el siguiente ejemplo:

# umount /media/cdrom
umount: /media/cdrom: device is busy

Un dispositivo puede estar ocupado por el simple hecho de tener posicionado un


shell en el directorio donde se montó, haber lanzado un ejecutable en segundo
plano desde ese directorio, o haber montado otro dispositivo en un subdirectorio del
mismo. Para lograr el objetivo será necesario eliminar todos estos casos.

Para identificar si un sistema de archivos está siendo utilizado por algún proceso,
ejecute el comando fuser o el comando lsof.

Ejemplo de la adición de un disco con sistema de archivos ext3

Inicialmente debe particionar el disco, en este ejemplo se eliminará la partición


existente y creará una partición primaria de 2GB y una partición extendida con 2
unidades lógicas de 1GB.

# fdisk /dev/sdb

El número de cilindros para este disco está establecido en 1940.


No hay nada malo en ello, pero es mayor que 1024, y en algunos casos
podría causar problemas con:
1) software que funciona en el inicio (p.ej. versiones antiguas de LILO)
2) software de arranque o particionamiento de otros sistemas operativos
(p.ej. FDISK de DOS, FDISK de OS/2)

Orden (m para obtener ayuda): p

Disco /dev/sdb: 15.0 GB, 15020457984 bytes


240 cabezas, 63 sectores/pista, 1940 cilindros
Unidades = cilindros de 15120 * 512 = 7741440 bytes

Red Hat Certified Engineer 46


Administración del sistema de archivos

Disposit. Inicio Principio Fin Bloques Id Sistema


/dev/sdb1 1 555 4195768+ b Win95 FAT32

Orden (m para obtener ayuda): d


Se ha seleccionado la partición 1

Orden (m para obtener ayuda): p

Disco /dev/sdb: 15.0 GB, 15020457984 bytes


240 cabezas, 63 sectores/pista, 1940 cilindros
Unidades = cilindros de 15120 * 512 = 7741440 bytes

Disposit. Inicio Principio Fin Bloques Id Sistema

Orden (m para obtener ayuda): n


Acción de la orden
e Partición extendida
p Partición primaria (1-4)
p
Número de partición (1-4): 1
Primer cilindro (1-1940, valor predeterminado 1): [ENTER]
Último cilindro o +tamaño o +tamañoM o +tamañoK (1-1940, valor predeterminado
1940): +2048M

Orden (m para obtener ayuda): n


Acción de la orden
e Partición extendida
p Partición primaria (1-4)
e
Número de partición (1-4): 2
Primer cilindro (267-1940, valor predeterminado 267): [ENTER]
Último cilindro o +tamaño o +tamañoM o +tamañoK (267-1940, valor predeterminado
1940): [ENTER]

Orden (m para obtener ayuda): p

Disco /dev/sdb: 15.0 GB, 15020457984 bytes


240 cabezas, 63 sectores/pista, 1940 cilindros
Unidades = cilindros de 15120 * 512 = 7741440 bytes

Disposit. Inicio Principio Fin Bloques Id Sistema


/dev/sdb1 1 266 2010928+ 83 Linux
/dev/sdb2 267 1940 12655440 5 Extendida

Orden (m para obtener ayuda): n


Acción de la orden
l Partición lógica (5 o superior)
p Partición primaria (1-4)
l
Primer cilindro (267-1940, valor predeterminado 267): [ENTER]
Último cilindro o +tamaño o +tamañoM o +tamañoK (267-1940, valor predeterminado

47 Ing. Iván Ferreira


Administración del sistema de archivos

1940): +1024M

Orden (m para obtener ayuda): n


Acción de la orden
l Partición lógica (5 o superior)
p Partición primaria (1-4)
l
Primer cilindro (400-1940, valor predeterminado 400): [ENTER]
Último cilindro o +tamaño o +tamañoM o +tamañoK (400-1940, valor predeterminado
1940): +1024M

Orden (m para obtener ayuda): p

Disco /dev/sdb: 15.0 GB, 15020457984 bytes


240 cabezas, 63 sectores/pista, 1940 cilindros
Unidades = cilindros de 15120 * 512 = 7741440 bytes

Disposit. Inicio Principio Fin Bloques Id Sistema


/dev/sdb1 1 266 2010928+ 83 Linux
/dev/sdb2 267 1940 12655440 5 Extendida
/dev/sdb5 267 399 1005448+ 83 Linux
/dev/sdb6 400 532 1005448+ 83 Linux

Orden (m para obtener ayuda): w


¡Se ha modificado la tabla de particiones!

Llamando a ioctl() para volver a leer la tabla de particiones.


Se están sincronizando los discos.

Crear el sistema de archivos.

# mkfs -t ext3 /dev/sdb1

mke2fs 1.34 (25-Jul-2003)


Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
251392 inodes, 502732 blocks
25136 blocks (5.00%) reserved for the super user
First data block=0
16 block groups
32768 blocks per group, 32768 fragments per group
15712 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912

Writing inode tables: done


Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

Red Hat Certified Engineer 48


Administración del sistema de archivos

This filesystem will be automatically checked every 32 mounts or


180 days, whichever comes first. Use tune2fs -c or -i to override.

Repita el comando para cada una de las particiones primarias o unidades lógicas
de tipo Linux (83) creadas.

Ajustar los parámetros para el sistema de archivos creado.

# tune2fs -c0 -i0 /dev/sdb1


tune2fs 1.34 (25-Jul-2003)
Setting maximal mount count to -1
Setting interval between check 0 seconds
Setting reserved blocks percentage to 0 (0 blocks)

Repita el comando para cada uno de los sistemas de archivos ext3 creados.

Creación de los puntos de montaje para cada sistema de archivos.

# mkdir /d0
# mkdir /d1
# mkdir /d2

Seleccione el nombre que desee para el directorio el cual será el punto de montaje.
No es requisito que el directorio se encuentre en la raíz del sistema.

Edite el archivo /etc/fstab para el montado al inicio de los sistemas de archivos.

# vi /etc/fstab

/dev/sdb1 /d0 ext3 defaults 0 0


/dev/sdb2 /d1 ext3 defaults 0 0
/dev/sdb3 /d2 ext3 defaults 0 0

Montado de los sistemas de archivos.

# mount /d0
# mount /d1
# mount /d2

Verificación y reparación del sistema de archivos ext2/ext3

El comando fsck permite hacer una verificación y reparación del sistema de

49 Ing. Iván Ferreira


Administración del sistema de archivos

archivos ext2/ext3. Si el sistema de archivos es ext3, fsck normalmente aplicará el


journal y terminará.

El comando fsck verificará:

● Que todos los bloques sean referenciados en al menos una lista, ninguno se
encuentre duplicado en una lista o sea referenciado por más de una lista.

● Que un inodo utilizado tenga una entrada en un directorio, y que los


directorios no referencien a inodos libres.

● Que el tamaño del archivo y la cantidad de bloques que ocupa concuerden.

El comando fsck no realiza una verificación de la superficie del disco duro, es


decir, no buscará bloques defectuosos que no puedan ser leídos o escritos. Sin
embargo, puede instruirse al comando fsck que utilice el comando badblocks
para actualizar la tabla de bloques dañados con la opción -c. Nunca es requerido
ejecutar badblocks sobre discos SCSI.

La sintaxis del comando fsck es la siguiente:

fsck [opciones] [dispositivo]

Entre las opciones más comunes se encuentran:

Opción Descripción
-s Serializar operaciones. Es útil para cuando se realizan
verificaciones múltiples.
-A ntenta verificar todos los sistemas de archivos definidos en el
/etc/fstab.
-C Despliega una barra de progreso para aquellos sistemas de
archivos que están siendo verificados.
-y Responder Si a todas las preguntas.
-c Utiliza el comando badblocks para verificar la superficie del disco.
-b Permite la recuperación del superbloque a partir de una copia

Red Hat Certified Engineer 50


Administración del sistema de archivos

Opción Descripción
existente en el grupo de bloques indicado.

Sólo el usuario root puede ejecutar el comando fsck y debe ser corrido sobre
sistemas de archivos que no estén montados, de lo contrario, puede provocar
corrupción de datos. Para verificar el sistema de archivos root “/”, deberá montarlo
como sólo lectura.

El fsck devuelve los siguientes códigos de salida (exit code):

Código Descripción
0 Sin errores
1 Errores corregidos
2 El sistema debería ser reiniciado
4 Errores de sistemas de archivos no corregidos
8 Error operacional
16 Error de sintaxis
32 Cancelado por petición del usuario
128 Error de bibliotecas compartidas

Los códigos de error pueden ser consultados ejecutando el comando man fsck.

Gestión del espacio Swap

El Espacio swap en Linux es usado cuando la cantidad de memoria física (RAM)


está llena. Si el sistema necesita más recursos de memoria y la memoria física está
llena, las páginas inactivas de la memoria se mueven al espacio swap. Mientras
que el espacio swap puede ser de ayuda para las máquinas con poca memoria
RAM, no debería considerarse como algo que pueda sustituir a más RAM. El
espacio Swap se encuentra en discos duros, que tienen un tiempo de acceso más
lento que la memoria física.

51 Ing. Iván Ferreira


Administración del sistema de archivos

El espacio Swap puede ser una partición swap dedicada (recomendable), un


archivo swap o una combinación de particiones y archivos swap.

Añadir el espacio Swap

A veces es necesario añadir más espacio swap después de la instalación. Por


ejemplo, puede actualizar la cantidad de RAM en su sistema de 1 GB a 2 GB, pero
hay tan sólo 1 GB de espacio swap. Sería conveniente aumentar la cantidad de
espacio swap hasta 2 GB sobre todo si lleva a cabo operaciones de uso intensivo
de memoria o si ejecuta aplicaciones que requieran gran cantidad de memoria.

Tiene dos opciones: añadir una partición swap o un archivo swap. Se recomienda
que añada una partición swap, pero a veces no resulta fácil si no cuenta con
espacio libre disponible.

Para añadir una partición swap ( asumiendo que /dev/sdb2 es la partición que
quiere agregar):

El disco duro no puede estar en uso (no puede tener particiones montadas, y no se
puede tener activado el espacio swap)

Cree la partición swap usando fdisk. Por ejemplo

# fdisk /dev/sdb

Cree la partición (n), cambie el tipo de sistema de archivos a linux swap (t) ID 82 y
salga guardando las modificaciones (w)

Ahora que tiene la partición swap, use el comando mkswap para configurar la
partición swap. En el indicador de comandos shell como root, escriba lo siguiente:

# mkswap /dev/sdb2

Para activar la partición swap inmediatamente, escriba el comando siguiente:

Red Hat Certified Engineer 52


Administración del sistema de archivos

# swapon /dev/sdb2

Para activarlo cuando se arranca, edite /etc/fstab para incluir:

/dev/sdb2 swap swap defaults 0 0

La próxima vez que se arranque el sistema, activará la nueva partición swap.

Después de añadir la nueva partición swap y de haberla activado, asegúrese de


que está activa visualizando el resultado del comando cat /proc/swaps, free
o swapon -s.

Añadir un archivo swap

Para añadir un archivo en disco como área de swap en lugar de una partición de
disco, primero determine el tamaño del nuevo archivo swap.

En el intérprete de comandos, como root, cree un archivo lleno de ceros, indicando


un tamaño de bloque de 1 MB (1024k). El valor de count indica cuantas veces 1
MB serán escritos, para el siguiente ejemplo, 1024 veces 1 MB representan a 1
GB:

# dd if=/dev/zero of=/d0/swapfile bs=1024k count=1024

Configure el archivo swap con el comando:

# mkswap /d0/swapfile

Para activar el archivo swap inmediatamente pero no automáticamente cuando se


arranca:

# swapon /d0/swapfile

5. Para activarlo cuando se arranca, edite /etc/fstab para incluir:

/d0/swapfile swap swap defaults 0 0

La próxima vez que se arranque el sistema, se activará el nuevo archivo swap.

53 Ing. Iván Ferreira


Administración del sistema de archivos

Después de haber añadido el nuevo archivo swap y de haberlo activado, asegúrese


de que está activado visualizando el resultado del comando cat /proc/swaps,
free o swapon -s.

Utilización de autofs

Autofs controla la operación de los demonios automount, normalmente es invocado


al inicio.

Autofs consultará el archivo de configuración /etc/auto.master para encontrar


puntos de montaje del sistema. El auto.master define los puntos de montaje y
apunta a otro archivo describiendo los sistemas de archivos a ser montados en ese
punto de montaje.

El formato del archivo /etc/auto.master es el siguiente:

/punto_montaje mapa opciones

El primer campo es el punto de montaje a ser monitoreado, el segundo campo es el


archivo mapa a consultar para este punto de montaje, y el tercer campo especifica
las opciones de montaje para todos los sistemas de archivos en ese punto de
montaje.

Ejemplo del archivo /etc/auto.master:

# /misc /etc/auto.misc --timeout=60

El directorio misc será monitoreado y se montarán automáticamente los sistemas


de archivos especificados en el archivo mapa /etc/auto.misc y se desmontarán
luego de sesenta segundos.

El formato del archivo mapa es el siguiente:

clave [-opciones] ubicación

Red Hat Certified Engineer 54


Administración del sistema de archivos

Campo Descripción
clave Subdirectorio dentro del directorio especificado en
/etc/auto.master que actuarán como punto de montaje para el
sistema de archivos especificado.
opciones Opciones de montado del sistema de archivos.
ubicación De dónde los sistemas de archivos serán montados.

Ejemplo del archivo mapa /etc/auto.misc

cdrom -fstype=iso9660,ro :/dev/cdrom


usbdisk -fstype=auto :/dev/sdb1

De la configuración de los archivos /etc/auto.master y /etc/auto.misc


obtenemos que el directorio /misc será monitoreado. Si se realiza una solicitud al
directorio /misc/cdrom se montará automáticamente el dispositivo /dev/cdrom
como sólo lectura en ese directorio y se desmontará luego de sesenta segundos. Si
se realiza una solicitud al directorio /misc/usbdisk se montará automáticamente
el dispositivo /dev/sdb1 en ese directorio.

55 Ing. Iván Ferreira


3
Proceso de arranque, inicio y cierre del sistema
Proceso de arranque, inicio y cierre del sistema

Proceso de arranque, inicio y cierre del sistema

Una de las características más importantes y poderosas de CentOS Linux es el


método abierto y configurable para el inicio y cierre del sistema operativo. Los
usuarios son libres de configurar muchos aspectos del proceso de arranque,
incluyendo qué programas se lanzarán al momento de arranque. De forma
parecida, el cierre del sistema finaliza los procesos de forma organizada y
configurable, aunque la personalización de este proceso casi nunca es necesaria.

Entender el funcionamiento del proceso de arranque y cierre no solo le permitirá


personalizar fácilmente CentOS Linux, sino que también le facilitará resolver
problemas relacionados con el inicio y el cierre del sistema.

Proceso de arranque

A continuación obtendrá las etapas básicas del proceso de arranque para un


sistema x86:

● La BIOS del sistema comprueba y lanza la primera etapa del gestor de


arranque del MBR del disco duro primario.

● La primera etapa del gestor de arranque se autocarga en memoria y lanza la


segunda etapa del gestor de arranque desde la partición /boot/.

● La segunda etapa del gestor de arranque carga el kernel en memoria, lo cual


en su momento carga los módulos necesarios y monta la partición root para
sólo-lectura.

● El kernel transfiere el control del proceso de arranque al programa


/sbin/init.

57 Ing. Iván Ferreira


Proceso de arranque, inicio y cierre del sistema

● El programa /sbin/init carga todos los servicios y herramientas de


espacio del usuario y monta todas las particiones listadas en /etc/fstab.

● El usuario se presenta con un intérprete de comandos de registro para el


sistema Linux apenas arrancado.

Ya que la configuración del proceso de arranque es más común que la del proceso
de cierre, en el resto de la sección se discutirá el modo en el que el proceso de
arranque funciona y cómo se puede personalizar para satisfacer sus necesidades.

Vista detallada del proceso de arranque

El inicio del proceso de arranque varía dependiendo de la plataforma de hardware


usada. Sin embargo, una vez que se encuentra el kernel y se carga el sistema, el
proceso de arranque por defecto es idéntico a través de todas las arquitecturas.
Esta sección se basa en la arquitectura x86.

El BIOS

Cuando un ordenador x86 se carga, el procesador busca al final de la memoria del


sistema por Basic Input/Output System o el programa BIOS y lo ejecuta. El BIOS
controla no sólo el primer paso del proceso de arranque, sino que también
proporciona una interfaz de bajo nivel para dispositivos periféricos. Por este motivo
se escribe tan sólo en modo lectura, memoria permanente y está siempre
disponible para el uso.

Red Hat Certified Engineer 58


Proceso de arranque, inicio y cierre del sistema

Otras plataformas usan programas diferentes para ejecutar tareas a bajo nivel
equivalentes a aquellas del BIOS en el sistema x86. Por ejemplo, los ordenadores
basados en Itanium usan Interfaz de Firmware extensible (EFI) Shell.

Una vez que se haya cargado, la BIOS chequea los periféricos y localiza un
dispositivo con el que arrancar el sistema. Habitualmente, en primer lugar
comprueba cualquier disquete y unidades de CD-ROM presente por los medios de
arranque, y a continuación si esto falla, echa un vistazo a las unidades de disco
duro del sistema. El orden de las unidades necesario para arrancar puede ser
controlado con una configuración del BIOS. El BIOS carga en memoria cualquier
programa que resida en el primer sector de este dispositivo, llamado Master Boot
Record o MBR. La MBR sólo tiene 512 bytes de tamaño y contiene las
instrucciones de código de máquina para el arranque del equipo, llama un gestor
de arranque así como también la tabla de particiones. Una vez que el BIOS haya
encontrado y cargado el gestor de arranque en memoria, le deja el control del
proceso de arranque a éste.

El gestor de arranque

Esta sección revisa los gestores de arranque para la plataforma x86. Dependiendo
de la arquitectura del sistema, el proceso de arranque diferirá ligeramente.

Bajo CentOS Linux están disponibles dos gestores de arranque: GRUB o ELILO
para plataformas Itanium.

Los gestores de arranque de Linux para la plataforma x86 se dividen en dos


etapas. La primera es un código binario de máquina pequeña en el MBR. Su única
función es la de localizar el gestor de arranque de la segunda etapa y cargar la
primera parte de éste en memoria.

GRUB es el gestor de arranque más nuevo y tiene la ventaja de ser capaz de leer
particiones ext2 y ext3 y cargar su archivo de configuración
/boot/grub/grub.conf al momento de arranque.

59 Ing. Iván Ferreira


Proceso de arranque, inicio y cierre del sistema

Una vez que el gestor de arranque de la segunda etapa está en memoria, presenta
al usuario con la pantalla inicial, gráfica de CentOS Linux mostrando los diferentes
sistemas operativos o kernels que para los que ha sido configurado para arrancar.
En esta pantalla el usuario puede usar las flechas de dirección para escoger el
sistema operativo o kernel con el que desea arrancar y presione la tecla [ENTER].
Si no se presiona ninguna tecla, el gestor de arranque carga la selección
predeterminada luego de un período de tiempo de espera (también configurable).

Una vez que el gestor de arranque de la segunda etapa haya determinado qué
kernel arrancar, localizará el binario del kernel correspondiente en el directorio
/boot/. El kernel binario es llamado usando el siguiente formato
/boot/vmlinuz-<kernel-version> (donde <kernel-version>
corresponde a la versión del kernel especificada en las configuraciones del gestor
de arranque).

El gestor de arranque luego coloca la imagen apropiada de initial RAM disk,


conocida como initrd, en la memoria. El initrd es usado por el kernel para cargar
controladores necesarios para arrancar el sistema. Esto es muy importante si
posee unidades de disco duro SCSI o si está usando el sistema de ficheros ext3.

Una vez que el kernel y la imagen initrd se cargan en memoria, el gestor de


arranque controla el proceso de arranque para el kernel.

Gestores de arranque para otras arquitecturas

Una vez que el kernel de CentOS Linux arranca y pasa el proceso de arranque al
comando init, los mismos acontecimientos suceden en cada arquitectura
exactamente en el mismo modo. La única diferencia entre el proceso de arranque
de cada arquitectura está en la aplicación que se usa para encontrar y cargar el
kernel.

El kernel

Cuando el kernel se carga, inmediatamente se inicializa y configura la memoria del

Red Hat Certified Engineer 60


Proceso de arranque, inicio y cierre del sistema

ordenador y los diferentes hardware conectado al sistema, incluyendo


procesadores, subsistemas de entrada/salida y dispositivos de almacenamiento. A
continuación buscará la imagen initrd en una ubicación predeterminada en
memoria, la descomprimirá, la montará y cargará todos los controladores
necesarios. A continuación inicializa los dispositivos virtuales relacionados con el
sistema de ficheros, tal como LVM o software RAID antes de desmontar la imagen
del disco initrd y liberar toda la memoria que la imagen del disco ocupó
anteriormente.

El kernel luego crea un dispositivo root, monta la partición root como sólo lectura y
libera cualquier memoria no utilizada.

Llegados a este punto, el kernel está cargado en memoria y operativo. Sin


embargo, como no hay aplicaciones de usuario que permitan la entrada
significativa de datos al sistema, no se puede hacer mucho más.

Para configurar el entorno de usuario, el kernel inicia el programa /sbin/init.

Programa /sbin/init

El programa /sbin/init (también llamado init) coordina el resto del proceso de


arranque y configura el ambiente del usuario.

Cuando el comando init arranca, se vuelve el padre o abuelo de todos los


procesos que comienzan automáticamente en el sistema CentOS Linux. Primero,
ejecuta el script /etc/rc.d/rc.sysinit, que establece la ruta a otros
programas, activa el swap, controla los sistemas de archivos y y se encarga de
todo lo que el sistema necesita tener hecho al momento de la inicialización.

El comando init luego ejecuta el script /etc/inittab, que describe cómo el


sistema debería configurarse en cada nivel de ejecución de SysV init. Entre otras
cosas, /etc/inittab configura el nivel de ejecución por defecto y establece que
/sbin/update debería de ejecutarse cuando se arranque un nivel de ejecución

61 Ing. Iván Ferreira


Proceso de arranque, inicio y cierre del sistema

en concreto.

A continuación, el comando init configura la librería de función de fuente,


/etc/rc.d/init.d/functions, para el sistema. Esto indica el modo en que
empezar o matar un programa y cómo determinar el PID del programa.

El programa init inicia todos los procesos de fondo buscando en el directorio


apropiado rc por el nivel de ejecución especificado por defecto en
/etc/inittab. Los directorios rc están numerados para corresponder al nivel de
ejecución que represente. Por ejemplo, /etc/rc.d/rc5.d/ es el directorio para
el nivel de ejecución 5.

Cuando se arranca el nivel de ejecución 5, el programa init consulta el directorio


/etc/rc.d/rc5.d/ para determinar qué procesos iniciar o parar.

A continuación un ejemplo de listado del directorio /etc/rc.d/rc5.d/:

K05innd->../init.d/innd
K05saslauthd->../init.d/saslauthd
K10psacct->../init.d/psacct
.
.
.
S95atd->../init.d/atd
S97rhnsd->../init.d/rhnsd
S99local->../rc.local
S99mdmonitor->../init.d/mdmonitor

Como puede ver, ninguno de los scripts que inician y cierran los servicios están
localizados en el directorio /etc/rc.d/rc5.d/. Casi todos los ficheros en
/etc/rc.d/rc5.d/ son enlaces simbólicos apuntando a los scripts localizados
en el directorio /etc/rc.d/init.d/. Los enlaces simbólicos se usan en cada
uno de los directorios rc de manera que los niveles de ejecución puedan ser
reconfigurados al crear, modificar y eliminar los enlaces simbólicos sin que afecte a
los scripts actuales a los que se refiere.

El nombre de cada enlace simbólico inicia con K o S. Los enlaces K son procesos

Red Hat Certified Engineer 62


Proceso de arranque, inicio y cierre del sistema

eliminados en ese nivel de ejecución, mientras que aquellos que inician por S son
procesos iniciados.

El comando init en primer lugar detiene todos los enlaces simbólicos de K en el


directorio mediante la ejecución del comando /etc/rc.d/init.d/<command>
stop, en el que <command> es el proceso a matar. A continuación inicia todos los
enlaces simbólicos S al ejecutar /etc/rc.d/init.d/<command> start.

Cada uno de los enlaces simbólicos se numera para dictaminar el orden de inicio.
Puede cambiar el orden en el que los servicios inician o paran al cambiar el
número. Mientras más bajo es el número, más rápido se arrancará. Los enlaces
simbólicos con el mismo número se inician de modo alfabético.

Después que el comando init ha progresado a través del directorio adecuado rc


para el nivel de ejecución, el script /etc/inittab bifurca los procesos
/sbin/mingetty para cada consola virtual (intérpretes de comando de registro,
login) ubicada para el nivel de ejecución. Los niveles de ejecución del 2 al 5
obtienen todas las seis consolas virtuales, mientras que el nivel de ejecución 1
(modo usuario único) obtiene tan sólo uno y lo niveles de ejecución del 0 al 6 no
obtienen ninguno. El proceso /sbin/mingetty abre las rutas de la comunicación
para los dispositivos tty, establece sus modos, imprime el indicador de inicio de
sesión, toma el nombre del usuario, e inicia el proceso de inicio de sesión para el
usuario.

En el nivel de ejecución 5, el /etc/inittab ejecuta un script llamado


/etc/X11/prefdm. El script ejecuta prefdm ejecuta su gestor de pantalla
preferido para X gdm, kdm, o xdm, dependiendo de los contenidos del archivo
/etc/sysconfig/desktop.

En este punto, el sistema está operando en el nivel de ejecución nivel 5 y


mostrando la pantalla de inicio de sesión.

63 Ing. Iván Ferreira


Proceso de arranque, inicio y cierre del sistema

Ejecutar programas adicionales en el momento de arranque

El script /etc/rc.d/rc.local lo ejecuta el comando init en tiempo de


arranque, o cuando se cambien niveles de ejecución. El agregar comandos a este
script es una forma fácil de realizar tareas necesarias como arrancar servicios
especiales o inicializar dispositivos sin tener que escribir scripts complejos de
inicialización en el directorio /etc/rc.d/init.d/ y creando los enlaces
simbólicos.

Uso de sysctl

El comando /sbin/sysctl es usado para visualizar, configurar y automatizar


configuraciones del kernel en el directorio /proc/sys/.

Para tener una vista rápida de todas las variables configurables en el directorio
/proc/sys/, escriba el comando /sbin/sysctl -a como root. Esto creará una
lista grande y exhaustiva, de la cual le mostramos una pequeña parte:

net.ipv4.route.min_delay = 2
kernel.sysrq = 0
kernel.sem = 250 32000 32 128
Esta es la misma información que verla si echara un vistazo a cada uno de los
archivos individualmente. La única diferencia es la localización del archivo. Por
ejemplo, el archivo /proc/sys/net/ipv4/route/min_delay está
representado por net.ipv4.route.min_delay, con las barras oblicuas del
directorio sustituidas por puntos y la porción asumida proc.sys.

El comando sysctl se puede usar en vez de echo para asignar valores a los
archivos en los que se puede escribir en el directorio /proc/sys/. Por ejemplo, en
vez de usar el comando:

# echo 1 > /proc/sys/kernel/sysrq

Utilice el comando sysctl equivalente como se muestra:

Red Hat Certified Engineer 64


Proceso de arranque, inicio y cierre del sistema

sysctl -w kernel.sysrq="1"
kernel.sysrq = 1

A pesar de que es muy útil durante las pruebas el poder rápidamente efectuar
configuraciones de valores simples en /proc/sys/, esto no funciona bien en un
ambiente de producción puesto que las configuraciones especiales en
/proc/sys/ se pierden cuando se vuelve a arrancar el sistema. Para conservar
las configuraciones personalizadas, agreguelas al archivo /etc/sysctl.conf.

Cada vez que el sistema arranque, el programa init ejecuta el script


/etc/rc.d/rc.sysinit. Este script contiene un comando para ejecutar
sysctl mediante el uso de /etc/sysctl.conf para determinar los valores
pasados al kernel. Cualquier valor añadido a /etc/sysctl.conf surtirá efecto
cada vez que el sistema arranque.

Niveles de ejecución de SysV Init

El sistema de niveles de ejecución SysV init provee de un proceso estándar para


controlar cuáles programas init lanza o detiene cuando se inicializa un nivel de
ejecución. SysV init fue escogido porque es más fácil de usar y más flexible que el
proceso tradicional init estilo BSD.

Los ficheros de configuración para SysV init están en el directorio /etc/rc.d/.


Dentro de este directorio, se encuentran los scripts rc, rc.local,
rc.sysinit y opcionalmente, los scripts rc.serial así como los siguientes
directorios:

init.d/
rc0.d/
rc1.d/
rc2.d/
rc3.d/
rc4.d/
rc5.d/
rc6.d/

El directorio init.d/ contiene los scripts usados por el comando /sbin/init

65 Ing. Iván Ferreira


Proceso de arranque, inicio y cierre del sistema

cuando se controlan los servicios. Cada uno de los directorios numerados


representa los seis niveles de ejecución predeterminados configurados por defecto
bajo CentOS Linux.

Niveles de ejecución

Los niveles de ejecución son un estado, o modo, definido por los servicios listados
en el SysV directorio /etc/rc.d/rc<x>.d/, donde <x> es el número de nivel de
ejecución.

La idea detrás de los niveles de ejecución de SysV init gira alrededor del hecho que
sistemas diferentes se pueden usar de formas diferentes. Por ejemplo, el servidor
corre de forma más eficiente sin tener que arrastrar recursos del sistema creados
por el sistema X. Otras veces, el administrador del sistema puede necesitar operar
el sistema en un nivel más bajo de ejecución para realizar tareas de diagnóstico,
como reparar corrupción del disco duro, cuando no es posible que ningún otro
usuario esté usando el sistema.

Las características de un nivel de ejecución dado determinan qué servicios son


detenidos o iniciados por init. Por ejemplo, el nivel de ejecución 1 (modo único
usuario) detiene cualquier servicio de red, mientras que el nivel 3 arranca estos
servicios. Asignando servicios específicos a ser detenidos o arrancados en un nivel
dado, init puede fácilmente cambiar el modo de la máquina sin que el usuario tenga
que manualmente arrancar o detener servicios.

Los siguientes niveles de ejecución están definidos por defecto para CentOS Linux:

Nivel Descripción
0 Detener el sistema
2 Sin usar (usuario-definible)
3 Modo texto multiusuario completo
4 Sin usar (usuario-definible)
5 Modo gráfico multiusuario completo (con una pantalla de inicio de
sesión basada en X)

Red Hat Certified Engineer 66


Proceso de arranque, inicio y cierre del sistema

Nivel Descripción
6 Reiniciar

Generalmente, los usuarios utilizan CentOS Linux al nivel de ejecución 3 o nivel de


ejecución 5 ambos modos multiusuario. Ya que los niveles de ejecución 2 y 4 no
son usados, los usuarios a veces personalizan estos niveles para cubrir
necesidades específicas.

El nivel de ejecución por defecto para el sistema está listado en /etc/inittab.


Para saber el nivel de ejecución por defecto de un sistema, busque por la línea
similar a la que se muestra abajo cerca de la parte superior de /etc/inittab:

id:5:initdefault:

El nivel de ejecución predeterminado en el ejemplo de arriba es cinco, como indica


el número después del punto y coma. Para cambiarlo, modifique /etc/inittab
como usuario root.

Es posible cambiar al nivel de ejecución por defecto al momento de arranque


modificando los argumentos pasados del gestor de arranque al kernel.

Utilidades de los niveles de ejecución

Una de las mejores formas de configurar los niveles de ejecución es usando las
herramientas initscript. Estas herramientas están diseñadas para simplificar las
tareas de mantener archivos en la jerarquía del directorio SysV init y descargan a
los administradores de sistemas de tener que directamente manipular numerosos
enlaces simbólicos en los subdirectorios de /etc/rc.d/.

CentOS Linux ofrece tres de tales utilidades:

● /sbin/chkconfig - La utilidad /sbin/chkconfig es una herramienta


de línea de comandos sencilla para mantener la jerarquía del directorio

67 Ing. Iván Ferreira


Proceso de arranque, inicio y cierre del sistema

/etc/rc.d/init.d.

● /sbin/ntsysv - La utilidad basada en ncurses /sbin/ntsysv provee de


una interfaz interactiva basada en texto, que muchos encuentran más fácil
de usar que chkconfig.

● Herramienta de configuración de servicios - El programa de interfaz


gráfica Herramienta de configuración de servicios system-onfig-
services es una utilidad flexible basada en GTK2 para la configuración de
niveles de ejecución.

Cierre del sistema

Para apagar CentOS Linux, el usuario root puede ejecutar el comando


/sbin/shutdown. La página man de shutdown tiene una lista completa de
opciones, pero las dos más usadas son:

# /sbin/shutdown -h now
# /sbin/shutdown -r now

Después de apagar todo, la opción -h detendrá la máquina, y la opción -r la


reiniciará.

Los usuarios no root pueden usar los comandos reboot y halt para apagar el
equipo mientras se está en niveles de ejecución 1 hasta 5. Sin embargo, no todos
los sistemas operativos Linux soportan esta característica.

Si la computadora no se apaga, tenga cuidado de no apagar la computadora hasta


que aparezca un mensaje indicando que el sistema ha sido detenido.

Si no espera por este mensaje puede significar que no todas las particiones de
discos duros han sido desmontadas, y puede llevar a un sistema de archivos
corrupto.

Puede utilizar el comando last -x para identificar cuándo se apago, reinicio o

Red Hat Certified Engineer 68


Proceso de arranque, inicio y cierre del sistema

cambió de nivel de ejecución el sistema.

69 Ing. Iván Ferreira


4
Administración de usuarios
Administración de usuarios

Administración de usuarios

Usuarios y grupos

El control de los usuarios y grupos es un elemento clave en la administración de


sistemas de CentOS Linux.

Los usuarios pueden ser gente real, es decir, cuentas ligadas a un usuario físico en
particular o cuentas que existen para ser usadas por aplicaciones específicas.

Los grupos son siempre expresiones lógicas de organización, reuniendo usuarios


para un propósito común. Los usuarios dentro de un mismo grupo pueden leer,
escribir o ejecutar archivos que pertenecen al grupo.

Cada usuario y grupo tiene un número de identificación único llamado user id (UID)
y un group id (GID).

Cuando se crea un archivo se asigna a un usuario y a un grupo. De la misma


manera se asignan los permisos de lectura, escritura y ejecución para el propietario
del archivo, para el grupo y para cualquier otro usuario en un host. El usuario y el
grupo de un archivo particular, así como los permisos en ese archivo, pueden ser
cambiados por un root o, en la mayoría de los casos, por el creador del archivo.

Una de las tareas más importantes de cualquier administrador del sistema, es la de


administrar adecuadamente usuarios y grupos, así como asignar y revocar
permisos.

Herramientas de administración de usuarios y grupos

La gestión de usuarios y grupos ha sido tradicionalmente tediosa, pero CentOS


Linux posee algunas herramientas y convenciones que facilitan a los
administradores su gestión.

71 Ing. Iván Ferreira


Administración de usuarios

La forma más fácil de manejar usuarios y grupos es a través de la aplicación


gráfica Administrador de usuarios, system-config-users.

Las siguientes herramientas de línea de comandos también se pueden utilizar para


manejar usuarios y grupos:

● useradd, usermod y userdel — Métodos estándar de la industria para


añadir, eliminar y modificar cuentas de usuarios.

● groupadd, groupmod y groupdel — Métodos estándar de la industria


para añadir, eliminar y modificar grupos de usuarios.

● pwck, grpck — Herramientas para la verificación de contraseñas, grupo y


archivos shadow asociados.

● pwconv, pwunconv — Herramientas para la conversión a contraseñas


shadow y de vuelta a contraseñas estándar.

Configuración de usuarios desde la línea de comandos

Si prefiere las herramientas de línea de comandos o no tiene el sistema X Window


instalado, use este capítulo para configurar usuarios y grupos.

Añadir un usuario

Para añadir un usuario al sistema ejecute el comando useradd para crear una
cuenta de usuario bloqueada:

useradd <nombre_usuario>

Desbloquee la cuenta ejecutando el comando passwd para asignar una contraseña


y configurar el vencimiento de la misma:

passwd <nombre_usuario>

Red Hat Certified Engineer 72


Administración de usuarios

Las opciones de línea de comandos más comunes son:

Opción Descripción
-c comentario Comentario para el usuario
-d home-dir Directorio principal a ser usado en vez del directorio
predeterminado /home/nombre_usuario
-e fecha Fecha en que la cuenta será desactivada usando el
formato de fecha YYYY-MM-DD
-f días Número de días que pasarán después que la contraseña
ha caducado hasta que la cuenta se desactivará (Si se
especifica 0, la cuenta será desactivada inmediatamente
después que la contraseña expire. Si se especifica -1, la
cuenta no se desactivará después que la contraseña
caduque.)
-g nombre_grupo Nombre o número del grupo para el grupo
predeterminado del usuario (El grupo debe existir.)
-G lista_grupos Lista de nombres de los grupos adicionales (además del
predeterminado), separados por comas, de los cuales el
usuario es miembro (Los grupos deben existir.)
-m Crea el directorio principal si no existe
-M No crea el directorio principal
-n No crea un grupo de usuario privado para el usuario
-r Crea una cuenta de sistema con un UID menor que 500 y
dentro del directorio principal.
-p contraseña La contraseña encriptada con crypt
-s Línea de comando de conexión del usuario,
predeterminada a /bin/bash
-u uid ID de usuario, el cual debe ser único y mayor que 499

Añadir un grupo

Para agregar un grupo al sistema, use el comando groupadd:

groupadd <nombre_grupo>

Las opciones de línea de comandos más comunes son:

73 Ing. Iván Ferreira


Administración de usuarios

Opción Descripción
-g gid ID para el grupo, el cual debe ser único y mayor que 499.
-r Crea un grupo de sistema con un GID menor que 500.
-f Sale con un error si el grupo ya existe. (El grupo no es alterado.) Si
se especifica -g y -f, pero el grupo ya existe, la opción -g es
ignorada.

Vencimiento de la contraseña

Para configurar el vencimiento de la contraseña para un usuario desde el intérprete


de comandos, use el comando chage, seguido de una opción:

Opción Descripción
-m días Especifica el número mínimo de días entre los cuales el usuario
debe cambiar su contraseña. Si el valor es 0, la contraseña no
caduca.
-M días Especifica el número máximo de días durante los cuales la
contraseña es válida. Cuando el número de días especificado por
esta opción más el número de días especificado con la opción -d
es menor que el día actual, el usuario debe cambiar su contraseña
antes de usar la cuenta.
-d días Especifica el número de días desde Enero 1, 1970 que la
contraseña fué cambiada.
-I días Especifica el número de días inactivos después de la expiración de
la contraseña antes de bloquear la cuenta. Si el valor es 0, la
cuenta no es bloqueada después que la contraseña caduca.
-E fecha Especifica la fecha en la cual la cuenta es bloqueada, en el formato
YYYY-MM-DD. También se puede usar el número de días
transcurridos desde Enero 1, 1970 en lugar de la fecha.
-W días Especifica el número de días antes de la fecha de expiración de la
contraseña para advertir al usuario.

Si el administrador del sistema desea que un usuario configure su contraseña la


primera vez que éste se conecte, la contraseña del usuario puede ser configurada
a que expire de inmediato, obligando al usuario a cambiarla inmediatamente
después de conectarse la primera vez.

Red Hat Certified Engineer 74


Administración de usuarios

El archivo /etc/passwd

El archivo /etc/passwd contiene la lista de usuarios en el sistema, una línea por


usuario. Es consultado cuando el usuario ingresa al sistema para determinar su
UID; en muchos casos, podría contener también la contraseña encriptada, aunque
la tendencia actual es retener la contraseña encriptada en otro archivo,
/etc/shadow, con permisos de acceso más restringidos. En este último caso, el
proceso de login consulta ambos archivos, /etc/passwd y /etc/shadow.

Los campos de /etc/passwd y /etc/shadow están separados por ":", al igual


que la mayoría de los archivos de configuración en UNIX.

Ejemplo de entradas en /etc/passwd:

root:x:0:0::/root:/bin/bash
bin:x:1:1:bin:/bin:
ftp:x:404:1::/home/ftp:/bin/bash
daemon:x:2:2:daemon:/sbin:

El archivo /etc/passwd contiene los siguientes campos, de izquierda a derecha:

● Nombre de login

● Contraseña encriptada

● Identificador del usuario (UID)

● Identificador de grupo primario (GID)

● Información de usuario (campo "GECOS") Se usa ahora, sin una sintaxis fija,
para contener información del usuario. El comando finger interpreta este
campo como una lista separada por comas conteniendo: 1) nombre en la
vida real, 2) edificio y número de oficina, 3) teléfono interno, 4) teléfono
domiciliario. El comando chfn permite al usuario cambiar su información
propia.

75 Ing. Iván Ferreira


Administración de usuarios

● El directorio HOME del usuario

● Shell o programa inicial.

El archivo /etc/group

El archivo /etc/group contiene los nombres de los grupos UNIX definidos en el


sistema y una lista de sus miembros. Hay una línea por cada grupo. Los campos
están separados por ":".

Ejemplo de entradas en /etc/group:

root::0:root
bin::1:root,bin,daemon
daemon::2:root,bin,daemon
sys::3:root,bin,adm
adm::4:root,adm,daemo

Cada línea contiene:

● Nombre del grupo: algunos sistemas piden 8 caracteres o menos.

● Contraseña encriptada: histórico, no se usa.

● Número GID: número único identificador del grupo.

● Lista de integrantes: nombres de usuarios de los integrantes del grupo


separados por comas, sin blancos.

Grupos de usuario privado

CentOS Linux utiliza un esquema de grupo de usuario privado (UPG), lo que


hace más fácil de manejar los grupos de UNIX.

Se crea un UPG siempre que se añade un nuevo usuario al sistema. Un UPG tiene
el mismo nombre que el usuario para el cual se crea y ese usuario es el único
miembro de ese UPG.

Red Hat Certified Engineer 76


Administración de usuarios

Los UPGs hacen que sea más seguro configurar los privilegios por defecto para un
nuevo archivo o directorio lo que permite a ambos, tanto el usuario como al grupo
de ese usuario hacer modificaciones al archivo o directorio.

El parámetro que determina qué permisos son aplicados a un nuevo archivo o


directorio es llamado un umask y es configurado en el archivo /etc/bashrc.

Tradicionalmente, en sistemas UNIX el umask es configurado a 022, lo que sólo


permite al usuario que crea el archivo o directorio realizar modificaciones. Bajo este
esquema, todos los demás usuarios incluyendo miembros del grupo del creador no
tienen derecho a realizar ninguna modificación. Sin embargo, bajo el esquema
UPG, esta "protección de grupo" no es necesaria puesto que cada usuario tiene su
propio grupo privado.

Directorios de grupos

Muchas organizaciones de IT (del inglés Information Technologies) prefieren crear


un grupo para cada proyecto importante y luego asignar personas al grupo si estos
necesitan acceso a los archivos de ese proyecto. Usando este esquema tradicional,
el manejo de archivos ha sido difícil pues cuando alguien crea un archivo, este es
asociado con el grupo primario al cual pertenece. Cuando una persona individual
trabaja en múltiples proyectos, se hace difícil asociar los archivos correctos con el
grupo correcto. Usando el esquema UPG, sin embargo, los grupos son
automáticamente asignados a archivos creados dentro de un directorio con el bit
SGID configurado, lo que hace muy simple el manejo de proyectos de grupos que
comparten un directorio común.

Digamos, por ejemplo, que un grupo de personas trabajan con archivos en el


directorio /datos/contabilidad/. Algunas personas son de confianza como
para modificar el directorio, pero ciertamente no todos. Entonces primero cree un
grupo contab, como se muestra en el siguiente comando:

# /usr/sbin/groupadd contab

77 Ing. Iván Ferreira


Administración de usuarios

Para poder asociar los contenidos del directorio con el grupo contab, escriba:

# chown -R root.contab /datos/contabilidad/

Ahora es posible añadir los usuarios adecuados al grupo con el comando


gpasswd:

# /usr/bin/gpasswd -a <nombre_usuario> contab

Permita a los usuarios crear archivos dentro del directorio y configure el bit SGID, el
cual asigna que todo lo que se cree en el directorio el mismo grupo del directorio
padre (contab). Use el comando siguiente:

# chmod 2775 /datos/contabilidad

En este punto, puesto que cada usuario tiene por defecto su umask en 002, todos
los miembros del grupo contab pueden crear y modificar archivos en el directorio
/datos/contabilidad/ sin que el administrador tenga que cambiar los
permisos de los archivos cada vez que un usuario escriba nuevos archivos.

Contraseñas Shadow

En entornos multiusuario es muy importante utilizar contraseñas shadow


(proporcionadas por el paquete shadow-utils). Haciendo esto se mejora la
seguridad de los archivos de autenticación del sistema. Por esta razón, el programa
de instalación de CentOS Linux activa por defecto las contraseñas shadow.

Lo siguiente es una lista de las ventajas de las contraseñas shadow sobre el


método antiguo de almacenar contraseñas en los sistemas basados en UNIX.

● Mejora la seguridad del sistema al mover las contraseñas encriptadas desde


el archivo /etc/passwd que puede leer todo el mundo, a /etc/shadow, el
cual sólo puede ser leído por el usuario root.

● Almacena información sobre la vigencias de las contraseñas.

Red Hat Certified Engineer 78


Administración de usuarios

● Permite el uso del archivo /etc/login.defs para reforzar las políticas de


seguridad.

La mayoría de las utilidades proporcionadas por el paquete shadow-utils


funcionan adecuadamente sin importar si las contraseñas shadow están activadas
o no. Sin embargo, puesto que la información sobre la vigencia de las contraseñas
es almacenada exclusivamente en el archivo /etc/shadow, cualquier comando
que cree o modifique la información sobre la vigencia de las contraseñas, no
funcionará.

Abajo se muestra una lista de los comandos que no funcionan a menos que se
activen las contraseñas shadow:

● chage

● gpasswd

● Las opciones /usr/sbin/usermod -e o -f

● Las opciones /usr/sbin/useradd -e o -f

El archivo /etc/shadow

El archivo /etc/shadow contiene una línea por usuario y solo es visible por root.
Provee además información relativa a cambio de contraseñas y expiración de la
cuenta.

Ejemplo de entradas en /etc/shadow:

root:1eklLr8RdBuao:10461:0:::::
bin:*:9797:0:::::
ftp:*:9797:0:::::
daemon:*:9797:0:::::

Contiene los siguientes campos:

79 Ing. Iván Ferreira


Administración de usuarios

● Nombre de login: el mismo nombre que en /etc/passwd;

● Contraseña encriptada: bajo las mismas condiciones que en /etc/passswd;

la contraseña encriptada es desplazada del /etc/passwd al /etc/shadow,

dejando en /etc/passwd una x en este campo.

● Fecha de úlimo cambio de contraseña: registra la fecha en que el usuario


cambió por última vez su contraseña.

● Mínima cantidad de días entre cambios de contraseña: una vez


cambiada una contraseña, el usuario no puede volver a cambiarla hasta que
haya transcurrido esta cantidad de días como mínimo. No se recomienda
fijar este valor; si ha habido una violación de seguridad puede ser necesario
cambiar la contraseña de inmediato, sin tener que esperar.

● Máxima cantidad de días entre cambios de contraseña: obliga a los


usuarios a cambiar su contraseña periódicamente. En Linux, este valor se
suma al campo de inactividad antes de bloquear la cuenta.

● Cantidad de días de adelanto para avisar expiración de contraseña:


avisa al usuario de la necesidad del cambio de contraseña, a partir de esta
cantidad de días antes de la fecha límite.

● Cantidad de días de inactividad antes de expirar la cuenta: Linux, son


días de gracia después del máximo sin cambiar contraseña y antes de
bloquear la cuenta.

● Fecha de expira de la contraseña: día contado a partir del 1-1-1970, en


que la cuenta expirará. Si el campo está en blanco, la cuenta no expira
nunca. Si ha transcurrido esta fecha, el campo debe ser repuesto por el
administrador para rehabilitar la cuenta.

● Banderas: reservado para usos futuros.

Red Hat Certified Engineer 80


Administración de usuarios

Configuración de la autenticación

Para cambiar la configuración de autenticación después de finalizar la instalación,


use el comando system-config-authentication, authconfig o
authconfig-tui.

Escriba el comando authconfig en la línea de comandos. Si no es usuario root,


se le pedirá la contraseña root para continuar.

Métodos de autenticación

Las opciones de autenticación que puede seleccionar son:

● Habilitar contraseñas MD5 le permite usar una contraseña larga (de hasta
256 caracteres), en vez de las ocho letras.

● Habilitar contraseñas shadow proporciona un método seguro para


conservar contraseñas. Las contraseñas se almacenan en /etc/shadow, al
que tan sólo se puede acceder como root.

● Habilitar NIS le permite ejecutar un grupo de ordenadores en el mismo


dominio Network Information Service con una contraseña común y un fichero
de grupo. Puede escoger desde las siguientes opciones:

– Dominio NIS le permitirá especificar el dominio o grupo de ordenadores


al que pertenece su sistema.

– Usar broadcast para encontrar el servidor NIS le permitirá hacer un


broadcast en su red local para encontrar el servidor NIS.

– Servidor NIS hace que su ordenador utilice un servidor NIS específico,


en vez de enviar un broadcast a toda la red para encontrar el servidor
NIS disponible.

81 Ing. Iván Ferreira


Administración de usuarios

● Activar LDAP le dice a su ordenador que utilice LDAP para algunas o todas
las autenticaciones. LDAP consolida ciertos tipos de información en el seno
de su organización. Por ejemplo, todas las diferentes listas de usuarios que
puede haber en la organización se pueden unir en un sólo directorio LDAP.

– Servidor LDAP le permite acceder a un servidor específico (mediante su


dirección IP) que esté ejecutando el protocolo LDAP.

– LDAP Base DN le permite buscar información acerca de los usuarios


mediante su Distinguished Name (DN).

– Usar TLS (Transport Layer Security) esta opción permite a LDAP


enviar información encriptada de nombres de usuario y contraseñas al
servidor LDAP antes de la autenticación.

● Activar Kerberos Kerberos es un sistema de seguridad que proporciona


servicios de autentificación en red. Puede elegir entre tres opciones:

– Reino esta opción le permite acceder a una red que utiliza Kerberos,
compuesta por uno o varios servidores (también conocidos como KDCs)
y un número potencialmente alto de usuarios.

– KDC Esta opción le permite acceder al Centro de Distribución de Claves


(Key Distribution Center, KDC), una máquina que emite tickets de
Kerberos (a veces se llama también Ticket Granting Server o TGS).

– Servidor de Administración Esta opción le permite acceder a un


servidor que ejecute kadmind.

● Activar la autenticación SMB Configura PAM para usar un servidor SMB


para la autenticación de usuarios. Deberá proporcionar dos tipos de
información:

– Servidor SMB Indica qué servidor SMB contactará su estación de trabajo

Red Hat Certified Engineer 82


Administración de usuarios

para la autenticación.

– Grupo de trabajo SMB Indica en qué grupo de trabajo están los


servidores SMB.

83 Ing. Iván Ferreira


5
Instalación y gestión de paquetes
Instalación y gestión de paquetes

Instalación y gestión de paquetes

Gestión de paquetes

Todo el software en un sistema CentOS Linux está dividido en paquetes RPM los
cuales pueden ser instalados, actualizados o eliminados. Esta parte describe como
manejar los paquetes RPM en un sistema CentOS Linux usando herramientas
gráficas y de línea de comandos.

El Administrador de paquetes (RPM) es un sistema de empaquetado abierto que


trabaja en CentOS Linux además de otros sistemas Linux y UNIX y que está a la
disposición de cualquiera. CentOS, Inc. fomenta el uso de RPM por parte de otros
vendedores para sus propios productos. RPM se puede distribuir bajo los términos
de GPL.

RPM facilita las actualizaciones de sistema para el usuario final. Es posible instalar,
desinstalar y actualizar paquetes RPM por medio de comandos breves. RPM
mantiene una base de datos de los paquetes instalados y de sus archivos, y usted
puede hacer consultas y verificaciones poderosas en su sistema. Si prefiere una
interfaz gráfica, puede utilizar la Herramienta de administración de paquetes
system-config-packages o pirut para ejecutar muchos comandos RPM.

Durante las actualizaciones, RPM maneja cuidadosamente los archivos de


configuración para que usted nunca pierda sus modificaciones de personalización
algo que no lograra hacer con archivos .tar.gz normales.

RPM permite al desarrollador tomar el código fuente del software y empaquetarlo


en paquetes binarios y de fuente para los usuarios finales. Este proceso es
bastante sencillo y se controla desde un único archivo y parches opcionales
creados por usted mismo. Esta clara delineación de fuentes originarias y sus
parches y las instrucciones de construcción facilitan el mantenimiento del paquete
al ir apareciendo nuevas versiones del software.

85 Ing. Iván Ferreira


Instalación y gestión de paquetes

Metas de diseño RPM

Podría ser útil conocer las metas de diseño de RPM para poder aprender a usar
RPM:

● Predisposición a la actualización Al usar RPM es posible actualizar


componentes individuales de su sistema sin tener que reinstalarlos
completamente. Cuando obtenga una versin nueva de un sistema operativo
basado en RPM (como CentOS Linux), no es necesario efectuar
reinstalaciones en su máquina (como debe hacerse con sistemas operativos
basados en otros sistemas de empaquetado). RPM permite actualizaciones
inteligentes, in situ y completamente automatizadas en su sistema. Los
archivos de configuración en los paquetes se conservan no obstante las
actualizaciones, y as no perder sus personalizaciones. No existen archivos
de actualización específicos para actualizar un paquete porque se utiliza el
mismo archivo RPM para instalar y actualizar el paquete en su sistema.

● Consultas poderosas RPM fue ideado para proporcionar opciones de


consulta poderosas. Se pueden efectuar búsquedas por toda su base de
datos para encontrar un paquete o sólo algún archivo. También es posible
averiguar a cual paquete pertenece un determinado archivo y de dónde
proviene el paquete. Los archivos contenidos en el paquete RPM están en
un archivo comprimido, con un encabezado binario personalizado que
contiene información til sobre el paquete y su contenido, permitiéndole
consultar paquetes individuales rápida y sencillamente.

● Verificación de sistema Otra característica poderosa es la de verificar


paquetes. Si está preocupado porque borra un archivo importante para algún
paquete, verifique el paquete. Se le notificar si hay anomalías. En este
punto, puede reinstalar el paquete si es necesario. Cualquier archivo de
configuración que haya modificado ser preservado durante la reinstalación.

● Fuentes originarias Un objetivo crucial ha sido el de permitir el uso de

Red Hat Certified Engineer 86


Instalación y gestión de paquetes

fuentes de software originario, tal y como ha sido distribuido por los autores
originales del software. Con RPM tendrá las fuentes originarias junto con
cualquier parche que haya sido usado además de las instrucciones de
construcción completas. Esta es una ventaja importante por varios motivos.
Si por ejemplo sale una versión nueva de un programa, no necesariamente
necesita empezar desde cero para que se compile. Puede revisar el parche
para ver lo que tal vez necesitara hacer. Usando esta técnica se ven
fácilmente todos los elementos predeterminados y compilados en el
programa y todos los cambios que se le han hecho al software para construir
adecuadamente.

El objetivo de mantener las fuentes originarias podrá parecer importante sólo para
los desarrolladores, pero el resultado también sera software de más alta calidad
para los usuarios finales. Quisiéramos dar las gracias a la gente de distribución de
BOGUS por haber ideado el concepto de la fuente originaria.

Instalación de paquetes RPM

Los paquetes RPM normalmente tienen nombres de archivo como foo-1.0-


1.i386.rpm. El nombre de archivo incluye el nombre de paquete (foo), versión
(1.0), lanzamiento (1) y arquitectura (i386). La instalación de un paquete es tan
simple como teclear el siguiente comando en el intérprete de comandos de shell:

# rpm -ivh foo-1.0-1.i386.rpm

Si la instalación es correcta verá lo siguiente:

Preparing... ########################################### [100%]


1:foo ########################################### [100%]

Como podrá ver, RPM imprime el nombre del paquete y luego imprime una serie de
símbolos de numeral (#) mientras se instala el paquete como una especie de
medidor de progreso.

87 Ing. Iván Ferreira


Instalación y gestión de paquetes

La firma del paquete se autentica en el momento de la instalación o de la


actualización del paquete. Si la verificación de la firma falla, verá el siguiente
mensaje de error:

error: V3 DSA signature: BAD, key ID 0352860f

Si se trata de una nueva firma en el cabezal, verá el siguiente error:

error: Header V3 DSA signature: BAD, key ID 0352860f

Si no tiene instalada la clave apropiada para verificar la firma, el mensaje dirá


NOKEY y será como lo siguiente:

warning: V3 DSA signature: NOKEY, key ID 0352860f

Paquete ya instalado

Si ya está instalado un paquete de la misma versión, verá:

Preparing... ########################################### [100%]


package foo-1.0-1 is already installed

Si desea instalar el paquete de todos modos y la versión que está intentando


instalar ya está instalada, podrá usar la opción --replacepkgs, la cual le dirá a
RPM que ignore el error:

# rpm -ivh --replacepkgs foo-1.0-1.i386.rpm

Esta opción es útil si se borraron los archivos instalados del RPM o si desea que se
instalen los archivos de configuración originales del RPM.

Archivos en conflicto

Si intenta instalar un paquete que contiene un archivo que ya ha sido instalado por
otro paquete o una versión más antigua del mismo paquete, verá lo siguiente:

Preparing... ########################################### [100%]


file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package
bar-2.0.20

Red Hat Certified Engineer 88


Instalación y gestión de paquetes

Para hacer que RPM ignore este error, use la opción --replacefiles:

# rpm -ivh --replacefiles foo-1.0-1.i386.rpm

Dependencias no resueltas

Los paquetes RPM pueden "depender" de otros paquetes, lo cual significa que
requieren de la instalación de otros paquetes para poder ejecutarse
adecuadamente. Si intenta instalar un paquete que tiene una dependencia no
resuelta, verá lo siguiente:

Preparing... ########################################### [100%]


error: Failed dependencies:
bar.so.2 is needed by foo-1.0-1
Suggested resolutions:
bar-2.0.20-3.i386.rpm

Si está instalando un paquete oficial de CentOS, se le sugerirá resolver la


dependencia de este paquete. Encuentre este paquete en los CD-ROMs de
CentOS Linux o en el sitio FTP (o espejo) y añádalo al comando:

# rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm

Si se realiza la instalación correctamente, verá lo siguiente:

Preparing... ########################################### [100%]


1:foo ########################################### [ 50%]
2:bar ########################################### [100%]

Si desea forzar la instalación de todas maneras (no es una buena idea ya que el
paquete no funcionará correctamente), use la opción –nodeps.

Para resolver las dependencias, es preferible utilizar el comando yum para instalar
los paquetes y configurar un repositorio local. El archivo
/etc/yum.repos.d/CentOS-Media.repo permite configurar un repositorio
local a partir del DVD de instalación.

89 Ing. Iván Ferreira


Instalación y gestión de paquetes

Desinstalación

Desinstalar un paquete es tan simple como instalarlo. Teclee el siguiente comando


en el intérprete de comandos de la shell:

# rpm -e foo

Podría encontrarse con un error de dependencia cuando esté desinstalando un


paquete si otro paquete instalado depende del que está tratando de eliminar. Por
ejemplo:

Preparing... ########################################### [100%]


error: removing these packages would break dependencies:
foo is needed by bar-2.0.20-3.i386.rpm

Para hacer que RPM ignore este error y desinstale el paquete de todos modos (que
tampoco es buena idea ya que al hacerlo, el paquete que depende de él
probablemente dejará de funcionar correctamente), use la opción --nodeps.

Actualización

Actualizar un paquete es parecido a instalarlo. Teclee el siguiente comando en un


intérprete de comandos de la shell:

# rpm -Uvh foo-2.0-1.i386.rpm

Lo que no se ve arriba es que RPM ha desinstalado automáticamente cualquier


versión antigua del paquete foo. De hecho, tal vez desee usar -U siempre para
instalar paquetes, ya que funcionará aunque no haya versiones precedentes del
paquete instaladas.

Ya que RPM lleva a cabo la actualización inteligente de paquetes con archivos de


configuración, tal vez vea un mensaje como el siguiente:

saving /etc/foo.conf as /etc/foo.conf.rpmsave

Red Hat Certified Engineer 90


Instalación y gestión de paquetes

Este mensaje significa que los cambios hechos al archivo de configuración podrían
no ser "compatibles" con el archivo de configuración nuevo en el paquete, así que
RPM ha almacenado su archivo original y ha instalado uno nuevo. Debería
averiguar cuáles son las diferencias entre los dos archivos de configuración y
resuelva el problema tan pronto como le sea posible para asegurarse que su
sistema continúe funcionando correctamente.

La actualización es en realidad una combinación de las actividades de


desinstalación e instalación, así que durante una actualización RPM, podrá
encontrar errores de desinstalación e instalación, además de cualquier otro tipo de
error. Si RPM cree que usted está tratando de actualizar a un número de versión de
paquete más antiguo, aparecerá lo siguiente:

package foo-2.0-1 (which is newer than foo-1.0-1) is already installed

Para hacer que RPM "actualice" de todos modos, use la opción --oldpackage:

rpm -Uvh --oldpackage foo-1.0-1.i386.rpm

Refrescamiento

Refrescar un paquete es parecido a actualizarlo. Teclee el siguiente comando en


un intérprete de comandos shell:

# rpm -Fvh foo-1.2-1.i386.rpm

La opción de refrescamiento RPM compara las versiones de los paquetes


especificados en la línea de comandos con las versiones de los paquetes que ya
han sido instalados en su sistema. Cuando la opción de refrescamiento de RPM
elabora una versión más reciente de un paquete ya instalado, éste será actualizado
a la versión más reciente. Sin embargo, la opción de refrescamiento de RPM no
instalará un paquete si no existe un paquete previamente instalado del
mismo nombre. Esto no es igual a la opción de actualización de RPM, ya que una
actualización sí instalará paquetes, no importa si ya esté instalada una versión más
antigua de un paquete.

91 Ing. Iván Ferreira


Instalación y gestión de paquetes

La opción de refrescamiento de RPM funciona ya sea para paquetes individuales


que para un grupo de paquetes. Si usted acaba de descargar una gran cantidad de
paquetes diferentes y sólo desea actualizar los paquetes que ya estaban instalados
en su sistema, la solución es el refrescamiento. Si utiliza la opción de
refrescamiento, antes de usar RPM no tendrá que eliminar ningún paquete
indeseado del grupo que ha descargado.

En este caso, puede ejecutar el comando siguiente:

# rpm -Fvh *.rpm

RPM actualizará automáticamente sólo los paquetes que ya estén instalados.

Consultas

Use el comando rpm -q para hacer consultas a la base de datos de los paquetes
instalados. El comando rpm -q foo imprimirá el nombre de paquete, versión y
número de lanzamiento del paquete foo instalado:

foo-2.0-1

En vez de especificar el nombre del paquete, se pueden usar las siguientes


opciones con -q para especificar lo(s) paquete(s) que desea consultar. Se llaman
Opciones de especificación de paquetes:

Opción Descripción
-a Consulta todos los paquetes actualmente instalados.
-f <archivo> Consultará el paquete que posea <archivo>. Cuando especifique
un archivo, deberá especificar la ruta completa del archivo
(/usr/bin/ls, por ejemplo).
-p <paquete> Consulta un paquete rpm no instalado. Debe especificar la ruta
al archivo rpm.

Red Hat Certified Engineer 92


Instalación y gestión de paquetes

Hay varias maneras de especificar qué información mostrar sobre los paquetes
consultados. Las siguientes opciones sirven para seleccionar el tipo de información
que usted está buscando. Se llaman Opciones de selección de información.

Opción Descripción
-i Muestra información del paquete como el nombre, la
descripción, la versión, el tamaño, la fecha de construcción, la
fecha de instalación, el distribuidor, y otra información
miscelánea.

-l Muestra la lista de archivos contenidos en el paquete.

-s Muestra el estado de todos los archivos en el paquete.

-d Muestra una lista de archivos marcados como documentación


(páginas de manual, páginas de información, archivos LÉAME,
etc.).

-c Muestra una lista de archivos marcados como archivos de


configuración. Estos son los archivos que usted cambia después
de la instalación para adaptar el paquete a su sistema.

Para acceder a opciones que muestran listas de archivos, puede añadir -v al


comando para que muestre las listas en un formato ls -l conocido.

Verificación

La verificación de un paquete tiene que ver con comparar la información sobre


archivos instalados de un paquete con la misma información del paquete original.
Entre otras cosas, la verificación compara el tamaño, la suma MD5, los permisos, el
tipo, el dueño y el grupo de cada archivo.

93 Ing. Iván Ferreira


Instalación y gestión de paquetes

El comando rpm -V verifica un paquete. Usted puede utilizar cualquiera de las


Opciones de selección de paquete de la lista para pedir que se especifiquen los
paquetes que desea verificar. Un modo sencillo de verificar es rpm -V foo, que
verifica si todos los archivos en el paquete foo se encuentran en el mismo estado
en que estaban cuando originalmente fueron instalados. Por ejemplo:

Para verificar un paquete que contiene un determinado archivo:

# rpm -Vf /bin/vi

Para verificar TODOS los paquetes instalados:

# rpm -Va

Para verificar un paquete instalado contra un archivo de paquete RPM

# rpm -Vp foo-1.0-1.i386.rpm

Este comando puede ser útil si sospecha que sus bases de datos de RPM están
dañadas.

Si todo fue verificado correctamente, no habrá salida. Si se encuentran


discrepancias, serán mostradas. El formato de la salida es una cadena de ocho
caracteres (una c identifica un archivo de configuración) seguido por el nombre del
archivo. Cada uno de los ocho caracteres señala el resultado de una comparación
entre un atributo del archivo al valor de ese atributo escrito en la base de datos de
RPM. Un sólo . (punto) significa que ha pasado la prueba. Los siguientes
caracteres señalan que ciertas pruebas no han sido pasadas:

Prueba Descripción
5 MD5 suma de verificación
S Tamaño del archivo
L Enlace simbólico
T Hora de modificación de archivo
D Dispositivo
U Usuario propietario

Red Hat Certified Engineer 94


Instalación y gestión de paquetes

Prueba Descripción
G Grupo propietario
M Modo
? Archivo que no se puede leer

Si ve alguna salida, use su buen juicio para determinar si debería quitar o reinstalar
el paquete o resolver el problema de otra manera.

Verificando la firma del paquete

Si desea verificar si algún paquete ha sido dañado o alterado examine sólo la suma
md5 tecleando el siguiente comando en un intérprete de comandos de shell
(sustituya <archivo-rpm> con el nombre de archivo de su paquete):

# rpm -K --nogpg <archivo-rpm>

Aparecerá el mensaje <archivo-rpm>: md5 OK. Este breve mensaje significa


que el archivo no ha sido dañado al momento de la descarga. Si desea un mensaje
más detallado, reemplace -K por -Kvv en el comando.

Por otra parte, ¿cuánto es de fiable el desarrollador que creó el paquete? Si el


paquete está firmado con la clave GnuPG del desarrollador, sabrá que el
desarrollador de verdad es quien dice ser.

Se puede firmar un paquete RPM usando la Gnu Privacy Guard (o GnuPG), para
ayudarle a asegurarse que el paquete descargado es de fiar.

GnuPG es una herramienta para comunicación segura; reemplaza completa y


gratuitamente la tecnología de encriptación de PGP, un programa electrónico de
privacidad. Con GnuPG usted puede autentificar la validez de los documentos y
encriptar/descifrar datos de y hacia otros destinatarios.

Durante la instalación de CentOS Linux, GnuPG está instalado por defecto. De este
modo podrá usar inmediatamente GnuPG para verificar cualquier paquete que

95 Ing. Iván Ferreira


Instalación y gestión de paquetes

reciba desde CentOS. En primer lugar necesitará importar la clave pública privada
de CentOS.

Importar claves

Para verificar los paquetes de CentOS tiene que importar las claves de GPG de
CentOS. Para ello, ejecute el siguiente comando en el intérprete de comandos de
la shell:

# rpm --import /usr/share/rhn/RPM-GPG-KEY

Para ver la lista de todas las claves instaladas para la verificación de RPM, ejecute
el comando:

# rpm -qa gpg-pubkey*

Para la clave de CentOS, la salida incluye:

gpg-pubkey-db42a60e-37ea5438

Para mostrar más detalles sobre una clave determinada, use rpm -qi seguido de
la salida del anterior comando:

# rpm -qi gpg-pubkey-db42a60e-37ea5438

Verificación de la firma de paquetes

Para controlar la firma GnuPG de un archivo RPM después de importar la clave del
constructor GnuPG, use el siguiente comando (sustituya <archivo-rpm> con el
nombre de archivo de su paquete RPM):

# rpm -K <archivo-rpm>

Si todo va bien, verá el siguiente mensaje: md5 gpg OK. Esto significa que el paquete
no está dañado.

Red Hat Certified Engineer 96


Instalación y gestión de paquetes

Técnicas de uso de rpm

RPM es una herramienta útil ya sea para administrar su sistema que para
diagnosticar y solucionar problemas. La mejor manera de comprender todas sus
opciones es viendo algunos ejemplos.

Tal vez usted haya borrado algunos archivos accidentalmente, pero no está seguro
de lo que ha eliminado. Si desea verificar su sistema entero y ver lo que podría
hacer falta, podría intentarlo con el siguiente comando:

# rpm -Va

Si faltan algunos archivos o parecen dañados, probablemente debería o reinstalar


el paquete o desinstalarlo y luego reinstalarlo.

Tal vez alguna vez verá un archivo que no reconoce. Para saber a qué paquete
pertenece, teclearía:

# rpm -qf /usr/X11R6/bin/ghostview

La salida es parecida a lo siguiente:

gv-3.5.8-22

Podemos combinar los dos ejemplos de arriba en la siguiente hipótesis. Digamos


que está teniendo problemas con /usr/bin/paste. Le gustaría verificar el
paquete al cual pertenece ese programa, pero no sabe a cuál paquete pertenece
paste. Simplemente teclee el siguiente comando:

# rpm -Vf /usr/bin/paste

y se verificará el paquete correcto.

¿Desea encontrar más información sobre un determinado programa? Puede


intentar el siguiente comando para localizar la documentación que acompañaba el
paquete al cual pertenece ese programa.

97 Ing. Iván Ferreira


Instalación y gestión de paquetes

# rpm -qdf /usr/bin/free

La salida debería ser parecida a la siguiente:

/usr/share/doc/procps-2.0.11/BUGS
/usr/share/doc/procps-2.0.11/NEWS
/usr/share/doc/procps-2.0.11/TODO
/usr/share/man/man1/free.1.gz
/usr/share/man/man1/oldps.1.gz
/usr/share/man/man1/pgrep.1.gz
/usr/share/man/man1/pkill.1.gz
/usr/share/man/man1/ps.1.gz
/usr/share/man/man1/skill.1.gz
/usr/share/man/man1/snice.1.gz
/usr/share/man/man1/tload.1.gz
/usr/share/man/man1/top.1.gz
/usr/share/man/man1/uptime.1.gz
/usr/share/man/man1/w.1.gz
/usr/share/man/man1/watch.1.gz
/usr/share/man/man5/sysctl.conf.5.gz
/usr/share/man/man8/sysctl.8.gz
/usr/share/man/man8/vmstat.8.gz

Podría encontrar un RPM nuevo y no saber para qué sirve. Para encontrar
información sobre él, use el siguiente comando:

# rpm -qip crontabs-1.10-5.noarch.rpm

La salida es parecida a lo siguiente:

Name : crontabs Relocations: (not relocateable)


Version : 1.10 Vendor: CentOS, Inc.
Release : 5 Build Date: Fri 07 Feb 2003 04:07:32
PM EST
Install date: (not installed) Build Host: porky.devel.centos.org
Group : System Environment/Base Source RPM: crontabs-1.10-5.src.rpm
Size : 1004 License: Public Domain
Signature : DSA/SHA1, Tue 11 Feb 2003 01:46:46 PM EST, Key ID fd372689897da07a
Packager : CentOS, Inc.
Summary : Root crontab files used to schedule the execution of programs.
Description :
The crontabs package contains root crontab files. Crontab is the
program used to install, uninstall, or list the tables used to drive the
cron daemon. The cron daemon checks the crontab files to see when
particular commands are scheduled to be executed. If commands are
scheduled, then it executes them.

Quizás desea ver qué archivos instala el RPM crontabs. Ingrese lo siguiente:

Red Hat Certified Engineer 98


Instalación y gestión de paquetes

# rpm -qlp crontabs-1.10-5.noarch.rpm

La salida será de la siguiente manera:

Name : crontabs Relocations: (not relocateable)


Version : 1.10 Vendor: CentOS, Inc.
Release : 5 Build Date: Fri 07 Feb 2003 04:07:32
PM EST
Install date: (not installed) Build Host: porky.devel.centos.org
Group : System Environment/Base Source RPM: crontabs-1.10-5.src.rpm
Size : 1004 License: Public Domain
Signature : DSA/SHA1, Tue 11 Feb 2003 01:46:46 PM EST, Key ID fd372689897da07a
Packager : CentOS, Inc.
Summary : Root crontab files used to schedule the execution of programs.
Description :
The crontabs package contains root crontab files. Crontab is the
program used to install, uninstall, or list the tables used to drive the
cron daemon. The cron daemon checks the crontab files to see when
particular commands are scheduled to be executed. If commands are
scheduled, then it executes them.

Estos son solamente algunos ejemplos. Al usarlo, descubrirá muchos más usos
para RPM.

Yellowdog Updater Modified (YUM)

Yum es un actualizador automatico y administrador de paquetes para sistemas


basados en rpm. Yum provee:

● Multiples repositorios.

● Archivo simple de configuracion.

● Calculo correcto de dependencias.

● Interfaz simple.

Configuración de YUM

Antes de utilizar yum y para obtener el potencial total de yum, debemos importar la
clave GPG de CentOS. Para seguridad adicional, todos los paquetes del proyecto

99 Ing. Iván Ferreira


Instalación y gestión de paquetes

CentOS son firmados con la clave pública. Si intenta realizar una actualización sin
importar la clave, vera lo siguiente:

# yum update

You have enabled checking of packages via GPG keys. This is a good thing.
However, you do not have any GPG public keys installed. You need to download
the keys for packages you wish to install and install them.
You can do that by running the command:
rpm --import public.gpg.key
For more information contact your distribution or package provider.

La clave GPG de CentOS ha sido instalado en el sistema durante la instalación


inicial, de tal forma que importar la clave es un proceso simple:

# rpm --import /usr/share/{rhn,rpm-*}/RPM-GPG-KEY


# rpm --import /usr/share/doc/centos-*/RPM-GPG-KEY

Ahora el comando yum update se ejecutará correctamente.

Es importante conocer como agregar repositorios de terceros quienes pueden


ofrecer paquetes no disponibles directamente desde el proyecto CentOS. El archivo
de configuración por defecto es /etc/yum.conf, el cual contiene la sección
[main], y toda la información de los repositorios está almacenada en los archivos
/etc/yum.repos.d como archivos .repo.

La configuración por defecto utiliza los siguientes sitios mirror:

# cat /etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?
release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1

#released updates
[update]

Red Hat Certified Engineer 100


Instalación y gestión de paquetes

name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?
release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1

#packages used/produced in the build but not released


[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?
release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1

#additional packages that may be useful


[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?
release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=1
protect=1
enabled=1

#additional packages that extend functionality of existing packages


[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?
release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=2
protect=1

#contrib - packages by Centos Users


[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?
release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0

101 Ing. Iván Ferreira


Instalación y gestión de paquetes

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
priority=2
protect=1

El archivo Centos-Media.repo permite configurar un repositorio local a partir del


DVD de instalación.

# cat /etc/yum.repos.d/CentOS-Media.repo

[c4-media]
name=CentOS-$releasever - Media
baseurl=file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///usr/share/doc/centos-release-4/RPM-GPG-KEY-centos4

La configuración debería modificarse para utilizar sitios mirror que se encuentren


geográficamente mas cerca o sean mas rápidos. Fíjese en los sitios mirror para los
paquetes base y updates y seleccione el mas apropiado.

Las variables $releasever y $basearch son reemplazadas por la versión de


Linux y arquitectura utilizada respectivamente.

El fuerte de yum es la facilidad con la que puede agregar repositorios de terceros.


Para agregar un repositorio, simplemente agregue archivos .repo. He aquí unos
archivos de configuración para unos repositorios comunes:

# cat /etc/yum.repos.d/Extras.repo

[dries]
name=Extra CentOS rpms dries - $releasever - $basearch
baseurl=http://ftp.belnet.be/packages/dries.ulyssis.org/redhat/el$releasever/en/
$basearch/dries/RPMS/
enabled=1
gpgcheck=0

[rpmforge]
name = CentOS $releasever - RPMforge.net - dag
mirrorlist = http://apt.sw.be/redhat/el$releasever/en/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

Red Hat Certified Engineer 102


Instalación y gestión de paquetes

[kbs-CentOS-Extras]
name=CentOS.Karan.Org-EL$releasever - Stable
gpgcheck=1
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
enabled=1
baseurl=http://centos.karan.org/el$releasever/extras/stable/$basearch/RPMS/

La opción enabled habilita el repositorio, la opción gpgcheck debería ser


deshabilitada a menos que se cuente con la clave pública del sitio de descarga.

Utilización de YUM

Lo primero es actualizar la cabecera de rpms desde el repositorio.

# yum makecache

Para verificar las actualizaciones existentes ejecute:

# yum check-update

Para actualizar todo el sistema ejecute:

# yum update

Para actualizar un paquete especifico ejecute:

# yum update <paquete>

Para instalar un paquete que no tiene actualmente ejecute:

# yum install <paquete>

Para buscar un paquete puede utilizar el comando:

# yum search <texto_de_busqueda>

Suponiendo que una dependencia solicite una biblioteca que no es un paquete en


si, como libc6.1-1.so.2, como lo obtiene?

Ejecute:

103 Ing. Iván Ferreira


Instalación y gestión de paquetes

# yum provides libc6.1-1.so.2

Para desinstalar un paquete ejecute:

# yum remove <paquete>

Para eliminar paquetes en cache que son viejos y cabeceras no necesarias ejecute
el comando:

# yum clean all

Para obtener informacion de un paquete ejecute el comando:

# yum info <paquete>

Creación de un repositorio yum local

Si se tienen varias computadoras que deben ser actualizadas vía yum, entonces
debería considerar la creación de un repositorio local yum. Esto no solo conserva
ancho de banda, sino mejora la respuesta de yum para instalar programas
adicionales. Además, la ejecución de yum a través de LAN en lugar de WAN es
mucho mas rápida. La desventaja es que probablemente este descargando
actualizaciones no necesarias para sus máquinas.

Creación del repositorio base para YUM

Para crear un repositorio local yum, necesitará un servidor Web. La configuración


por defecto proporcionada con CentOS es suficiente.

Cree una carpeta yum en el directorio especificado como DocumentRoot en el


archivo de configuración del Apache, /etc/httpd/conf/httpd.conf. Por
defecto es /var/www/html:

# mkdir /var/www/html/yum

Ahora, puede crear una estructura de directorios para almacenar los archivos. Yum
soporta múltiples repositorios, de tal forma que puede actuar como servidor para

Red Hat Certified Engineer 104


Instalación y gestión de paquetes

cualquier versión de CentOS en el mismo servidor. La estructura utilizada para


almacenar los archivos será:

/var/www/html/yum/CentOS/<version>/base

Siendo <version> un número entero correspondiente con la versión de CentOS


utilizada.

Copie el contenido de cada CD de CentOS al directorio base.

# cp /media/cdrom/CentOS/RPMS/*.rpm /var/www/html/yum/CentOS/<version>/base

Ahora debe crear el archivo de metadatos XML para el repositorio, para ello
necesitará el paquete createrepo.

# yum install createrepo

Para crear el archivo de metadatos XML para el directorio de RPMS base ejecute:

# createrepo /var/www/html/yum/CentOS/<version>/base

Si el comando se ejecuta correctamente, los archivos de metadatos serán creados


en un directorio llamado
/var/www/html/yum/CentOS/<version>/base/repodata.

Creación del repositorio updates para YUM

El tener su propio repositorio base es excelente para la instalación de software,


pero puede sacar provecho de tener su propio repositorio de actualizaciones. La
creación de uno es tan fácil como la creación de un directorio base. La estructura
para el directorio de actualizaciones será:

/var/www/html/yum/CentOS/updates/<version>/

Luego, obtenga una copia de las actualizaciones, las cuales pueden ser obtenidas
de cualquier servidor de descarga de archivos de CentOS, o algún mirror listado en
http://www.centos.org/modules/tinycontent/index.php?id=13. Existen servidores

105 Ing. Iván Ferreira


Instalación y gestión de paquetes

identificados como rsync. Para descargar los archivos, puede utilizar el comando
rsync.

Puede crear una tarea cron para mantener actualizado el repositorio updates.

Luego de descargar todos los paquetes a la carpeta updates, ejecute nuevamente


el comando createrepo para generar los metadatos XML.

# createrepo /var/www/html/yum/CentOS/updates/<version>/

Si el comando se ejecuta correctamente, los archivos de metadatos serán creados


en un directorio llamado
/var/www/html/yum/CentOS/updates/<version>/repodata.

Una vez creados los repositorios asegúrese de iniciar el servicio httpd:

# service httpd start

Configuración de los equipos para utilizar el repositorio YUM local

Una vez creado el repositorio yum, es necesario indicar a los equipos que lo
utilicen. Esto se hace configurando el archivo /etc/yum.repos.d/local.repo:

[base]
name=CentOS $releasever - $basearch - Base
baseurl=http://nombre_servidor/CentOS/$releasever/base/

Luego configure el archivo /etc/yum.repos.d/local-updates.repo

[updates-released]
name=CentOS $releasever - $basearch - Released Updates
baseurl=http://nombre_servidor/CentOS/updates/$releasever/

Ahora, simplemente ejecute el comando yum update para actualizar los sistemas.

Si comparte los archivos a través de NFS, no necesita un servidor web para actuar
como repositorio, puede configurar yum para que utilice el repositorio via NFS,
utilizando como protocolo file://, por ejemplo, el archivo

Red Hat Certified Engineer 106


Instalación y gestión de paquetes

/etc/yum.repos.d/local_nfs.repo sería como sigue:

[base]
name=CentOS $releasever - $basearch - Base
baseurl=file:///recurso_nfs/CentOS/$releasever/base/

El archivo /etc/yum.repos.d/local_nfs-updates.repo sería como sigue

[updates-released]
name=CentOS $releasever - $basearch - Released Updates
baseurl=file:///recurso_nfs/CentOS/updates/$releasever/

107 Ing. Iván Ferreira


6
Configuración de impresoras
Configuración de impresoras

Configuración de impresoras

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.

CUPS además proporciona una interfaz web para la gestión de colas e impresoras.
Para acceder a la interfaz de administración, utilizando un navegador web
conéctese al URL http://localhost:631. También proporciona la herramienta por
línea de comandos lpadmin.

Para configurar manualmente las impresoras, debe conocer el URI (Uniform


Resource Identifier) el cual consiste de un back-end y parámetros.

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. El URI de una impresora
conectada al puerto paralelo sería parallel:/dev/lp0 y el URI de una
impresora conectada al puerto USB sería usb:/dev/usb/lp0.

● 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). El URI de una impresora accedida a través del protocolo IPP sería

109 Ing. Iván Ferreira


Configuración de impresoras

ipp://nombre_host/printers/impresora.

● 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).
El URI de una impresora accedida a través del protocolo LPD sería
lpd://nombre_host/impresora.

● 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. El
URI de una impresora accedida a través del protocolo SMB sería
smb://usuario:contraseña@nombre_host/impresora o
smb://nombre_host/impresora.

● Conectada JetDirect una impresora conectada directamente a la red a


través de HP JetDirect en vez de a un computador. El URI de una impresora
accedida a través de JetDirec sería socket://nombre_host:9100.

Añadir una impresora local

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

Red Hat Certified Engineer 110


Configuración de impresoras

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.

111 Ing. Iván Ferreira


Configuración de impresoras

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

Red Hat Certified Engineer 112


Configuración de impresoras

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.

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.

113 Ing. Iván Ferreira


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.

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

Red Hat Certified Engineer 114


Configuración de impresoras

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 lpstat. La salida de este comando,
serán similares a lo siguiente:

115 Ing. Iván Ferreira


Configuración de impresoras

# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 acepta peticiones desde vie 09 oct 2009 09:42:22 PYT
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
la impresora hplj01 está inactiva. activada desde vie 09 oct 2009 09:42:22 PYT
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT

Con la opción -R del comando lpstat puede visualizar los trabajos de impresión.

# lpstat -R
0 hplj01-1 root 1024 vie 09 oct 2009 09:44:43 PYT
1 hplj01-2 root 2048 vie 09 oct 2009 09:44:47 PYT

Si desea cancelar un trabajo de impresión, use el comando cancel y el


identificador de trabajo. Por ejemplo:

# cancel hplj01-2

Para borrar todos los trabajos de impresión de la cola hplj01 ejecute el comando:

# cancel -a hplj01

Si desea mover un trabajo de impresión pude utilizar el comando lpmove, por


ejemplo, para mover un trabajo de impresión de la cola hplj01 a la cola hplj02 utilice
los siguientes comandos:

# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 acepta peticiones desde vie 09 oct 2009 09:57:31 PYT
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
la impresora hplj01 está imprimiendo hplj01-3. activada desde vie 09 oct 2009
09:57:31 PYT
No pages found!
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT
hplj01-3 root 2048 vie 09 oct 2009 09:57:31 PYT

# lpmove hplj01-3 hplj02

# lpstat -t
el programa de planificación de tareas se está ejecutando

Red Hat Certified Engineer 116


Configuración de impresoras

destino por omisión del sistema: hplj01


dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 acepta peticiones desde vie 09 oct 2009 09:57:43 PYT
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
la impresora hplj01 está inactiva. activada desde vie 09 oct 2009 09:57:43 PYT
No pages found!
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT
hplj02-3 root 2048 vie 09 oct 2009 09:57:31 PYT

Deshabilitando las impresoras y las colas de impresión

Los comandos cupsenable y cupsdisable pueden ser utilizados 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.

Puede suponer que los comandos anteriores permiten controlar válvulas como se
muestra en la siguiente imágen:

117 Ing. Iván Ferreira


Configuración de impresoras

Por ejemplo, para controlar la impresora y la cola de impresión hplj01, primero


utilice el comando lpstat para identificar el estado de la impresora:

# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 acepta peticiones desde vie 09 oct 2009 09:48:48 PYT
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
la impresora hplj01 está inactiva. activada desde vie 09 oct 2009 09:48:48 PYT
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT

Deshabilite la impresora hplj01:

# /usr/sbin/cupsdisable hplj01

Verifique nuevamente el estado de la impresora:

# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 acepta peticiones desde vie 09 oct 2009 09:52:01 PYT
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
impresora hplj01 desactivada desde vie 09 oct 2009 09:52:01 PYT -
Paused
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT

Deshabilite la cola de impresión:

Red Hat Certified Engineer 118


Configuración de impresoras

# /usr/sbin/reject hplj01

Verifique nuevamente el estado de la impresora:

# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 no acepta peticiones desde vie 09 oct 2009 09:52:01 PYT -
Rejecting Jobs
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
impresora hplj01 desactivada desde vie 09 oct 2009 09:52:01 PYT -
Rejecting Jobs
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT

Habilite la cola de impresión y la impresora:

# /usr/sbin/accept hplj01
# /usr/sbin/cupsenable hplj01

Verifique nuevamente el estado de la impresora:

# lpstat -t
el programa de planificación de tareas se está ejecutando
destino por omisión del sistema: hplj01
dispositivo para hplj01: usb:/dev/usb/lp0
dispositivo para hplj02: parallel:/dev/lp0
hplj01 acepta peticiones desde vie 09 oct 2009 09:54:51 PYT
hplj02 acepta peticiones desde vie 09 oct 2009 09:42:37 PYT
la impresora hplj01 está inactiva. activada desde vie 09 oct 2009 09:54:51 PYT
la impresora hplj02 está inactiva. activada desde vie 09 oct 2009 09:42:37 PYT

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.

119 Ing. Iván Ferreira


Configuración de impresoras

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.

Red Hat Certified Engineer 120


7
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


X.Org, una implementación de código abierto creada para manejar el desarrollo y la
estrategia para el sistema X y sus tecnologías asociadas. X.Org 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

Red Hat Certified Engineer 122


El sistema X Window

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/fonts.conf.

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/xorg.conf.

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

123 Ing. Iván Ferreira


El sistema X Window

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 >

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:

Red Hat Certified Engineer 124


El sistema X Window

● 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.

125 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/xorg.conf.

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/xorg.conf.

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 xorg.conf

Mientras que casi nunca se necesita editar manualmente el


/etc/X11/xorg.conf, 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/xorg.conf 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.

Red Hat Certified Engineer 126


El sistema X Window

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.

A continuación se describen 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

Las opciones más útiles son:

● "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.

127 Ing. Iván Ferreira


El sistema X Window

● "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:

● 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.

El siguiente ejemplo es 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".

Red Hat Certified Engineer 128


El sistema X Window

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
las rutas detectadas automáticamente.

129 Ing. Iván Ferreira


El sistema X Window

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

Red Hat Certified Engineer 130


El sistema X Window

● glx

● freetype

● type1

● record

● dri

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/xorg.conf, 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"

131 Ing. Iván Ferreira


El sistema X Window

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


botones a que se comporte como uno de tres cuando se presionen
ambos botones simultáneamente.

Consulte la página man xorg.conf 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.

Red Hat Certified Engineer 132


El sistema X Window

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
para el monitor.

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

133 Ing. Iván Ferreira


El sistema X Window

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 xorg.conf.

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

Red Hat Certified Engineer 134


El sistema X Window

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


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

135 Ing. Iván Ferreira


El sistema X Window

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"
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.

Red Hat Certified Engineer 136


El sistema X Window

● 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

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


modifique estos valores para esta sección sin primero referirse a
http://dri.sourceforge.net/.

137 Ing. Iván Ferreira


El sistema X Window

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/fonts.conf, 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

Red Hat Certified Engineer 138


El sistema X Window

/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.

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 > fonts.scale
# mkfontdir

Si verifica el contenido del directorio debería encontrar dos archivos además de los
archivos de fuente, “fonts.scale” y “fonts.dir”. 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


Xwindow buscará las fuentes:

139 Ing. Iván Ferreira


El sistema X Window

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.

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

Red Hat Certified Engineer 140


El sistema X Window

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


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.

141 Ing. Iván Ferreira


El sistema X Window

● 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/fonts.scale

Reinicie el servidor de fuentes xfs utilizando el comando siguiente como root:

# service xfs reload

Fuentes Liberation

En Mayo de 2007, Red Hat 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 142


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 .TAR.GZ 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

143 Ing. Iván Ferreira


El sistema X Window

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
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

Red Hat Certified Engineer 144


El sistema X Window

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>/sysconfig.txt
(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
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] =>

145 Ing. Iván Ferreira


El sistema X Window

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

Red Hat Certified Engineer 146


El sistema X Window

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
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

# scp ~/.Xauthority venus:

147 Ing. Iván Ferreira


El sistema X Window

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

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 mercurio.linux.com.py y desea ejecutar algo remotamente desde el equipo
llamado venus.linux.com.py. Observe atentamente el nombre de host en el prompt.

Debe indicar a su servidor X que clientes desde venus.linux.com.py tienen permiso


para dibujar imágenes en su pantalla:

[root@mercurio ~]# xhost +venus.linux.com.py

Conéctese al host remoto venus.linux.com.py:

[root@mercurio ~]# telnet venus.linux.com.py

Ahora ha iniciado sesión en venus, cada comando que ejecute será ejecutado en

Red Hat Certified Engineer 148


El sistema X Window

venus. Debe exportar la variable display indicando que la pantalla estará en el host
mercurio.linux.com.py:0.0:

[root@venus ~]# export DISPLAY=mercurio.linux.com.py:0.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
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.

149 Ing. Iván Ferreira


El sistema X Window

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
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:

Red Hat Certified Engineer 150


El sistema X Window

#!/bin/sh
/usr/bin/X -query <dirección_ip_del_Servidor>

Ejemplo:

#!/bin/sh
/usr/bin/X -query 192.168.1.254

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.

151 Ing. Iván Ferreira


El sistema X Window

# vino-preferences

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 mercurio.linux.com.py:0

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.

Red Hat Certified Engineer 152


El sistema X Window

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

153 Ing. Iván Ferreira


8
Software RAID
Software RAID

Tecnología RAID

Los medios magnéticos más comunes para almacenar información son los
dispositivos denominados discos duros. Básicamente, los discos duros están
compuestos por platos magnéticos que mantienen los impulsos eléctricos que
representan los datos, y cabezas de lectura/escritura que son componentes
mecánicos móviles encargados de convertir los bits en pulsos electromagnéticos y
almacenarlos en los platos.

Los discos duros son muy frágiles, es el componente de un sistema computacional


que puede fallar con mayor facilidad. Esto es debido a los componentes mecánicos
móviles, los cuales se desgastan y tienen un cierto tiempo de vida útil. Además
variaciones en la corriente de alimentación puede ocasionar que un disco se
estropee, haciendo que los datos no puedan ser obtenidos.

En 1987, la universidad de California Berkeley, publicó un artículo titulado A case


for Redundant Arrays of Inexpensive Disks (RAID). Este artículo describía varios
tipos de arreglos de discos, referido por el acrónimo de RAID. La idea básica del
RAID era combinar múltiples discos pequeños independientes, en un arreglo de
discos el cual lograba un rendimiento superior al de un sólo disco de mayor
capacidad y mayor costo. Adicionalmente este arreglo de disco aparecía al
computador como una sola unidad lógica.

Los arreglos de discos pueden ser tolerante a fallas por medio del almacenamiento
de información redundante. Entendemos por tolerancia a fallos (o redundancia), a
la posibilidad de acceder a la información almacenada en un arreglo de discos de
forma ininterrumpida, aún ante la pérdida de uno de los discos que conforman el
arreglo.

Software RAID

Software RAID implementa los distintos niveles de RAID en el código del kernel. El
kernel de Linux contiene un controlador MD que permite configurar una solución de
RAID totalmente independiente del hardware. El rendimiento de un arreglo por

155 Ing. Iván Ferreira


Software RAID

software depende de la carga y rendimiento de CPU del servidor.

Niveles de RAID

Los sistemas de RAID pueden ser configurados en distintos niveles que definen su
arquitectura. Cada nivel posee características especiales de rendimiento,
capacidad de almacenamiento y tolerancia a fallos.

RAID Nivel 0 – Conjunto de bandas sin paridad

El RAID 0 (Data stripping without parity) incrementa el rendimiento de E/S


dividiendo el dato en bandas y repartiendo el dato a través de múltiples discos.
Cada petición de E/S es dividida en pequeños segmentos conocidos como bandas.
El tamaño de las bandas es conocido como “chunk size” o “stripe size”. Estas
bandas de datos son repartidas entre los discos del arreglo, permitiendo que varios
discos participen en una solicitud de E/S.

En la siguiente figura se muestra la lógica de funcionamiento de un RAID 0.

Por ejemplo, en un RAID 0 que contiene tres discos, la primera porción de una
solicitud de E/S es escrita al disco 1, la segunda al disco 2, la tercera al disco tres y
así sucesivamente hasta que todo el dato ha sido escrito a los discos.

La relación entre el tamaño de la banda y el tamaño promedio de las peticiones

Red Hat Certified Engineer 156


Software RAID

determinan si el RAID 0 maximiza la tasa de peticiones o la tasa de transferencia


de datos.

El mayor beneficio del RAID 0 es que balancea la carga de E/S entre todos los
discos en el arreglo. Esto incrementa el rendimiento del sistema eliminando el
cuello de botella que ocurre frecuentemente cuando el dato es concentrado en un
sólo disco.

Un RAID 0 puede contener solamente discos de la misma capacidad. La capacidad


efectiva del arreglo es la combinación del tamaño de todos los discos que lo
conforman, por lo tanto si combina 5 discos de 10 GB tendrá 50 GB disponibles
para almacenar información.

El RAID 0 no proporciona tolerancia a fallos, la falla en cualquier disco del arreglo


provoca la pérdida del arreglo.

RAID 1 – Espejado de discos

Esta tecnología ofrece la mayor confiabilidad entre las tecnologías de RAID. La


estrategia de RAID 1 (Disk mirroring) automáticamente duplica la información en
dos o mas discos idénticos.

En la siguiente figura se muestra la lógica de funcionamiento de un RAID 1.

En RAID 1 es posible mantener el acceso a los datos ante la falla de un disco,


debido a que la información se encuentra exactamente duplicada.

157 Ing. Iván Ferreira


Software RAID

Cuando se escribe un dato a un arreglo en RAID 1, el dato es escrito en simultáneo


a los discos espejados, esto ofrece un rendimiento de escritura igual a la de un
único disco sin RAID.

Cuando un dato es leído es descompuesto de tal forma que una porción del dato es
leído de cada copia del espejo en simultáneo, por lo tanto, el rendimiento de lectura
es el doble de un disco sin RAID.

Como el arreglo está configurado de tal forma a que los datos sean copiados de
forma exactamente igual a cada disco del espejo, la capacidad disponible en el
arreglo es igual a la capacidad de uno discos que conforman el arreglo. Por
ejemplo, si se crea un RAID 1 con 2 discos de 1 GB, la capacidad total utilizable es
1 GB. Si se crea un RAID 1 con 3 discos, la capacidad total utilizable sigue siendo
1 GB, sin embargo, esta configuración permite la pérdida de dos discos en lugar de
uno.

RAID 5 – Conjunto de bandas con paridad distribuida

El RAID 5 (Data stripping with distributed parity) utiliza la tecnología de distribución


de bandas del RAID 0 para aumentar el rendimiento E/S y utiliza paridad distribuida
para asegurar la disponibilidad de los datos.

El RAID 5 divide las peticiones de E/S en pequeñas bandas que son repartidas
entre los discos. El RAID 5 además crea bandas de paridad de datos y los reparte
entre todos los miembros del RAID, en lugar de utilizar un disco de paridad
dedicado como el RAID 3 o RAID 4, eliminando el cuello de botella producido por
éste. Esta paridad de datos es derivada matemáticamente de los datos de E/S y
posibilita la reconstrucción de los datos en caso de que un disco falle.

Es posible ajustar el tamaño de la banda (chunk size). La relación entre el tamaño


de la banda y el tamaño promedio de las peticiones determinan si el arreglo
maximiza la tasa de peticiones o la tasa de transferencias.

En la siguiente figura se muestra la lógica de funcionamiento de un RAID 1.

Red Hat Certified Engineer 158


Software RAID

El RAID 5 requiere como mínimo tres discos idealmente del mismo tamaño, tanto
los datos como la paridad es distribuida a través de los discos. La paridad es
calculada utilizando operaciones XOR (exclusive OR). La capacidad utilizable del
arreglo es:

C = T * N -1

C: Capacidad.

T: Tamaño del disco mas pequeño del arreglo.

N: Número de discos.

Para mayor rendimiento distribuya los discos entre los puertos de los controladores
de forma pareja para obtener múltiples vías de acceso.

RAID 6 – Conjunto de bandas con doble paridad distribuida

RAID 6 (Data stripping with dual distributed parity) es muy similar al RAID 5, sin
embargo, utiliza doble paridad permitiendo el fallo simultáneo de dos discos en el
mismo arreglo. Sin embargo, el rendimiento de un RAID 6 es menor al de un RAID
5 debido al trabajo adicional de calcular y escribir la doble paridad.

159 Ing. Iván Ferreira


Software RAID

La siguiente figura muestra la lógica del funcionamiento de un RAID 6.

El RAID 6 es útil cuando el rendimiento de acceso a los datos no es prioridad y los


discos son de gran tamaño. Ante la falla de discos de gran tamaño, el proceso de
reconstrucción del arreglo ante el reemplazo del disco podría demorar bastante
tiempo, incrementando las posibilidades del fallo de un segundo disco del mismo
arreglo, el RAID 6 puede resolver esta problemática debido a su doble paridad.

El RAID 6 requiere como mínimo cuatro discos idealmente del mismo tamaño, tanto
los datos como la paridad es distribuida a través de los discos. La paridad es
calculada utilizando operaciones XOR (exclusive OR). La capacidad utilizable del
arreglo es:

C = T * N -2

C: Capacidad.

T: Tamaño del disco mas pequeño del arreglo.

N: Número de discos.

Red Hat Certified Engineer 160


Software RAID

Configuración de software RAID

Durante la instalación del sistema operativo puede utilizar el asistente de


particiones Disk Druid para configurar software RAID.

Primero, deberá crear las particiones de tipo Software RAID y posteriormente


utilizar el botón RAID para crear el tipo de RAID deseado.

Por ejemplo, para crear un RAID 1 para el sistema de archivos /boot, necesitará al
menos dos discos duros. En cada disco duro, cree una partición de 150 MB de tipo
software RAID.

Primero cree la partición de tipo Software RAID en el primer disco duro:

Luego cree la partición de tipo Software RAID en el segundo disco duro:

161 Ing. Iván Ferreira


Software RAID

Con las particiones creadas, haga clic sobre el botón RAID y seleccione la opción
Crear un dispositivo RAID

Seleccione el tipo de sistema de archvios ext3 y el punto de montaje


correspondiente. Asegúrese de seleccionar correctamente el Nivel de RAID de la
lista desplegable.

Red Hat Certified Engineer 162


Software RAID

Deberá realiza el mismo procedimiento para todos los sistemas de archivos.

Una vez finalizada la instalación, deberá asegurarse que GRUB es instalado


además en el segundo disco. Para ello, ejecute los siguientes comandos:

# grub
grub> root (hd0,0)

163 Ing. Iván Ferreira


Software RAID

grub> setup (hd0)


grub> root (hd1,0)
grub> setup (hd1)
grub> quit

El dispositivo (hd0,0) sería la /dev/sda1 y (hd1,0) sería /dev/sdb1, las


particiones que contienen el sistema de archivos /boot. El dispositivo (hd0) y
(hd1) serían el MBR de /dev/sda y /dev/sdb respectivamente.

Verificación del estado de los dispositivos RAID

El estado de los arreglos puede determinarse consultando archivo /proc/mdstat.


Debe entender la forma de leer el archivo. Por ejemplo:

Personalities : [raid1]
read_ahead 1024 sectors
md5 : active raid1 sdb5[1] sda5[0]
4200896 blocks [2/2] [UU]

md6 : active raid1 sdb6[1] sda6[0]


2104384 blocks [2/2] [UU]

md7 : active raid1 sdb7[1] sda7[0]


2104384 blocks [2/2] [UU]

md2 : active raid1 sdc7[1] sdd8[2] sde5[0]


1052160 blocks [2/2] [UU]

unused devices: none

Analizaremos el dispositivo md5 el cual es un RAID 1. Fíjese en el valor [N/N] que


para el dispositivo md5 es [2/2]. El primer valor indica la cantidad de dispositivos
que conforman el arreglo, el segundo la cantidad de dispositivos activos en ese
momento.

El número [N] que sigue a cada dispositivo es el papel que cumple en el arreglo,
para el dispositivo md5 tenemos sdb5[1] sda5[0]. Los miembros activos del
arreglo tienen un número menor a la cantidad de dispositivos que conforman el
arreglo, en este caso 2. Cualquier dispositivo con valor mayor o igual a la cantidad
de dispositivos que conforman el arreglo son discos spare. El dispositivo md5 no

Red Hat Certified Engineer 164


Software RAID

contiene ningún disco spare.

Ahora analicemos el dispositivo md2, el cual esta compuesto por dos miembros
activos según lo indica “[2/2]”. Los miembros activos son sde5[0] sdc7[1],
por tener un valor de función menor a la cantidad de miembros del arreglo según lo
indica el [0] y el [1]. El dispositivo sdd8[2] tiene un valor de función igual al de
la cantidad de miembros activos del arreglo [2], por lo tanto, este disco es un
spare.

Además si existe un fallo, el dispositivo que fallo se será marcado con una (F).

Gestión de arreglos con el comando mdadm

El comando mdadm es utilizado para crear o gestionar los arreglos posteriormente a


la instalación.

La sintaxis general del comando mdadm es la siguiente:

mdadm [modo] <dispositivo raid> [opciones] <discos que componen>

El modo crear es utilizado para crear un nuevo arreglo. En el siguiente ejemplo


utilizaremos mdadm para crear un RAID 1 /dev/md5 compuesto de /dev/sdc1 y
/dev/sdd1. Deberá crear las particiones con el comando fdisk y establecer el tipo
Software RAID (código fd).

# mdadm --create --verbose /dev/md5 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdd1

La opción --level especifica el tipo de RAID a crear. Cada opción de mdadm


además tiene una forma corta menos descriptiva pero más fácil de digitar. Por
ejemplo, el siguiente comando utiliza la forma corta:

# mdadm -Cv /dev/md0 -l1 -n2 /dev/sdc1 /dev/sdd1

La opción -C selecciona el modo “Create” (crear), la opción -v es para obtener


mayor descripción de lo que sucede. La opción -l específica el nivel del RAID y la

165 Ing. Iván Ferreira


Software RAID

opción -n la cantidad de discos que lo conforman.

Utilizando el modo de gestión “manage mode” puede agregar y remover discos de


un arreglo. Esto es necesario para remover discos fallados, agregar discos spare y
agregar discos de reemplazo. El modo de gestión puede ser utilizado para marcar
un disco como fallado.

Para forzar el fallo de un disco de un arreglo, ejecute el comando:

# mdadm /dev/md0 -–fail /dev/sdc1

Luego, para remover un disco de un arreglo:

# mdadm /dev/md0 –-remove /dev/sc1

Para agregar un disco a un arreglo:

# mdadm /dev/md0 –-add /dev/sdc1

Si el RAID se encuentra degradado, iniciará la reconstrucción de la información al


disco, de lo contrario el disco será agregado como un disco spare para el arreglo.

Red Hat Certified Engineer 166

También podría gustarte