You are on page 1of 56

System Initialization and Services

Sinopsis de la secuencia de arranque


Conceptos clave
Despus del arranque, la inicializacin de Red Hat Enterprise Linux se realiza en cuatro
etapas: BIOS, un gestor de arranque, el kernel y / sbi n/ i ni t .
La configuracin del BIOS permite especificar una secuencia de dispositivos que se deberan
considerar dispositivos de arranque.
Una vez que el BIOS haya seleccionado un dispositivo de arranque, transfiere el control a
cualquier ejecutable que se encuentre en el registro de arranque maestro del dispositivo.
System Initialization and Services
Discusin
Introduccin
Desde el momento en que se enciende hasta que los usuarios inician sesin en una mquina que
est funcionando, el sistema pasa a travs de cuatro etapas distintas de inicializacin.
1. BIOS: El sistema operativo mnimo que est localizado en el ROM de la placa madre.
2. Gestor de arranque: La aplicacin mnima que se carga desde el MBR del disco, se utiliza
para cargar y pasar el control al kernel de Linux.
3. Kernel: El kernel de Linux inicializa las estructuras internas y los controladores de
dispositivos, provee un sistema de archivos inicial e inicia el primer proceso.
4. /sbin/init: El proceso /sbin/init realiza la mayor parte del trabajo duro (pertinente a la
administracin del sistema) para inicializar la mquina.
Este cuaderno explicar las diferentes etapas en detalle. Esta primera leccin presenta toda la
estructura y la configuracin pertinente del BIOS. La segunda leccin presenta el gestor de
arranque GRUB y la funcin del kernel de Linux en el arranque. Las ltimas dos lecciones
abordarn la funcin del proceso inicial / sbi n/ i ni t y la configuracin de servicios de Red Hat
Enterprise Linux.
BIOS
Cada computador, cuando se enciende por primera vez, inicia un sistema operativo mnimo
llamado BIOS de Basic Input/Output Sytem (sistema bsico de entrada/salida). El BIOS de un
sistema es una funcionalidad permanente de la placa madre.
[1]
La mayora de los BIOS ofrecen
una utilidad interactiva, que puede ser iniciada al presionar una secuencia de teclas determinada
durante el inicio tal como la tecla SUPR, o F10. La secuencia de teclas difiere entre sistemas y se
presenta como parte del proceso de inicio.
Cuando inicia, el BIOS de un sistema por lo general realiza las siguientes funciones.
Verificacin del sistema POST
El BIOS realiza una revisin integral del sistema, asegurando que los componentes centrales tales
como la CPU o la memoria estn presentes y funcionando. Esta prueba se refiere a menudo como el
POST o Prueba de energa en s mismo.
Inicializacin de dispositivos
El BIOS de un sistema inicializa los controladores de dispositivos centrales para el teclado, los
puertos seriales de vdeo y otros, asignando los recursos de sistema apropiados tales como lneas
IRQ y puertos E/S. Los BIOS modernos implementan el protocolo Plug n' Play, el cual se utiliza
para probar los dispositivos PCI para configuraciones de recursos compatibles y luego asignar a
cada dispositivo PCI una configuracin sin conflictos.
Muchos sistemas operativos tambin pueden realizar una configuracin similar a Plug n' Play y la
mayora de BIOS proveen una configuracin tal como Pl ug n' Pl ay Awar e OS? [ Y/ n] , la
cual puede hacer que BIOS difiera la configuracin hasta que se cargue el sistema operativo.
Aunque Linux s soporta Plug n' Play, se sugiere, por lo general, que BIOS realice la configuracin
Plug n' Play (por ejemplo, al responder "No" a la configuracin BIOS anterior).
Seleccin del dispositivo de arranque
Despus de inicializar los dispositivos, BIOS busca un dispositivo de arranque apropiado. El
dispositivo de arranque es seleccionado generalmente desde las opciones posibles.
Dispositivo blando
CD-ROM
IDE o disco duro SCSI
Tarjeta de red conforme a PXE
Una tarjeta de red conforme a PXE, del ingls Preboot Execution Environment (entorno de
ejecucin de prearranque) suele implementar el protocolo de configuracin IP DHCP (o BOOTP) y
el archivo TFTP transfiere el protocolo de origen, el cual permite que la tarjeta de red descubra y
descargue una imagen de kernel desde la red. Dicha tarjeta de red es la excepcin a la regla y la
configuracin PXE va ms all del objetivo de este curso.
La eleccin del dispositivo de arranque apropiado se configura a travs de las aplicaciones
interactivas del BIOS. Por lo general, el BIOS permite que se establezca un "orden jerrquico",
primero busca un disquete de arranque y si no hay uno entonces busca un CD-ROM de arranque y
por ltimo busca un disco duro de arranque.
Entregando las riendas
Una vez se ha seleccionado el disco de arranque apropiado, el BIOS carga el primer bloque del
disco (512 bytes) en la memoria y pasa la ejecucin a esta regin. El primer bloque de un disco de
arranque debe contener un ejecutable pequeo conocido como un gestor de arranque.
Continuaremos con este tema en la prxima leccin.
System Initialization and Services
El gestor de arranque GRUB
Conceptos clave
En general, los gestores de arranque en Linux son responsables de tres cosas:
1. Componer una lnea de comandos de kernel correcta (que haga referencia a la
particin raz correcta).
2. Cargar un disco ram inicial apropiado (initrd).
3. Cargar y pasar el control a un kernel Linux apropiado.
Los gestores de arranque suelen disearse en dos etapas, con la primera etapa lo
suficientemente pequea para residir en un registro de arranque maestro.
GRUB es el gestor de arranque recomendado para Red Hat Enterprise Linux.
GRUB utiliza el archivo de configuracin / boot / gr ub/ gr ub. conf .
Tras el inicio, GRUB se puede utilizar para editar su configuracin y arrancar con la nueva
especificacin de modo interactivo.
Tras el inicio, el kernel de Linux monta la particin raz de slo lectura e inicia el primer
proceso, por lo general, / sbi n/ i ni t .
System Initialization and Services
Discusin
La funcin de un gestor de arranque
Tras el arranque, el BIOS pasa el control a un pequeo ejecutable conocido como un cargador de
arranque. Por lo general, realiza las siguientes tres tareas.
1. Componer una lnea de comandos kernel.
2. Cargar un disco ram de inicio (initrd), si es necesario.
3. Cargar y pasar el control al kernel de Linux
Qu es un disco ram de inicio?
Algunas veces, Red Hat elige implementar partes del kernel necesarias para cargar el sistema de
archivos como mdulos del kernel. Esta eleccin naturalmente presenta un problema. Desde
dnde carga el kernel sus mdulos de kernel si son necesarios en el proceso de arranque antes de
que se cree el sistema de archivos? La respuesta es un disco RAM inicial, el cual es una imagen del
sistema de archivos que contiene los mdulos necesarios. El gestor de arranque carga la imagen en
la memoria para el kernel, desde donde el kernel puede montar el sistema de archivos y cargar los
mdulos necesarios.
Los detalles de las imgenes de disco RAM iniciales conocidas como initrd, se tratarn en un
cuaderno ms adelante. Por ahora, observe que en Red Hat Enterprise Linux, los kernels casi
siempre tienen initrd asociados, los initrd se llaman convencionalmente / boot / i ni t r d-
kernelversion. i mg y el gestor de arranque es el responsable de cargarlos.
Una eleccin de gestores de arranque
Red Hat Enterprise Linux ofrece una surtido de gestores de arranque, cada uno de los cuales puede
realizar estas funciones. El gestor de arranque tradicional de Linux se conoce como LILO, cuyo
nombre es un doble juego de palabras en ingls, porque es LInux LOader, y LIes LOw en el
proceso de arranque. El gestor de arranque LILO es especfico para Linux y el sistema de archivos
ext2.
Un gestor de arranque relativamente reciente es el GRUB Grand Unified Bootloader, (Gran gestor
de arranque unificado). El GRUB es un proyecto patrocinado por GNU y como su nombre lo
implica, est diseado para funcionar con mltiples sistemas operativos (y sistemas de archivos).
Tanto LILO como GRUB pueden utilizarse para realizar las tareas necesarias mencionadas
anteriormente desde una configuracin predeterminada (no interactiva) o para permitir al usuario
sobrescribir la configuracin en el momento del arranque. GRUB es ahora el gestor de arranque de
Red Hat Enterprise Linux (LILO ya no se utiliza) y ser el tema de este texto.
Diseo del gestor de arranque
Como mencionamos en la leccin anterior, el BIOS generalmente pasa el control al gestor de
arranque cuando carga y ejecuta el primer bloque de un disco. Esto obliga a los gestores de
arranque a implementar un diseo de dos etapas.
Primera etapa
La primera etapa de un gestor de arranque es generalmente pequea, diseada para ajustarse en el
registro de arranque maestro (de hecho, comparte el MBR con la tabla de particiones!) o el
bootsector de una particin.
[1]
La nica tarea de este gestor de arranque de la primera etapa es el
ubicar, cargar y pasar el control al gestor de arranque de la segunda etapa. Ya que el gestor de
arranque de la primera etapa se encuentra en el MBR o en el sector de arranque usualmente no es
un archivo visible en el sistema de archivos.
Segunda etapa
La segunda etapa de un gestor de arranque es por lo general el propio gestor de arranque, el cual
ejecuta una forma de aplicacin (a menudo interactiva) en el inicio y puede leer informacin de
configuracin acerca de configuraciones por defecto. El gestor de arranque de la segunda etapa
suele ser un archivo binario identificable en el sistema de archivos.
Diseo GRUB
Los componentes del gestor de arranque GRUB tradicionalmente residen en el
directorio / boot / gr ub.
La segunda etapa del gestor de arranque es bastante fcil de identificar: se llama st age2. El
archivo st age1 es una copia del gestor de arranque de la primera etapa instalada en el MBR o en
el sector de arranque (observe que el tamao es sospechoso en la siguiente transcripcin).
Los archivos que terminan en 1_5 son sistemas de archivos especficos a la "primera etapa y
mitades", utilizados para localizar y leer st age2, gr ub. conf y otros archivos desde varios
sistemas de archivos.
Por lo general, la nica parte "servible al usuario" de GRUB es su archivo de
configuracin, / boot / gr ub/ gr ub. conf .
Configuracin GRUB
GRUB utiliza un archivo de configuracin de texto ASCII, / boot / gr ub/ gr ub. conf , que suele ser
editado a mano con un editor de texto. Una muestra del archivo de configuracin se ilustra a
continuacin.
[root@station root]# ls /boot/grub/
devi ce. map f f s_st age1_5 menu. l st spl ash. xpm. gz vst af s_st age1_5
e2f s_st age1_5 gr ub. conf mi ni x_st age1_5 st age1 xf s_st age1_5
f at _st age1_5 j f s_st age1_5 r ei ser f s_st age1_5 st age2
[root@station root]# ls -l /boot/grub/stage1
- r w- r - - r - - 1 r oot r oot 512 Apr 1 2003 / boot / gr ub/ st age1
El archivo est estructurado con una seccin "global" principal que consta de todas las lneas antes
de la primera lnea empezando por la palabra clave t i t l e, y una o ms definiciones menuitem que
comienzan con la palabra clave t i t l e. El espacio en blanco dentro de una lnea es insignificante,
aunque la definicin de estrofas llevan sangras con el TABULADOR. Cada lnea correspondiente
debe iniciar con una palabra clave reconocida y el resto de los parmetros de la palabra clave deben
presentarse en la misma lnea, (los usuarios de editores de texto que automticamente delimitan
lneas, tengan cuidado!)
Por lo general, el archivo / boot / gr ub/ gr ub. conf se edita directamente y los cambios se
efectan la prxima vez que grub se ejecute, (i.e., en el prximo arranque del sistema).
Cmo se refiere GRUB a los archivos
La sintaxis del archivo de configuracin GRUB es sencilla a excepcin de la sintaxis que GRUB
utiliza para referirse a los archivos, la cual se presenta a continuacin.
Los componentes entre parntesis se utilizan para identificar una particin de disco particular. La
ruta de archivo identifica un archivo dentro del sistema de archivos que se encuentra en una
particin especificada. La interpretacin de cada componente implica sutilezas resumidas en el
cuadro a continuacin.
Table 1. Forma en que GRUB se refiere a archivos
[root@station root]# cat /etc/grub.conf
# gr ub. conf gener at ed by anaconda
#
# Not e t hat you do not have t o r er un gr ub af t er maki ng changes t o t hi s f i l e
# NOTI CE: You have a / boot par t i t i on. Thi s means t hat
# al l ker nel and i ni t r d pat hs ar e r el at i ve t o / boot / , eg.
# r oot ( hd0, 0)
# ker nel / vml i nuz- ver si on r o r oot =/ dev/ hda3
# i ni t r d / i ni t r d- ver si on. i mg
#boot =/ dev/ hda
def aul t =0
t i meout =10
spl ashi mage=( hd0, 0) / gr ub/ spl ash. xpm. gz
hi ddenmenu
passwor d - - md5 $2$Mr XSq0xS$0LXqkBTf pywyD3TVCao3d0
t i t l e Red Hat Li nux ( 2. 6. 9- 5. EL)
r oot ( hd0, 0)
ker nel / vml i nuz- 2. 6. 9- 5. EL r o r oot =LABEL=/ r hgb qui et vga=0x317
i ni t r d / i ni t r d- 2. 6. 9- 5. EL. i mg
( dispositivo, partnum) ruta de archivo
Componente Role
dispositivo
GRUB no se refiere a los dispositivos como hda o sdc o f d0, como lo hace el
kernel de Linux. En su lugar, GRUB se refiere a dispositivos utilizando los
siguientes nombres.
hd0: "DISPOSITIVO BIOS #1"
hd1: "DISPOSITIVO BIOS #2"
fd0: "DISPOSITIVO BLANDO #1"
Cada BIOS mantiene un concepto de su primer dispositivo. A menudo es su
Para ilustrar, analizamos la siguiente lnea del archivo de configuracin, la cual especifica la imagen
de fondo ("pantalla splash") para la aplicacin GRUB.
La interpretacin del nombre de archivo implica los siguientes tres pasos.
1. Determinar el dispositivo: Puesto que sabemos que nuestro sistema arranc desde el
dispositivo IDE de maestro primario, asumiremos que hd0 o el "Dispositivo BIOS #1", se
refiere a ste. Lo que GRUB llama hd0, el kernel de Linux llamara / dev/ hda.
2. Determinar la particin: Ahora que conocemos el dispositivo, localizamos la particin
en el dispositivo mediante el partnum, recordando que necesitamos agregar 1 para
compensar el punto de inicio diferente de GRUB. El 0 anterior por lo tanto especifica la
primera particin en el dispositivo / dev/ hda1.
3. Determinar el archivo: Puesto que GRUB hacereferencia a archivos relativos al
directorio raz del sistema de archivos, necesitamos determinar dnde se monta la
particin / dev/ hda1 en nuestro rbol de directorios. Utilizamos el comando df para
examinar los montajes actuales.
Dado que la particin / dev/ hda1 est montada para / boot , el
archivo / gr ub/ spl ash. xpm. gz relativo al directorio raz del sistema de archivos es el
archivo / boot / gr ub/ spl ash. xpm. gz relativo a la raz del rbol de directorios.
Despus de determinar la particin y saber dnde est montada, podemos traducir el archivo
"GRUB speak"( hd0, 0) / gr ub/ spl ash. xpm. gz a "Linux speak"
como / boot / gr ub/ spl ash. xpm. gz.
Para reforzar el proceso de traducir referencias de archivo GRUB a referencias de archivos Linux, el
dispositivo IDE de maestro primario, algunas veces es otro dispositivo IDE,
algunas veces es un dispositivo SCSI. Al cambiar la configuracin BIOS, la
identidad del "primer dispositivo" puede cambiar.
partnum
El partnum es un nmero entero utilizado para identificar la particin en un
dispositivo. Infortunadamente, GRUB cuenta las particiones comenzando por 0,
mientras que el kernel de Linux cuenta particiones comenzando por 1. Por lo
tanto, lo que GRUB llama particin nmero 3, el kernel de Linux llamara
particin nmero 4.
ruta de
archivo
El ruta de archivo es una ruta absoluta del archivo, relativo al directorio
raz del sistema de archivos. GRUB se refiere a los archivosantes los sistemas de
archivos se montan en un nico rbol de directorio, por lo tanto, GRUB no tiene
ningn concepto de los puntos de montaje. Este punto hace nfasis en el AVI SO
localizado por el instalador de Anaconda en el archivo de configuracin de
muestra presentado anteriormente.
spl ashi mage=( hd0, 0) / gr ub/ spl ash. xpm. gz
[root@station root]# df
Fi l esyst em 1K- bl ocks Used Avai l abl e Use%Mount ed on
/ dev/ hda3 8159420 5299244 2445700 69%/
/ dev/ hda1 69973 25972 40388 40%/ boot
/ dev/ hdb5 30241928 25947992 2757724 91%/ home
/ dev/ hdb7 28130956 10578516 16123460 40%/ var
none 370024 0 370024 0%/ dev/ shm
/ dev/ f d0 1430 1380 51 97%/ mnt / f l oppy
siguiente cuadro lista archivos que utilizan ambos. Recuerde que la asignacin depende de la
estructura de particionamiento identificada en la salida del comando df visto anteriormente y
cambiara en discos con particiones diferentes.
Table 2. Traducciones de nombres de archivos de GRUB a Linux
Por qu GRUB debe ser tan diferente? Recuerde que GRUB se est ejecutando antes de que el
kernel de Linux sea cargado y pueda considerarse un sistema operativo mnimo en s mismo. Como
GRUB es el cargador "Gran unificado" y no slo el cargador Linux, su sintaxis no se relaciona con la
del kernel de Linux.
Configuracin global GRUB
Con la parte difcil ya explicada, volvamos a la seccin global del archivo de configuracin GRUB,
que es, todas las lneas que aparecen antes que una lnea inicie con t i t l e.
Las siguientes entradas se encuentran a menudo dentro de la seccin global.
Table 1. Sintaxis de configuracin global GRUB
Lo que GRUB llama... ... Linux llamara...
( hd0, 0) / gr ub/ spl ash. xpm. gz / boot / gr ub/ spl ash. xpm. gz
( hd0, 2) / et c/ passwd / et c/ passwd
( hd1, 6) / l og/ dmesg / var / l og/ dmesg
( hd1, 4) / el vi s/ ci vgame+0220. sav. gz / home/ el vi s/ ci vgame+0220. sav. gz
( f d0, 0) / sysl i nux. cf g / mnt / f l oppy/ sysl i nux. cf g
( hd0, 0) / vml i nuz- 2. 6. 9- 5. EL / boot / vml i nuz- 2. 6. 9- 5. EL
( hd0, 0) / i ni t r d- 2. 6. 9- 5. EL. i mg / boot / i ni t r d- 2. 6. 9- 5. EL. i mg
def aul t =0
t i meout =10
spl ashi mage=( hd0, 0) / gr ub/ spl ash. xpm. gz
passwor d - - md5 $2$Mr XSq0xS$0LXqkBTf pywyD3TVCao3d0
hi ddenmenu
Palabra clave Propsito
default=N
Define la entrada del men por defecto, si el usuario no escoge ninguna.
Las entradas de men se cuentan empezando desde 0.
timeout=N
Especifica la cantidad de tiempo (en segundos) que el usuario tiene para
escoger una entrada de men, antes de utilizar la entrada del men
predeterminada.
splashimage=file Usa file como una imagen de fondo para el men.
password plaintext
Especifica una contrasea para la aplicacin GRUB utilizando texto sin
formato.
password --md5
ciphertext
Especifica una contrasea para la aplicacin GRUB con codificacin
MD5.
hiddenmenu No muestra el men GRUB en el arranque.
[Caution]
Utilice passwor d, no passwd
Un error comn dentro del archivo de configuracin GRUB es el uso
incorrecto de la palabra clave passwd , en lugar de password.
Configuracin de elementos del men de GRUB
En el arranque, GRUB suele presentar al usuario un men de posibles configuraciones. Dichas
configuraciones vienen en estrofas en el archivo de configuracin gr ub. conf que comienza por la
palabra clave t i t l e, seguida por texto utilizado para etiquetar la estrofa como se ilustra a
continuacin.
La siguiente sintaxis se encuentra en elementos del men utilizados para arrancar kernels de
Linux. A diferencia de la seccin global, los elementos individuales deben aparecer en el orden
especificado.
Table 1. Sintaxis de configuracin de los elementos del men de GRUB
Observe cmo el diseo de una estrofa de un elemento de men refleja los parmetros necesarios.
La lnea de configuracin ker nel especifica la imagen de kernel para cargar y su lnea de comando
asociada, mientras que la lnea de configuracin i ni t r d especifica un disco RAM inicial a cargar.
Uso de GRUB
Por lo general, el grub se instala con el instalador de Anaconda y se utilizar cada vez que se inicie
el sistema. Cuando GRUB se ejecuta, primero muestra un texto sencillo en el inicio y luego presenta
al usuario un men grfico y en la configuracin predeterminada de Red Hat Enterprise Linux, un
temporizador de conteo regresivo desde 10.
Para nuestros propsitos, nos referiremos a GRUB como si estuviera ejecutndo en uno de los
cinco modos:
Modo seguro: Este modo presenta al usuario un men de selecciones de arranque.
Modo bsico: El modo bsico se parece al modo seguro, pero en lugar de seleccionar el
elemento del men, el usuario puede optar por entrar en los siguientes modos.
Modo de edicin: Este modo permite al usuario hacer correcciones en una configuracin
existente.
Modo de agregar: Semejante al modo de edicin, este modo permite al usuario corregir la
lnea de comandos del kernel.
Modo de comando: En este modo, el usuario opera dentro de una shell interactiva grub.
t i t l e Red Hat Li nux ( 2. 6. 9- 5. EL)
r oot ( hd0, 0)
ker nel / vml i nuz- 2. 6. 9- 5. EL r o r oot =LABEL=/ r hgb qui et vga=0x317
i ni t r d / i ni t r d- 2. 6. 9- 5. EL. i mg
Palabra clave Propsito
root partition
Monta y utiliza de modo implcito el partition especificado en
todas las referencias de archivo posteriores.
kernel
filecommandline...
Carga el archivo especificado como imagen de kernel y pasa los
argumentos al kernel como lnea de comando del kernel.
initrd file
Carga el archivo especificado como un disco RAM inicial para el
kernel.
Cada uno de los modos se trata detalladamente a continuacin.
Modo seguro
El modo seguro es el modo predeterminado si una contrasea se especific en el archivo de
configuracin gr ub. conf . Grub presenta el usuario con un men, cuyos ttulos son una reflexin
directa de las lneas t i t l e que se encuentran en el archivo de configuracin gr ub. conf . Al
seleccionar un elemento del men, el sistema inicia con la configuracin especificada.
Si se especifica la contrasea correcta, el usuario puede saltar del modo seguro al modo bsico.
Modo bsico
El modo bsico es el modo por defecto si no se proporciona una contrasea en el archivo de
configuracin gr ub. conf . Los usuarios pueden elegir un elemento de men apropiado o pueden
utilizar cualquiera de las siguientes claves para entrar en uno de los modos a continuacin.
Table 1. Comandos para cambiar de modo en GRUB.
Modo de edicin
Al entrar el modo de editar, grub muestra lneas desde la estrofa gr ub. conf pertinente en un
editor de texto primario. El editor le permite al usuario agregar una nueva lnea, borrar una lnea
existente o editar una lnea existente con cambios arbitrarios.
Una vez el usuario ha editado la estrofa a su gusto puede utilizar b para iniciar con una nueva
configuracin o ESC para abandonar todos los cambios y volver al modo bsico.
En cualquier evento, los cambios a la configuracin hechos con el modo de edicin de grub se
aplican a ese inicio nicamente. La aplicacin grub no permite a los usuarios editar archivos de
modo permanente.
Modo de agregar
El modo de agregar puede considerarse como una reduccin del modo de edicin, donde slo los
argumentos que componen la lnea de comando del kernel se pueden editar. Aunque es menos
verstil (un nuevo kernel o archivo initrd no se podra especificar, por ejemplo) el modo de agregar
se puede utilizar en la mayora de los casos cuando un usuario desee sobrescribir la configuracin
grub por defecto. Como en el modo de edicin, los cambios se aplican slo en ese inicio.
Modo de comando
En el modo de comando, se omite el archivo existente gr ub. conf y el usuario opera en una shell
interactiva grub, (en este caso, el trmino shell se utiliza en el sentido general. No espere
encontrar todas las capacidades de la shell bash !) Los usuarios expertos pueden usar la shell para
especificar un kernel e initrd de modo manual e iniciar el sistema, o usar la shell para examinar el
sistema de archivos.
clave Accin
e entra el modo de edicin para el elemento de men seleccionado
a entra el modo de agregar para el elemento de men seleccionado
c entra el modo de comando
Se puede salir de la shell grub con la tecla ESC, la cual devuelve al usuario al modo bsico.
Instalacin de GRUB
Cuando la gente se refiere a la instalacin de un gestor de arranque, por lo general se refieren a
transferir la primera etapa del gestor de arranque al registro de arranque maestro o al sector de
arranque apropiados. Los administradores de sistemas rara vez necesitan reinstalar la primera
etapa del gestor de arranque GRUB, cuando Anaconda la instala tras la instalacin del sistema y
aparte de los cambios al archivo de configuracin gr ub. conf , la instalacin no se debera
modificar para uso rutinario.
[1]

Sin embargo, si por alguna razn necesita instalar GRUB puede utilizar grub-install. El comando
se llama con un solo argumento, el nombre del dispositivo cuyo registro de arranque maestro se
puede utilizar para la instalacin.
Tras la instalacin, grub-install muestra la interpretacin actual del "Dispositivo BIOS #1" (o los
dispositivos a los que se haga referencia). Por lo general, esta informacin es correcta. Si no parece
apropiada, se tendra que editar el archivo / boot / gr ub/ devi ce. map y ensayar de nuevo.
Administracin de contraseas de GRUB
Como veremos ms adelante, la habilidad de modificar la lnea de comando del kernel en el
arranque proporciona una gran flexibilidad, pero a su vez trae riesgos de seguridad. Por ejemplo, al
proveer los argumentos apropiados, se puede iniciar el sistema en una shell de mantenimiento
desde la cual se puede cambiar la contrasea de la cuenta de root. Por consiguiente, se sugiere
proveer una contrasea en el archivo de configuracin gr ub. conf .
Aunque el archivo de configuracin admite contraseas en texto sin formato, el almacenamiento de
contraseas en texto sin formato en el sistema de archivos nunca es una buena idea.
En su lugar, se puede utilizar el comando grub-md5-crypt para generar contraseas encriptadas,
las cuales se pueden pegar en el archivo de configuracin, como a continuacin.
La siguiente lnea se pudo incluir en el archivo de configuracin gr ub. conf .
[root@station root]# grub-install /dev/hda
I nst al l at i on f i ni shed. No er r or r epor t ed.
Thi s i s t he cont ent s of t he devi ce map / boot / gr ub/ devi ce. map.
Check i f t hi s i s cor r ect or not . I f any of t he l i nes i s i ncor r ect ,
f i x i t and r e- r un t he scr i pt `gr ub- i nst al l ' .

# t hi s devi ce map was gener at ed by anaconda
( f d0) / dev/ f d0
( hd0) / dev/ hda
passwor d r edhat
[root@station root]# grub-md5-crypt
Passwor d: redhat
Ret ype passwor d: redhat
$2$vCoF50$x48Akr GLEoXPznNi WnqhA.
passwor d - - md5 $2$vCoF50$x48Akr GLEoXPznNi WnqhA.
Esta lnea establece la contrasea de GRUB para redhat, pero no deja la contrasea expuesta en
texto sin formato en el archivo de configuracin.
Limitaciones de BIOS y GRUB
Cuando la aplicacin GRUB se est ejecutando, el kernel de Linux an no est en su sitio. Por
consiguiente, GRUB utiliza controladores de dispositivos de BIOS para acceder a los discos.
Algunos controladores ms antiguos no tienen limitaciones significativas.
1. Algunos BIOS no pueden acceder ms de 1.024 cilindros.
2. Muchos de los BIOS son slo conscientes de las particiones primarias.
La primera limitacin es la motivacin para la particin / boot . Por diseo, la particin / boot
debe contener todos los elementos del sistema necesarios antes que el kernel de Linux se cargue: la
imagen misma del kernel, cualquier initrd y el gestor de arranque. La particin es por lo general
pequea y se presenta tan pronto como sea posible en el dispositivo, para que se ajuste totalmente
dentro de los primeros 1.024 cilindros de disco.
Dicho esto, la mayora de BIOS modernos proporcionan extensiones que superan esta limitacin.
De manera interesante, un sistema Linux se puede operar bastante bien sin montar la
particin / boot , (recuerde que slo se encuentran los aspectos del sistema que se necesitan antes
de iniciar el kernel). En la prctica, no es una buena idea, puesto que hay un archivo ocasional al
cual se hace referencia desde el sistema de ejecucin (tal como Syst em. map, o el archivo de
configuracin gr ub. conf , si el administrador desea hacer cambios).
La segunda limitacin slo afecta a donde GRUB puede instalarse si otro gestor de arranque se
utiliza en el registro de arranque maestro. Es decir, slo los sectores de arranque de particiones
primarias son candidatos para la instalacin de la primera etapa GRUB. Esto no se considera una
configuracin estndar y los detalles de configuracin van ms all de los objetivos de este curso.
Al cerrar, volvemos a hacer nfasis en que estas dos limitaciones estn relacionadas con BIOS no
con Linux. Cuando el kernel de Linux est en ejecucin, ninguna de estas limitaciones importa.
El kernel de Linux
La leccin anterior present la inicializacin de Linux ocurriendo en cuatro fases diferentes. Esta
leccin trata principalmente del gestor de arranque; las siguientes dos lecciones
describirn / sbi n/ i ni t y los procesos relacionados. Entre estos dos est la seccin corta, la cual
proporciona algo ms que una transicin y describe la funcin del kernel al cargarlo en el sistema.
Aunque se puede decir mucho de la inicializacin del kernel desde el punto de vista del diseo de
sistemas operativos, desde el punto de vista de la administracin del sistema, hay muy poco que
decir. No obstante, lo que hay que decir es importante. En esencia, un administrador de sistemas
puede ver el kernel mientras realiza tres etapas.
1. Remplaza todos los controladores de dispositivos BIOS con controladores de dispositivos
Linux.
2. Monta la particin root de slo-lectura.
3. Inicia el primer proceso.
El kernel hace muy poco para inicializar el sistema y confa en que el primer proceso haga todo el
trabajo difcil.
Hay algunas repercusiones asociadas con cada paso.
1. Puesto que Linux remplaza todos los controladores de dispositivos BIOS, las limitaciones de
BIOS mencionadas anteriormente no son relevantes una vez que el kernel inicia.
2. Puesto que el kernel debe montar la particin raz, se le debe decir qu particin es la
correcta para el montaje. Esto generalmente se realiza con el parmetro de lnea de
comando del kernel de r oot =, el cual puede referirse a una particin especfica (tal como
r oot =/ dev/ hda5) o como el comando mount, puede hacer referencia a la particin raz
por su etiqueta de sistema de archivos ext2 (mediante una sintaxis bastante extraa
r oot =LABEL=/ ). Por qu el kernel lo monta de slo lectura, en lugar de lectura-escritura?
La respuesta se encuentra en una prxima leccin.
3. Como el kernel inicia el primer proceso directamente, se debe especificar la particin root
correcta. El nombre del primer proceso est fijado en el kernel: / sbi n/ i ni t . El kernel
montar como particin root cualquier particin que usted le diga, pero slo podr
hallar / sbi n/ i ni t si usted le da la correcta.
La lnea de comandos del kernel: parmetros de arranque
As como los procesos tienen una lnea de comandos, el kernel tambin tiene una lnea de
comandos. Los parmetros de la lnea de comandos para el kernel actual se pueden examinar al
leer / pr oc/ cmdl i ne.
Los smbolos especificados segn el nombre de archivo del kernel en el archivo de configuracin
gr ub. conf se pasan al kernel, el cual los administra de la siguiente manera.
1. Primero, el kernel comprueba si el smbolo es un parmetro incorporado del kernel. Si lo es,
el kernel aplica el parmetro. Algunos de los parmetros ms comunes del kernel estn
documentados en la pgina de manual bootparam(7).
2. Segundo, si el kernel no reconoce el smbolo y el smbolo tiene la forma nombre=valor,el
kernel pasa el valor al primer proceso como variable de entorno nombre, (el primer
proceso es casi invariable /sbin/init).
3. Por ltimo, todo lo que el kernel no reconozca y que no tenga la forma de nombre=valor,
el kernel pasar al primer proceso como un argumento de lnea de comandos.
Algunos de los argumentos ms utilizados de la lnea de comandos del kernel se encuentran en el
siguiente cuadro.
Table 1. Parmetros comunes de arranque del kernel
[root@station ~]# cat /proc/cmdline
r o r oot =LABEL=/ r hgb qui et
Parmetro Efecto
root=dispositivo
Utiliza dispositivo como particin raz (vea arriba). Este parmetro se
requiere casi siempre.
ro
Monta la particin raz de slo lectura (ver arriba). Este parmetro casi
siempre se requiere.
quiet
No muestra mensajes en el inicio. Aunque habilitado por defecto en Red
Hat Enterprise Linux, muchos administradores prefieren quitarlo para ver
el flujo de mensajes del kernel.
rhgb
Este parametro del ingls "Red Hat Graphical Boot" (Arranque grfico de
Red Hat), hace que un servidor X inicie temprano en el proceso de
arranque. El parmetro se puede quitar fcilmente si esto complica o
retarda el proceso de arranque.
System Initialization and Services
Ejemplos
Referencia a un nuevo kernel
Un administrador de sistemas compil un kernel personalizado, cre un disco RAM asociado de
inicio y lo coloc en el directorio / boot como los archivos vml i nuz- 2. 4. 21- cust omy i ni t r d-
2. 4. 21- cust om. i mg, respectivamente. Ahora quiere actualizar su archivo gr ub. conf para
poder arrancar en el nuevo kernel. Su archivo actual se ve de esta forma.
El administrador abre el archivo en un editor de texto y en primer lugar duplica la "consabida"
estrofa.
Luego, el administrador edita la segunda estrofa, cambiando las referencias de ttulo, kernel e
initrd, como corresponda.
Ahora, el administrador almacena sus cambios y reinicia. Al reiniciar, puede escoger su nuevo
kernel personal y el men GRUB. Si algo sale mal (tal como un error tipogrfico en el archivo de
configuracin gr ub. conf ), siempre podr reiniciar otra vez en la "consabida" entrada.
Migracin a un archivo de configuracin GRUB
[root@station root]# cat /boot/grub/grub.conf
# gr ub. conf gener at ed by anaconda
#
# Not e t hat you do not have t o r er un gr ub af t er maki ng changes t o t hi s f i l e
# NOTI CE: You have a / boot par t i t i on. Thi s means t hat
# al l ker nel and i ni t r d pat hs ar e r el at i ve t o / boot / , eg.
# r oot ( hd0, 0)
# ker nel / vml i nuz- ver si on r o r oot =/ dev/ hda3
# i ni t r d / i ni t r d- ver si on. i mg
#boot =/ dev/ hda
def aul t =0
t i meout =10
spl ashi mage=( hd0, 0) / gr ub/ spl ash. xpm. gz
passwor d - - md5 $2$Mr XSq0xS$0LXqkBTf pywyD3TVCao3d0
t i t l e Red Hat Li nux ( 2. 6. 9- 5. EL)
r oot ( hd0, 0)
ker nel / vml i nuz- 2. 6. 9- 5. EL r o r oot =LABEL=/ qui et r hgb
i ni t r d / i ni t r d- 2. 6. 9- 5. EL. i mg
t i t l e Red Hat Li nux ( 2. 6. 9- 5. EL)
r oot ( hd0, 0)
ker nel / vml i nuz- 2. 6. 9- 5. EL r o r oot =LABEL=/ qui et r hgb
i ni t r d / i ni t r d- 2. 6. 9- 5. EL. i mg
t i t l e Red Hat Li nux ( 2. 6. 9- 5. EL)
r oot ( hd0, 0)
ker nel / vml i nuz- 2. 6. 9- 5. EL r o r oot =LABEL=/ vga=0x317
i ni t r d / i ni t r d- 2. 6. 9- 5. EL. i mg
t i t l e Red Hat Li nux ( 2. 6. 9- 5. EL)
r oot ( hd0, 0)
ker nel / vml i nuz- 2. 6. 9- 5. EL r o r oot =LABEL=/ qui et r hgb
i ni t r d / i ni t r d- 2. 6. 9- 5. EL. i mg
t i t l e Red Hat Li nux ( 2. 4. 21- cust om)
r oot ( hd0, 0)
ker nel / vml i nuz- 2. 4. 21- cust omr o r oot =LABEL=/ qui et r hgb
i ni t r d / i ni t r d- 2. 4. 21- cust om. i mg
Un administrador est migrando un archivo de configuracin gr ub. conf de un sistema a otro.
Aqu est el contenido del archivo.
Como los comentarios lo implican, en el sistema original, el directorio / boot fue particionado Sin
embargo en el sistema actual, solo hay una particin raz: el dispositivo / dev/ hda2. Ya que el
directorio / boot ahora es parte de la particin raz, el administrador necesita realizar los
siguientes ajustes.
1. La especificacin de la particin raz necesita actualizarse para referirse al
dispositivo / dev/ hda2.
2. Las rutas de archivos para el kernel y el disco RAM de inicio se necesitan actualizar para
reflejar el hecho que el directorio / boot es ahora parte del sistema de archivos raz.
Puesto que en la nueva mquina, la configuracin original no funcionar, decide modificar la
estrofa "en su sitio". La estrofa modificada se lista a continuacin.
[root@station root]# cat /boot/grub/grub.conf
# gr ub. conf gener at ed by anaconda
#
# Not e t hat you do not have t o r er un gr ub af t er maki ng changes t o t hi s f i l e
# NOTI CE: You have a / boot par t i t i on. Thi s means t hat
# al l ker nel and i ni t r d pat hs ar e r el at i ve t o / boot / , eg.
# r oot ( hd0, 0)
# ker nel / vml i nuz- ver si on r o r oot =/ dev/ hda3
# i ni t r d / i ni t r d- ver si on. i mg
#boot =/ dev/ hda
def aul t =0
t i meout =10
spl ashi mage=( hd0, 0) / gr ub/ spl ash. xpm. gz
passwor d - - md5 $2$Mr XSq0xS$0LXqkBTf pywyD3TVCao3d0
t i t l e Red Hat Ent er pr i se Li nux ( 2. 6. 9- 5. EL)
r oot ( hd0, 0)
ker nel / vml i nuz- 2. 6. 9- 5. EL r o r oot =LABEL=/ vga=0x317
i ni t r d / i ni t r d- 2. 6. 9- 5. EL. i mg
t i t l e Red Hat Li nux ( 2. 6. 9- 5. EL)
r oot ( hd0, 1)
ker nel / boot / vml i nuz- 2. 6. 9- 5. EL r o r oot =LABEL=/ vga=0x317
i ni t r d / boot / i ni t r d- 2. 6. 9- 5. EL. i mg
System Initialization and Services
Ejercicios en lnea
Specification
Usted va a copiar (no a mover!) su kernel existente e initrd a un nuevo sitio y va a modificar su
gr ub. conf de modo apropiado para arrancar el kernel recin creado.
1. Crear el directorio / ker nel .
2. Utilizar el comando uname -r para reportar su versin de kernel actual.
3. Copiar los archivos / boot / vml i nuz- versin de kernel y / boot / i ni t r d-
versin_de_kernel. i mg al directorio / ker nel recin creado. Asegrese de copiar el
archivo empezando por vml i nuz, no vml i nux.
4. Como precaucin, haga una copia de seguridad de su archivo / boot / gr ub/ gr ub. conf ,
llamado / boot / gr ub/ gr ub. conf . pr el ab4. 2. Abra su
archivo / boot / gr ub/ gr ub. conf y haga los siguientes cambios.
a. Duplique la estrofa de los elementos del men pertinentes a su kernel actual y
establezca el ttulo de la estrofa recin creada a la nica palabra lab4.2. . No
modifique su estrofa original de ninguna manera.
b. En su estrofa de elementos de men recin creada, actualice las referencias al kernel
y los archivos initrd, para que se refieran a los archivos recin
creados / ker nel / vml i nuz- versin_de_kernel y / ker nel / i ni t r d-
versin de kernel. i mg. Probablemente tambin tendr que actualizar la
referencia a la particin raz.
c. En la lnea de comandos del kernel, agregue el argumento panic=42, (puede
consultar la pgina del manual bootparam(7) para obtener mayor informacin).
d. Establezca la contrasea del gestor de arranque como redhat con una contrasea en
texto sin formato, (si el gestor de arranque ya tiene contrasea, quite el comentario
de la lnea que especifica la contrasea original).
Guarde sus cambios.
5. Reinicie su mquina. En el men GRUB, entre la contrasea del gestor de arranque
(redhat). Abra la estrofa recin agregada(lab4.2) para editarla. Dentro del editor, agregue el
argumento rha=fun a la lnea de comandos del kernel, sin cambiar los otros argumentos y
por ltimo, inicie su mquina.
6. Una vez iniciado, inicie sesin en su cuenta de Red Hat Academy y califique su ejercicio.
[Warning]
Lab Exercise
Objetivo: Ganar experiencia en la configuracin del gestor de
arranque de GRUB.
Estimated Time: 30 mins.
Resultados
A title
Question 1

[Note]
Note
En algunas mquinas, puede que no se pueda reiniciar la mquina con
su nueva configuracin, debido al lmite de 1024 cilindros de BIOS. Si
este es el caso, reinicie su mquina con la estrofa original (no la
modific, no es cierto?). Repita el Laboratorio pero en lugar de copiar su
kernel e initrd al directorio / l ab4. 2, cpielos al
directorio / boot / l ab4. 2 y edite su estrofa lab4.2 en el archivo
gr ub. conf .
1. Un archivo del sistema de archivos / pr oc/ cmdl i ne que reporte los argumentos panic=42
y rha=fun.
2. Un archivo / boot / gr ub/ gr ub. conf , que contenga una estrofa para un elemento del
men titulado lab4.2. El elemento del men debera hacer referencia al sitio del nuevo
kernel e initrd y especificar un argumento de lnea de comandos de kernel panic=42, pero
no un argumento de lnea de comandos de kernel rha=fun.
grade
System Initialization and Services
/sbin/init y Run Levels
Conceptos clave
El primer proceso iniciado por el kernel es / sbi n/ i ni t
El comando init se ejecuta, mientras se ejecute el sistema y est encargado de iniciar y
detener otros procesos.
El comando init organiza el estado de ejecucin de procesos con un concepto llamado
niveles de ejecucin.
El comando init utiliza el archivo de configuracin / et c/ i ni t t ab para determinar qu
procesos deberan ejecutarse en qu niveles de ejecucin.
Los comandos init y telinit se pueden utilizar para cambiar niveles de ejecucin o forzar
init a releer su archivo de configuracin.
Los comandos shutdown, reboot, halt y poweroff sirven para detener o reiniciar la
mquina.
System Initialization and Services
Discusin
/sbin/init
El nombre del primer proceso para iniciar est fijado al kernel de Linux: / sbi n/ i ni t . Este
comando es ejecutado directamente por el kernel en el inicio y por lo tanto siempre tiene un Id de
proceso 1. El programa init est diseado para ejecutarse mientras se ejecuta el sistema y es el
ltimo proceso que muere. Para asegurarse que el proceso no termine accidentalmente, el Id 1 del
proceso est protegido contra la seal letal SIGKILL (seal nmero 9).
El proceso init emplea su tiempo, iniciando, detenindose y monitorizando otros procesos. Lo
primero que init hace es leer su archivo de configuracin, el archivo / et c/ i ni t t ab. Se le
recomienda ver el archivo mientras lee esta explicacin, pero tenga cuidado de no modificarlo
accidentalmente: Es un archivo de configuracin clave y si se daa no se podra arrancar su
sistema.
Niveles de ejecucin
A continuacin, extraemos y explicamos varias lneas del archivo / et c/ i ni t t ab. Comenzamos
por examinar el comentario en la parte superior del archivo y la primera lnea de configuracin
pertinente.
En los comentarios al comienzo del archivo, vemos que init organiza una mquina Linux mediante
un concepto llamado en ingls runlevels (niveles de ejecucin). Los niveles de ejecucin
tradicionalmente se nombran con nmeros enteros de 0 a 6. En muchas versiones de Unix, los
nmeros enteros implican una secuencia (i.e., para iniciar en nivel de ejecucin 5, debe pasar por
los niveles de ejecucin de 1 a 4). Esto no sucede en Linux; los niveles de ejecucin pudieron
haberse llamado algo tan fcil como "anaranjado", "azul" y "verde".
Por tradicin Unix asocia las siguientes configuraciones con varios niveles de ejecucin y Linux se
adhiere a dicha convencin.
Table 1. Convenciones de los niveles de ejecucin
#
# i ni t t ab Thi s f i l e descr i bes how t he I NI T pr ocess shoul d set up
# t he syst emi n a cer t ai n r un- l evel .
#
# Aut hor : Mi quel van Smoor enbur g, <mi quel s@dr i nkel . nl . mugnet . or g>
# Modi f i ed f or RHS Li nux by Mar c Ewi ng and Donni e Bar nes
#

# Def aul t r unl evel . The r unl evel s used by RHS ar e:
# 0 - hal t ( Do NOT set i ni t def aul t t o t hi s)
# 1 - Si ngl e user mode
# 2 - Mul t i user , wi t hout NFS ( The same as 3, i f you do not have net wor ki ng)
# 3 - Ful l mul t i user mode
# 4 - unused
# 5 - X11
# 6 - r eboot ( Do NOT set i ni t def aul t t o t hi s)
#
i d: 3: i ni t def aul t :
Nivel de
ejecucin
Uso Comentarios
La ltima lnea en el listado anterior establece el nivel de ejecucin predeterminado para la
mquina, si no se especifica ninguno. Para la mayora de las mquinas, el nivel de ejecucin sera el
nivel de ejecucin 3 o 5.
Sintaxis /etc/inittab
Cuando trate de aprender la sintaxis del archivo / et c/ i ni t t ab, la primera lnea (que establece el
nivel de ejecucin por defecto) no es til; no sigue la sintaxis. Todas las dems lneas que constan
de 4 campos separados por dos puntos sirven para las siguientes funciones.
Table 1. Sintaxis /etc/inittab
El tercer campo se debe seleccionar de una seleccin de acciones predefinidas. Algunas de las
acciones ms comunes y su uso se listan a continuacin.
Table 2. Acciones utilizadas en el archivo /etc/inittab
0 Halt Una utilidad de nivel de ejecucin utilizada para detener la mquina.
1
Modo
monousuario
Un nivel de ejecucin de mantenimiento conocido como un Modo
monousuario. Cuando se est en nivel de ejecucin 1, solo root
puede iniciar en la mquina y debe iniciar en la consola. Las
conexiones de red por lo general no estn activas y la mayora de los
demonios (si no todos) estn apagados. Este nivel de ejecucin est
diseado para realizar operaciones de mantenimiento, tales como
montar y desmontar particiones sin interferencias inesperadas.
2 No NFS
En Unix tradicional, el nivel de ejecucin 2 era de modo
multiusuario sin red (recuerde que en un comienzo, Unix era
esencialmente un servidor de terminal.) La mayora de Unix
modernos utilizan el nivel de ejecucin 2 para de alguna manera
calificar la extensin de red. En Red Hat Enterprise Linux, el nivel
de ejecucin 2 implica modo multiusuario de red, pero sin ningn
sistema de archivos NFS relacionado.
3
Multiusuario
total
El nivel de ejecucin 3 es un modo operativo total de red y
multiusuarios, pero no se inicia ninguna interfaz grfica (servidor
X). En muchas mquinas utilizadas como servidores de red, este es
el nivel de ejecucin predeterminado.
4
Configuracin
local
El nivel de ejecucin 4 suele no tener implicaciones y se deja para
que los sitios lo utilicen en la implementacin de polticas locales.
5
Multiusuario
con X
El nivel de ejecucin 5 tiene todas las implicaciones del nivel de
ejecucin 3, ms el mantenimiento continuo de un servidor X.
6 reboot
Una utilidad de nivel de ejecucin utilizada para reiniciar la
mquina.
Campo Uso
1
Una etiqueta de slo dos letras, aparte la etiqueta debe ser nica. La etiqueta que init
utiliza para mantener todas sus lneas rectas.
2 Una lista de los niveles de ejecucin para los cuales es importante la lnea.
4 El nombre del comando a ejecutar.
3
El tercer campo es el ms interesante. Consiste de un accin predefinido, el cual dice a
init cmo o cundo ejecutar el comando especificado en el cuarto campo.
/etc/inittab Configuracin de inicializacin del sistema y administracin del
nivel de ejecucin
Con la sintaxis de reserva, pasamos por el resto del archivo / et c/ i ni t t ab, agregando
comentarios cuando se ameriten.
Tras el inicio del sistema, se ejecuta el script / et c/ r c. d/ r c. sysi ni t . El script se estudiar en
detalle ms adelante, donde descubriremos que el script de inicializacin es la clave para realizar
muchas de las inicializaciones del sistema.
Despus de cada cambio de nivel de ejecucin (incluyendo el arranque en el nivel de ejecucin
inicial predeterminado), el script / et c/ r c. d/ r c se ejecuta con el nivel de ejecucin apropiado
como su nico argumento. Este script realiza todo el trabajo difcil cuando el sistema pasa de un
nivel de ejecucin a otro, este ser el tema de la prxima leccin.
Configuracin para eventos externos /etc/inittab
Los prximos lneas asocian comandos con varios eventos externos, tales como un usuario
tecleando CONTROL-ALT-SUPR en la consola o una UPS registrando una falla de energa. La
mayora de estas variantes del comando shutdown se tratan en detalle a continuacin (aunque la
intencin del comando debera ser obvia).
accin uso
respawn
init inicia y monitoriza el comando especificado. Si el comando alguna vez
muere, inicia otro para remplazarlo.
wait
init inicia el proceso cuando entra a un nivel de ejecucin pertinente y espera que
el proceso termine antes de llevar a cabo todo lo dems.
ctrlaltdel
init ejecutar el comando asociado cuando alguien tecleeCONTROL-ALT-
SUPR en el teclado de la consola.
powerfail (y
amigos)
init iniciar comandos en respuesta a recibir seales para una UPS (suministro
de alimentacin ininterrumpible) agregada.
# Syst emi ni t i al i zat i on.
si : : sysi ni t : / et c/ r c. d/ r c. sysi ni t

l 0: 0: wai t : / et c/ r c. d/ r c 0
l 1: 1: wai t : / et c/ r c. d/ r c 1
l 2: 2: wai t : / et c/ r c. d/ r c 2
l 3: 3: wai t : / et c/ r c. d/ r c 3
l 4: 4: wai t : / et c/ r c. d/ r c 4
l 5: 5: wai t : / et c/ r c. d/ r c 5
l 6: 6: wai t : / et c/ r c. d/ r c 6
# Thi ngs t o r un i n ever y r unl evel .
ud: : once: / sbi n/ updat e

# Tr ap CTRL- ALT- DELETE
ca: : ct r l al t del : / sbi n/ shut down - t 3 - r now

# When our UPS t el l s us power has f ai l ed, assume we have a f ew mi nut es
# of power l ef t . Schedul e a shut down f or 2 mi nut es f r omnow.
# Thi s does, of cour se, assume you have power d i nst al l ed and your
# UPS connect ed and wor ki ng cor r ect l y.
pf : : power f ai l : / sbi n/ shut down - f - h +2 " Power Fai l ur e; Syst emShut t i ng Down"

# I f power was r est or ed bef or e t he shut down ki cked i n, cancel i t .
pr : 12345: power okwai t : / sbi n/ shut down - c " Power Rest or ed; Shut down Cancel ed"
/sbin/init y Gettys
Otro uso tradicional del proceso init es el lanzamiento, monitorizacin y relanzamiento de gettys.
En Linux (y Unix), un getty (llamado por "get tty") (obtener tty) es un proceso que monitoriza una
lnea serial. Siempre que escucha un "ruido" en la lnea (tal como cuando alguien teclea ENTER
varias veces), escribe una aviso en la lnea, y espera de vuelta un nombre de usuario. Cuando recibe
el nombre de usuario, ste ejecuta el comando login para continuar el proceso de inicio de sesin.
Cuando un usuario sale, el proceso de inicio (el cual es un proceso getty) muere e init regenera un
nuevo getty para ocupar su lugar.
Un getty se debe lanzar para monitorizar cada lnea serial en que los usuarios puedan iniciar
sesin. Las lneas de configuracin anteriores lanzan un mingetty para cada una de las primeras 6
consolas virtuales. Por qu Linux suele tener seis consolas virtuales en las que los usuarios pueden
iniciar sesin? Porque init genera seis gettys. Si un administrador quisiera proporcionar ms
consolas virtuales, se podran aadir o suprimir ms lneas.
Igualmente si una terminal estuviera conectada al puerto serial de una mquina, los usuarios
podran utilizar la terminal hasta que una getty fuera conectada a la lnea serial. Si se agrega la
siguiente lnea al archivo / et c/ i ni t t ab, resolver el problema para el primer puerto serial.
Por ltimo, la ltima lnea es lo que distingue principalmente al nivel de ejecucin 3 del nivel de
ejecucin 5. En el nivel de ejecucin 5, init de modo consistente regenera el
script / et c/ X11/ pr ef dm, el cual comienza por el "gestor de pantalla preferido", i.e., el servidor X
el cual le permite al usuario iniciar en la mquina mediante una interfaz grfica.
Como un ejemplo tangible de la capacidad de init para regenerar procesos, vaya a una mquina
que est en pantalla grfica de inicio y utilice la combinacin de teclas CONTROL-ALT-
RETROCESO para matar el servidor grfico X. Despus de una corta pausa, init generar un
nuevo servidor X para ocupar su lugar.
Manejo de Init
Observar los niveles de ejecucin con runlevel
El comando runlevel se puede utilizar para observar el nivel de ejecucin actual de la mquina.
La salida no es tan simple como pareca porque se dan dos valores. El ltimo es el nivel de
# Run get t ys i n st andar d r unl evel s
2: 2345: r espawn: / sbi n/ mi nget t y t t y2
3: 2345: r espawn: / sbi n/ mi nget t y t t y3
4: 2345: r espawn: / sbi n/ mi nget t y t t y4
5: 2345: r espawn: / sbi n/ mi nget t y t t y5
6: 2345: r espawn: / sbi n/ mi nget t y t t y6
s0: 2345: r espawn: / sbi n/ mi nget t y t t yS0
# Run xdmi n r unl evel 5
# xdmi s now a separ at e ser vi ce
x: 5: r espawn: / et c/ X11/ pr ef dm- nodaemon
[root@station root]# runlevel
N 5
ejecucin actual, el primero es el nivel de ejecucin anterior o N para una mquina recin
iniciada. La salida anterior corresponde a una mquina recin iniciada en el nivel de ejecucin 5.
Cambio de niveles de ejecucin con init o telinit
A init se le puede pedir que cambie los niveles de ejecucin al invocarlo con el nivel de ejecucin
deseado como nico argumento.
El cambio de niveles de ejecucin tiende a ser violento. Los procesos mueren, sacan los usuarios de
la mquina. En mquinas de multiusuarios, los administradores tratan de programar cambios en el
nivel de ejecucin (por ejemplo pasar a modo monousuario para realizar tareas de mantenimiento)
con el fin de no tomar por sorpresa a los usuarios.
En algunas versiones de Unix, el proceso init no est diseado para uso reentrante y se utiliza un
segundo comando telinit para cambiar los niveles de ejecucin. En Linux, tanto init como telinit
sirven para cambiar los niveles de ejecucin.
Solicitar init para releer /etc/inittab
Aunque el proceso init lee su archivo de configuracin en el inicio, una vez ledo ya no se
monitoriza ms. Si se le hacen modificaciones al archivo se le puede pedir al proceso init que relea
el archivo y aplique los cambios con el comando init q.
Apagar la mquina con shutdown
Lo cierto de cualquier sistema operativo multitareas es que hay formas correctas e incorrectas de
apagar una mquina Linux. Las formas incorrectas incluyen desconectar el cable de alimentacin.
A continuacin trataremos las formas correctas.
En principio, una mquina de Linux se apaga al cambiar a nivel de ejecucin 0 (por razones que
veremos en la prxima leccin). Por lo tanto, el comando init se puede utilizar para iniciar un
apagado instantneo de una mquina.
Por lo general. los administradores prefieren utilizar un comando llamado shutdown o una de sus
variantes. El comando shutdown tiene dos ventajas. Primero, el apagado se puede programar
para que ocurra a una hora determinada. Segundo, se anuncia el apagado a las terminales de todos
los usuarios conectados y con esto se les da la oportunidad de cerrar su trabajo y salir.
El comando shutdown utiliza la siguiente sintaxis.
Table 1. Opciones del comando shutdown
[root@station root]# init 3
[root@station root]# init 0
/sbin/shutdown [-hprc] time [warning-message]
Opcin Efecto
-h Detener la mquina
El comando shutdown suele llamarse con las opciones -h, -p, o -r, para que la mquina se
detenga, se apague o reinicie, respectivamente. Si no se especifica ninguna de los tres, shutdown
lleva la mquina al nivel de ejecucin 1. La opcin -c se puede utilizar para cancelar un apagado
pendiente.
El argumento de tiempo obligatorio se puede especificar de tres maneras.
Table 2. Especificar tiempos para el comando shutdown
Tambin existen unos atajos poco conocidos para el comando shutdown que presentamos a
continuacin.
Table 3. Atajos para el comando shutdown
El script /etc/rc.d/rc.sysinit
Tras el arranque, el kernel inicia el proceso / sbi n/ i ni t . El comando init examina el
archivo / et c/ i ni t t ab, donde encuentra lo siguiente como su primera lnea relevante.
Traduciendo esta lnea dice init "en el inicio, slo en el inicio, ejecute el
script / et c/ r c. d/ r c. sysi ni t ". Ahora veremos el script de inicio en detalle. El script
r c. sysi ni t es un complicado script de shell bash, el cual realiza una gran cantidad de tareas. No
podremos dar cada detalle del script, pero extraemos algunas partes importantes o puntos
interesantes con comentarios.
No piense que necesita recordar todos los detalles o todo lo que se presenta. Se puede excusar a
quien trate de pasar por alto extractos de cdigo bash como muchos haran con ecuaciones de
fsica. Sin embargo, mientras lee los comentarios debera realizar una lista en su mente de las
acciones que un script realiza cada vez que el sistema arranca. Para el interesado en saber ms,
tambin podra componer un segundo listado de los trucos de programacin de la shell bash.
Antes de empezar, recordemos el estado de la mquina. El kernel ha sido iniciado, se ha montado la
particin raz de solo lectura y se ha iniciado init, el cual a su vez inici este script. Cuando se
-p Despus de detener la mquina, apguela.
-r Reiniciar la mquina
-c Cancelar un apagado pendiente
Sintaxis Interpretacin
hh:mm Un tiempo absoluto cuando el apagado debe ocurrir, en horas y minutos.
+n Un tiempo relativo cuando el apagado debe ocurrir en n minutos.
ahora Un sinnimo para + 0.
Atajo Comando equivalente
halt shutdown -h now
poweroff shutdown -p now
reboot shutdown -r now
si : : sysi ni t : / et c/ r c. d/ r c. sysi ni t
ejecuta este script, cuntos procesos se estn ejecutando en la mquina? Dos. A qu se parece el
sistema de archivos? Slo la particin raz est montada y est montada de slo lectura.
El script comienza por examinar / et c/ sysconf i g/ net wor k para determinar un nombre de host
para el sistema. Luego, en el proceso de inicio, el sistema de archivos proc se monta en el
directorio / pr oc.
Luego, el script hace un gran esfuerzo examinando el archivo / et c/ r edhat - r el ease para
decidir a qu llamar en el mensaje de bienvenida que muestra.
#! / bi n/ bash
#
# / et c/ r c. d/ r c. sysi ni t - r un once at boot t i me
#

. . .

HOSTNAME=`/ bi n/ host name`
i f [ - f / et c/ sysconf i g/ net wor k ] ; t hen
. / et c/ sysconf i g/ net wor k
el se
NETWORKI NG=no
f i
i f [ - z " $HOSTNAME" - o " $HOSTNAME" = " ( none) " ] ; t hen
HOSTNAME=l ocal host
f i

# Mount / pr oc ( done her e so vol ume l abel s can wor k wi t h f sck)
act i on $" Mount i ng pr oc f i l esyst em: " mount - n - t pr oc / pr oc / pr oc

. . .
. . .

# Pr i nt a t ext banner .
echo - en $" \ t \ t Wel come t o "
i f LC_ALL=C gr ep - q " Red Hat " / et c/ r edhat - r el ease ; t hen
[ " $BOOTUP" = " col or " ] && echo - en " \ \ 033[ 0; 31m"
echo - en " Red Hat "
[ " $BOOTUP" = " col or " ] && echo - en " \ \ 033[ 0; 39m"
PRODUCT=`sed " s/ Red Hat \ ( . *\ ) r el ease. */ \ 1/ " / et c/ r edhat - r el ease`
echo " $PRODUCT"
el se
PRODUCT=`sed " s/ r el ease. */ / g" / et c/ r edhat - r el ease`
echo " $PRODUCT"
f i
i f [ " $PROMPT" ! = " no" ] ; t hen
echo - en $" \ t \ t Pr ess ' I ' t o ent er i nt er act i ve st ar t up. "
echo
f i
Un gran esfuerzo en determinar cmo hacerlo, pero el tiempo del sistema finalmente se inicializa
desde BIOS con el comando / sbi n/ hwcl ock.
Luego, evitamos muchas lneas de inicializacin del mdulo del kernel de USB y las retomamos
aqu.
# Set t he syst emcl ock.
updat e_boot _st age RCcl ock
ARC=0
SRM=0
UTC=0

i f [ - f / et c/ sysconf i g/ cl ock ] ; t hen
. / et c/ sysconf i g/ cl ock

# conver t ol d st yl e cl ock conf i g t o new val ues
i f [ " ${CLOCKMODE}" = " GMT" ] ; t hen
UTC=t r ue
el i f [ " ${CLOCKMODE}" = " ARC" ] ; t hen
ARC=t r ue
f i
f i

CLOCKDEF=" "
CLOCKFLAGS=" $CLOCKFLAGS - - hct osys"

. . .

/ sbi n/ hwcl ock $CLOCKFLAGS

act i on $" Set t i ng cl ock $CLOCKDEF: `dat e`" dat e
Alrededor de la octava lnea se encuentra la lnea importante: initlog -c "fsck -T -a
$fsckoptions /", o reducindola a su esencia fsck /. Ahora entendemos la razn por la cual
el kernel mont la particin raz de slo lectura. Un sistema de archivos montado de slo lectura se
puede ejecutar con fsck y se puede reparar, pero si es un sistema de archivos montado de lectura y
escritura entonces no se puede reparar. El montaje de slo lectura del kernel permite realizar el
primer chequeo de la particin raz. Si se presentan problemas, se enva al usuario a una shell de
rescate.
Ahora que se ha ejecutado fsck, la particin raz se puede volver a montar como de lectura y
escritura con mount -o remount,rw /.
. . .

_RUN_QUOTACHECK=0
ROOTFSTYPE=`awk ' / \ / / && ( $3 ! ~ / r oot f s/ ) { pr i nt $3 }' / pr oc/ mount s`
i f [ - z " $f ast boot " - a " X$ROOTFSTYPE" ! = " Xnf s" ] ; t hen

STRI NG=$" Checki ng r oot f i l esyst em"
echo $STRI NG
i ni t l og - c " f sck - T - a $f sckopt i ons / "
r c=$?

i f [ " $r c" = " 0" ] ; t hen
success " $STRI NG"
echo
el i f [ " $r c" = " 1" ] ; t hen
passed " $STRI NG"
echo
f i

# A r et ur n of 2 or hi gher means t her e wer e ser i ous pr obl ems.
i f [ $r c - gt 1 ] ; t hen
i f [ " $BOOTUP" = " gr aphi cal " ] ; t hen
chvt 1
f i

f ai l ur e " $STRI NG"
echo
echo
echo $" *** An er r or occur r ed dur i ng t he f i l e syst emcheck. "
echo $" *** Dr oppi ng you t o a shel l ; t he syst emwi l l r eboot "
echo $" *** when you l eave t he shel l . "

st r =$" ( Repai r f i l esyst em) "
PS1=" $st r \ # # " ; expor t PS1
sul ogi n

echo $" Unmount i ng f i l e syst ems"
umount - a
mount - n - o r emount , r o /
echo $" Aut omat i c r eboot i n pr ogr ess. "
r eboot - f
el i f [ " $r c" = " 1" ] ; t hen
_RUN_QUOTACHECK=1
f i
f i
. . .

# Remount t he r oot f i l esyst emr ead- wr i t e.
updat e_boot _st age RCmount f s
st at e=`awk ' / \ / / && ( $3 ! ~ / r oot f s/ ) { pr i nt $4 }' / pr oc/ mount s`
[ " $st at e" ! = " r w" ] && \
act i on $" Remount i ng r oot f i l esyst emi n r ead- wr i t e mode: " mount - n - o r emount , r w /
Si se est utilizando la administracin de un volumen lgico, la puede iniciar en este momento.
Tambin active cualquier particin swap. Luego evite varias lneas iniciando mdulos de kernel y
activando el RAID de software, si lo est utilizando.
Al reanudar, recuerde el estado actual del sistema de archivos. Ahora la particin raz se monta de
lectura y escritura, pero an es la nica particin montada.
De nuevo, la lnea importante se presenta alrededor de la octava lnea en initlog -c "fsck -T
-R -A -a $fsckoptions" , o, reduce, fsck -A. Todos los sistemas de archivos restantes
(desmontados) se estn comprobando. El resto de la estrofa lleva al sistema a una shell de rescate si
se presentan problemas mayores.
# LVM i ni t i al i zat i on
i f [ - f / et c/ l vmt ab - a ! - e / pr oc/ l vm] ; t hen
modpr obe l vm- mod >/ dev/ nul l 2>&1
f i
i f [ - e / pr oc/ l vm- a - x / sbi n/ vgchange - a - f / et c/ l vmt ab ] ; t hen
act i on $" Set t i ng up Logi cal Vol ume Management : " / sbi n/ vgscan && / sbi n/ vgchange - a y
f i

# St ar t up swappi ng.
updat e_boot _st age RCswap
act i on $" Act i vat i ng swap par t i t i ons: " swapon - a - e
. . .

_RUN_QUOTACHECK=0
# Check f i l esyst ems
i f [ - z " $f ast boot " ] ; t hen
STRI NG=$" Checki ng f i l esyst ems"
echo $STRI NG
i ni t l og - c " f sck - T - R - A - a $f sckopt i ons"
r c=$?
i f [ " $r c" = " 0" ] ; t hen
success " $STRI NG"
echo
el i f [ " $r c" = " 1" ] ; t hen
passed " $STRI NG"
echo
f i

# A r et ur n of 2 or hi gher means t her e wer e ser i ous pr obl ems.
i f [ $r c - gt 1 ] ; t hen
i f [ " $BOOTUP" = " gr aphi cal " ] ; t hen
chvt 1
f i

f ai l ur e " $STRI NG"
echo
echo
echo $" *** An er r or occur r ed dur i ng t he f i l e syst emcheck. "
echo $" *** Dr oppi ng you t o a shel l ; t he syst emwi l l r eboot "
echo $" *** when you l eave t he shel l . "

st r =$" ( Repai r f i l esyst em) "
PS1=" $st r \ # # " ; expor t PS1
sul ogi n

echo $" Unmount i ng f i l e syst ems"
umount - a
mount - n - o r emount , r o /
echo $" Aut omat i c r eboot i n pr ogr ess. "
r eboot - f
el i f [ " $r c" = " 1" - a - x / sbi n/ quot acheck ] ; t hen
_RUN_QUOTACHECK=1
f i
f i
Ahora que el resto de sistemas de archivos han sido ejecutados con fsck, se ejecuta el comando
importante mount -a. Los sistemas de archivos de red tales como NFS y SMB, no se montan en
este momento.
En este punto, todo el sistema de archivos debe estar en su lugar. Recordemos qu procesos se
estn ejecutando en la mquina: init, este script y cualquier proceso que este script haya iniciado.
En otras palabras, no muchos.
Todas estas lneas estn limpiando el sistema de archivos de los variados archivos PID dejados por
demonios y archivos de bloqueo y sockets de varias aplicaciones desde el arranque anterior.
Tambin se restablecen, las propiedades y permisos para dispositivos que podran an ser
reclamados por un usuario de una consola no existente.
Es interesante que el espacio swap se reactiva otra vez. Es necesari, porque el sistema podra estar
utilizando un archivo de intercambio contenido en algn lugar diferente al de la particin raz.
Ahora pasamos por alto una gran cantidad de configuracin miscelania y terminamos con lo
siguiente.
# Mount al l ot her f i l esyst ems ( except f or NFS and / pr oc, whi ch i s al r eady
# mount ed) . Cont r ar y t o st andar d usage,
# f i l esyst ems ar e NOT unmount ed i n si ngl e user mode.
act i on $" Mount i ng l ocal f i l esyst ems: " mount - a - t nonf s, smbf s, ncpf s - O no_net dev
. . .

# Cl ean out / .
r m- f / f ast boot / f sckopt i ons / f or cef sck / . aut of sck / hal t / power of f

. . .

# Cl ean up / var . I ' d use f i nd, but / usr may not be mount ed.
f or af i l e i n / var / l ock/ * / var / r un/ * ; do
i f [ - d " $af i l e" ] ; t hen
case " $af i l e" i n
*/ news| */ mon) ; ;
*/ sudo| */ vmwar e) r m- f $af i l e/ */ * ; ;
*) r m- f $af i l e/ * ; ;
esac
el se
r m- f $af i l e
f i
done
r m- f / var / l i b/ r pm/ __db*

# Reset pam_consol e per mi ssi ons
[ - x / sbi n/ pam_consol e_appl y ] && / sbi n/ pam_consol e_appl y - r

. . .
. . .
# Now t ur n on swap i n case we swap t o f i l es.
swapon - a
act i on $" Enabl i ng swap space: " / bi n/ t r ue
. . .

# Now t hat we have al l of our basi c modul es l oaded and t he ker nel goi ng,
# l et ' s dump t he sysl og r i ng somewher e so we can f i nd i t l at er
dmesg - s 131072 > / var / l og/ dmesg

. . .
Recordemos que el archivo / var / l og/ dmesg contiene una copia de mensajes del kernel grabada
pronto despus del arranque ms reciente. Aqu es donde se crea el archivo.
Resumiendo, hallamos que el script r c. sysi ni t hace un montn de cosas (omitimos cerca de la
mitad), pero aqu est lo ms importante. En la entrada, el sistema de archivos consta de slo la
particin raz, montada como de slo lectura. En la salida, el sistema de archivos se revisa todo, se
monta y limpia, listo para utilizarlo.
Ahora el proceso de arranque contina con el nivel de ejecucin especfico, el cual es el tema de la
siguiente leccin.
System Initialization and Services
Ejemplos
Personalizar CONTROLALTSUPR para un porttil.
Un propietario de un computador porttil se dio cuenta que pocas veces necesitaba reiniciar su
porttil, pero en cambio con frecuencia estaba apagndolo para guardarlo y llevarlo con l.
Modific su archivo / et c/ i ni t t ab para personalizar la conducta de la secuencia de teclas
CONTROL-ALT-SUPR. El extracto a continuacin muestra la lnea original y la lnea modificada.
#ca: : ct r l al t del : / sbi n/ shut down - t 3 - r now
ca: : ct r l al t del : / sbi n/ power of f
System Initialization and Services
Ejercicios en lnea
Specification
1. Como precaucin, haga una copia de seguridad de su archivo / et c/ i ni t t ab en el
archivo / et c/ i ni t t ab. pr el ab4.
2. Realice los siguientes cambios en su archivo / et c/ i ni t t ab. En ningn caso deberan
cambiar el primer campo de dos letras de una lnea.
a. Quite el comentario de las lneas que regeneren gettys para las consolas virtuales
nmero cinco y seis.
b. Duplique la lnea que conecta un comando con la secuencia de teclas CONTROL-
ALT-SUPR. Quite el comentario de la lnea original, edite la nueva copia para que
en lugar de reiniciar la mquina, la secuencia de teclas CONTROL-ALT-SUPR
ejecute con echo el mensaje en ingls Three finger salute disabled, (este cambio
slo puede observarse desde la consola virtual cuando el servidor X bloquea la
secuencia de teclas CONTROL-ALT-SUPR.)
c. Modifique la lnea que regenera el gestor de pantalla grfico de tal modo que el
gestor de pantalla sea regenerado tanto en el nivel de ejecucin 4 como en el 5.
d. Cambie su nivel de ejecucin al nivel de ejecucin 3 (si no lo ha hecho todava).
3. Cuando termine, reinicie su mquina. Despus de reiniciar, su mquina debe entrar al nivel
de ejecucin 3.
4. Inicie sesin desde la primera consola virtual. Utilice el comando init para cambiar de
modo manual desde el nivel de ejecucin 3 al 4.
5. En el nivel de ejecucin 4, el gestor de pantalla grfico (pantalla de inicio de sesin) se debe
iniciar con init. Inicie sesin con la cuenta de Red Hat Academy y califique el ejercicio.
Resultados
Limpieza
Despus de haber completado el ejercicio, restaure su archivo original / et c/ i ni t t ab
colocando / et c/ i ni t t ab. pr el ab4 de nuevo en su lugar como / et c/ i ni t t ab y de modo
manual cambie al nivel de ejecucin 5, o reinicie su mquina.
A title
Question 1
[Warning]
Lab Exercise
Objetivo: Administrar el proceso init con el
archivo / et c/ i ni t t ab.
Tiempo estimado: 20 minutos.

1. Ningun proceso (en particular el de mingetty) se debe conectar a las
terminales / dev/ t t y5 o / dev/ t t y6.
2. El comando runlevel debe revelar el nivel de ejecucin actual como nivel de ejecucin 4 y
el nivel de ejecucin anterior como nivel de ejecucin 3.
3. El archivo / et c/ i ni t t ab debe establecer el nivel de ejecucin predeterminado a 3.
4. El proceso init debe regenerar el administrador de pantalla para los niveles de ejecucin 4
y 5.
5. Desde dentro de una consola virtual, la secuencia de teclas CONTROL-ALT-SUPR debe
echo la frase Three finger salute disabled, pero sin reiniciar la mquina.
grade
System Initialization and Services
Scripts de servicios de Red Hat Enterprise Linux
Conceptos clave
Los scripts de servicios de Red Hat Enterprise Linux que se encuentran en el
directorio / et c/ r c. d/ i ni t . d.
Los servicios se pueden iniciar o detener mediante el comando service.
La configuracin del nivel de ejecucin predeterminado para servicios se puede realizar con
el comando chkconfig.
System Initialization and Services
Discusin
El directorio /etc/rc.d
Mientras continuamos nuestra explicacin sobre El arranque de mquinas Linux que comenzamos
en lecciones anteriores, el kernel ha iniciado el proceso init, el cual a su vez ha ejecutado el
script / et c/ r c. d/ r c. sysi ni t . Despus de salir de este script, el sistema de archivos de la
mquina se ha ensamblado. El proceso init contina examinando el archivo / et c/ i ni t t ab desde
donde qued.
Observando con mucha atencin el segundo campo, init slo ejecuta una de las siguientes
lneas / et c/ r c. d/ r c, una para el nivel de ejecucin en el que el sistema est arrancando
(probablemente 3 o 5). En cualquier caso, cada lnea tiene el mismo efecto; se llama el
script / et c/ r c. d/ r c con el nivel de ejecucin apropiado como un argumento.
No analizaremos el script r c directamente, pero describiremos lo que hace. Primero examinamos
el diseo del directorio / et c/ r c. d.
Haciendo un inventario rpido, vemos tres secuencias de comandos de scripts, varios directorios
aparentemente llamados segn los niveles de ejecucin y un directorio i ni t . d. Con el riesgo de ir
ms adelante de nosotros mismos, presentamos un resumen del contenido del directorio:
Table 1. Contenido del directorio /etc/rc.d
Al observar uno de los directorios de nivel de ejecucin, hallamos lo siguiente.
. . .
# Syst emi ni t i al i zat i on.
si : : sysi ni t : / et c/ r c. d/ r c. sysi ni t

l 0: 0: wai t : / et c/ r c. d/ r c 0
l 1: 1: wai t : / et c/ r c. d/ r c 1
l 2: 2: wai t : / et c/ r c. d/ r c 2
l 3: 3: wai t : / et c/ r c. d/ r c 3
l 4: 4: wai t : / et c/ r c. d/ r c 4
l 5: 5: wai t : / et c/ r c. d/ r c 5
l 6: 6: wai t : / et c/ r c. d/ r c 6

. . .
[root@station rc.d]$ ls -F /etc/rc.d/
i ni t . d/ r c0. d/ r c2. d/ r c4. d/ r c6. d/ r c. sysi ni t *
r c* r c1. d/ r c3. d/ r c5. d/ r c. l ocal *
Archivo Tipo Propsito
r c. sysi ni t script sistema de inicializacin en el arranque
r c. l ocal script Personalizacin local de inicializacin del sistema en el arranque
r c script realiza cambios en nivel de ejecucin
i ni t . d directorio contiene scripts de servicios de Red Hat Enterprise Linux
r cn. d directorio
contiene enlaces simblicos que implementan la configuracin del
estado de servicios para el nivel de ejecucin n.
Como lo implica la representacin proporcionada por la opcin -F (o el color azul claro de las
entradas en la terminal), el directorio no est lleno de archivos regulares, sino de enlaces
simblicos. Si pedimos que apunte a los enlaces simblicos, hallamos lo siguiente.
Cada enlace simblico parece referirse a un script en el directorio / et c/ r c. d/ i ni t . d. Al dar una
mirada rpida a los directorios especficos de nivel de ejecucin, hallamos lo mismo.
Parece que hemos descubierto un directorio importante: / et c/ r c. d/ i ni t . d.
Los scripts de servicios y el directorio /etc/rc.d/init.d
El directorio / et c/ r c. d/ i ni t . d tiene una funcin especial en Red Hat Enterprise Linux y
debera ser parte del vocabulario de trabajo de cualquier administrador de Red Hat Enterprise
Linux . El directorio contiene exclusivamente scripts que comparten una interfaz similar.
Cada script espera ser llamado con un slo argumento, principalmente start, stop, restart,
reload o status. Estos scripts se conocen como scripts de servicios y la mayora manipulan
directamente un demonio, el cual realiza un servicio particular.
A manera de ejemplo, el script de servicios / et c/ r c. d/ i ni t . d/ sshd administra el
demonio / usr / sbi n/ sshd, el cual es el servidor para el servicio de red de Secure Shell.
Si queremos saber si el servicio est en ejecucin entonces preguntamos por su status.
[root@station rc.d]$ ls -F /etc/rc.d/rc3.d/
K05sasl aut hd@ K40smar t d@ S00mi cr ocode_ct l @ S17keyt abl e@ S80sendmai l @
K10psacct @ K45named@ S05kudzu@ S20r andom@ S85gpm@
K15dc_cl i ent @ K50net dump@ S08ar pt abl es_j f @ S24pcmci a@ S90cr ond@
K15dc_ser ver @ K50snmpd@ S08i p6t abl es@ S25net f s@ S90xf s@
K15ht t pd@ K50snmpt r apd@ S08i pt abl es@ S26apmd@ S95at d@
K20nf s@ K50t ux@ S09i sdn@ S28aut of s@ S97r hnsd@
K24i r da@ K70aep1000@ S10net wor k@ S55cups@ S99l ocal @
K25squi d@ K70bcm5820@ S12sysl og@ S55sshd@ S99mdmoni t or @
K35smb@ K73ypbi nd@ S13i r qbal ance@ S56r awdevi ces@ S99mdmpd@
K35vncser ver @ K74nscd@ S13por t map@ S56xi net d@
K35wi nbi nd@ K74nt pd@ S14nf sl ock@ S59hpoj @
[root@station rc.d]$ ls -lF /etc/rc.d/rc3.d/
t ot al 0
l r wxr - xr - x 1 r oot r oot 19 Dec 27 12: 07 K05sasl aut hd - > . . / i ni t . d/ sasl aut hd*
l r wxr - xr - x 1 r oot r oot 16 Dec 27 12: 08 K10psacct - > . . / i ni t . d/ psacct *
l r wxr - xr - x 1 r oot r oot 19 Dec 27 16: 12 K15dc_cl i ent - > . . / i ni t . d/ dc_cl i ent *
l r wxr - xr - x 1 r oot r oot 19 Dec 27 16: 12 K15dc_ser ver - > . . / i ni t . d/ dc_ser ver *
l r wxr - xr - x 1 r oot r oot 15 Dec 27 16: 12 K15ht t pd - > . . / i ni t . d/ ht t pd*
l r wxr - xr - x 1 r oot r oot 13 Dec 27 12: 08 K20nf s - > . . / i ni t . d/ nf s*
. . .
[root@station init.d]$ cd /etc/rc.d/init.d/
[root@station init.d]$ ls
aep1000 f i r st boot i sdn net f s r awdevi ces sshd
apmd f unct i ons kdcr ot at e net wor k r hnsd sysl og
ar pt abl es_j f gpm keyt abl e nf s sasl aut hd t ux
at d hal t ki l l al l nf sl ock sendmai l vncser ver
aut of s hpoj kudzu nscd si ngl e wi nbi nd
bcm5820 ht t pd mdmoni t or nt pd smar t d xf s
cr ond i p6t abl es mdmpd pcmci a smb xi net d
cups i pt abl es mi cr ocode_ct l por t map snmpd ypbi nd
dc_cl i ent i r da named psacct snmpt r apd
dc_ser ver i r qbal ance net dump r andom squi d
[root@station init.d]$ ./sshd
Usage: . / sshd {st ar t | st op| r est ar t | r el oad| condr est ar t | st at us}
Hallamos que el demonio est despierto y en ejecucin. Claro est que pudimos haber mirado
directamente con el comando ps.
Si queremos detener el servicio, le pedimos al script de servicios que pare con stop.
Como el script nos pidi y como confirmamos dos veces a travs de dos tcnicas diferentes, el
demonio sshd est muerto. No debera ser difcil determinar cmo volver a iniciar el demonio.
El demonio sshd est otra vez ejecutndose, naturalmente con un Id de proceso diferente. Qu
hace un restart?
Un stop, seguido por un start. Qu hace un reload? Para ilustrar de una forma ms directa,
volvemos a cargar el demonio crond en lugar de sshd.
A diferencia de un restart, un reload es una accin sencilla y el mismo proceso suele ejecutarse
despus de un reload como lo era antes (observe que el Id del proceso crond es idntico).
Muchos demonios Linux (y Unix) anulan el numero de seal 1 (SIGHUP) y lo utilizan como signo
para releer e implementar cambios hechos a los archivos de configuracin. En otras palabras, se
pueden reinicializar muchos demonios entregndoles un nmero de seal 1. En los viejos tiempos
se referan a esto como rehupping un demonio. Aunque un restart literalmente detiene y luego
inicia un demonio, un reload normalmente lo reinicia.
[root@station init.d]$ ./sshd status
sshd ( pi d 4992) i s r unni ng. . .
[root@station init.d]$ ps aux | grep sshd
r oot 4992 0. 0 0. 1 3444 1480 ? S 05: 05 0: 00 / usr / sbi n/ sshd
r oot 5690 0. 0 0. 0 3576 636 pt s/ 2 S 05: 52 0: 00 gr ep sshd
[root@station init.d]$ ./sshd stop
St oppi ng sshd: [ OK ]
[root@station init.d]$ ./sshd status
sshd i s st opped
[root@station init.d]$ ps aux | grep sshd
r oot 5717 0. 0 0. 0 3580 640 pt s/ 2 S 05: 52 0: 00 gr ep sshd
[root@station init.d]$ ./sshd start
St ar t i ng sshd: [ OK ]
[root@station init.d]$ ./sshd status
sshd ( pi d 5729) i s r unni ng. . .
[root@station init.d]$ ./sshd restart
St oppi ng sshd: [ OK ]
St ar t i ng sshd: [ OK ]
[root@station init.d]$ ./sshd status
sshd ( pi d 5763) i s r unni ng. . .
[root@station init.d]$ ./crond status
cr ond ( pi d 5999) i s r unni ng. . .
[root@station init.d]$ ./crond reload
Rel oadi ng cr on daemon conf i gur at i on: [ OK ]
[root@station init.d]$ ./crond status
cr ond ( pi d 5999) i s r unni ng. . .
No obstante, le advertimos acerca de los scripts de servicios que se estn ejecutando desde el
directorio / et c/ r c. d/ i ni t . d. A continuacin, observe la diferencia en los dos ltimos
comandos.
Por qu aparentemente el mismo comando produjo dos salidas diferentes? Qu archivo se
ejecut en realidad en el ltimo caso? .
Los scripts de servicios de Red Hat Enterprise Linux proporcionan un mecanismo fcil y
conveniente para la administracin de demonios. Despus de un
tiempo, /etc/rc.d/init.d/... tiende a facilitar la tarea de un administrador de Red Hat
Enterprise Linux. Quiere iniciar el servidor de red? /etc/rc.d/init.d/httpd start.
Quiere que el demonio sshd relea su archivo de configuracin? /etc/rc.d/init.d/sshd
reload. Quiere matar al demonio ftp? Usted entiende.
Sin embargo, hay una forma an ms fcil...
Los servicios y el comando service
Debido a que los administradores suelen estar ejecutando scripts desde el
directorio / et c/ r c. d/ i ni t . d, se cre un atajo llamado service. El comando service espera
como su primer argumento el nombre de un servicio de Red Hat Enterprise Linux y como segundo
argumento un comando de una palabra tal como start, stop, etc.
Qu es un servicio de Red Hat Enterprise Linux? Cualquier componente del sistema administrado
por un script de servicios en el directorio / et c/ r c. d/ i ni t . d. Las siguientes dos lneas de
comandos son exactamente iguales.
La mayora de los servicios tienen demonios asociados a ellos. Por ejemplo, hay un servicio llamado
network.
Como el nombre lo implica, los componentes de red del sistema se detienen y reinician. Como se
[root@station root]$ cd /etc/rc.d/init.d/
[root@station init.d]$ ./sshd status
sshd ( pi d 5864) i s r unni ng. . .
[root@station init.d]$ sshd status
Ext r a ar gument st at us.
servicio service_name comando
service service_name start
/etc/rc.d/init.d/service_name start
[root@station root]$ iniciar servicio de red
Shut t i ng down i nt er f ace et h0: [ OK ]
Shut t i ng down i nt er f ace et h1: [ OK ]
Shut t i ng down l oopback i nt er f ace: [ OK ]
Di sabl i ng I Pv4 packet f or war di ng: [ OK ]
Set t i ng net wor k par amet er s: [ OK ]
Br i ngi ng up l oopback i nt er f ace: [ OK ]
Br i ngi ng up i nt er f ace et h0: [ OK ]
Br i ngi ng up i nt er f ace et h1: [ OK ]
describir ms adelante no hay un demonio asociado de red. En cambio, el servicio de red
nicamente cambia el estado del kernel.
Igualmente, algunos servicios administran ms de un demonio de modo colectivo como el caso
para los servicios syslog y nfs.
Lo que define un servicio no es un demonio determinado, sino la presencia de un script de servicios
en el directorio / et c/ r c. d/ i ni t . d. Muchos servicios administran un demonio, algunos no lo
hacen, aunque algunos manejan ms de un demonio en conjunto.
La administracin del sistema de servicios es an ms fcil. Quiere empezar a utilizar el servidor
de red? service httpd start. Quiere saber si el servicio de Secure Shell se est ejecutando?
service sshd status.
Aunque el comando service facilita la vida a los administradores, deberan conocer el
directorio / et c/ r c. d/ i ni t . d y la funcin que realiza. Por ejemplo, qu sucede si un
administrador quiere iniciar el servidor SAMBA?
Un par de cosas podran salir mal.
1. El software que implementa el servidor SAMBA no se podra instalar en el sistema.
2. El administrador podra tener incorrecto el nombre del servicio.
En cualquier caso, una mirada rpida en el directorio / et c/ r c. d/ i ni t . d identificar el
problema.
En este caso, el administrador se da cuenta de que simplemente ha dado un nombre incorrecto al
servicio.
(Como una ayuda, los scripts de servicios que administran un demonio nico se llaman
generalmente por el nombre del demonio, e incluyen la d final. Los scripts de servicios que
administran mltiples demonios (como es el caso de smb) por lo general, no incluyen la d final.)
[root@station root]$ service nfs status
r pc. mount d i s st opped
nf sd i s st opped
r pc. r quot ad i s st opped
[root@station root]$ service syslog status
sysl ogd ( pi d 4423) i s r unni ng. . .
kl ogd ( pi d 4427) i s r unni ng. . .
[root@station root]$ service smbd start
smbd: unr ecogni zed ser vi ce
[root@station root]# ls /etc/rc.d/init.d/s*
/ et c/ r c. d/ i ni t . d/ sasl aut hd / et c/ r c. d/ i ni t . d/ smb / et c/ r c. d/ i ni t . d/ squi d
/ et c/ r c. d/ i ni t . d/ sendmai l / et c/ r c. d/ i ni t . d/ snmpd / et c/ r c. d/ i ni t . d/ sshd
/ et c/ r c. d/ i ni t . d/ si ngl e / et c/ r c. d/ i ni t . d/ snmpt r apd / et c/ r c. d/ i ni t . d/ sysl og
[root@station root]# service smb start
St ar t i ng SMB ser vi ces: [ OK ]
St ar t i ng NMB ser vi ces: [ OK ]
El siguiente cuadro resume los comandos que deberan ser soportados por todos los scripts de
servicios. Algunos scripts de servicios admiten comandos adicionales especficos para ese servicio.
Table 1. Comandos de los scripts de servicios
Configuracin del servicio de nivel de ejecucin y chkconfig
Aunque nuestro paseo por el comando service fue importante, ste nos sac de nuestro tema
sobre el proceso de arranque de Red Hat Enterprise Linux, al cual nos gustara volver. Cuando lo
dejamos, estbamos explorando el directorio / et c/ r c. d.
En particular, hemos observado que varios subdirectorios especficos del nivel de ejecucin
contenan de forma meticulosa enlaces simblicos, los cuales se referan a los scripts de servicios en
el directorio / et c/ r c. d/ i ni t . d.
El nombre de cada enlace simblico tiene la siguiente forma.
Aqu, L puede ser la letra K o la letra S, dd es un nmero de dos dgitos y service_name es el
nombre del script de servicios a los cules apunta el enlace simblico.
Ahora podemos describir exactamente lo que hace un script / et c/ r c. d/ r c. Recuerde que cada
vez que el sistema cambia niveles de ejecucin (incluyendo entrar un nivel de ejecucin en el
Comando Efecto
start Inicia el servicio.
stop Detiene el servicio.
status
Genera un mensaje de estatus del servicio apropiado. Como mnimo, el mensaje
reporta si el servicio se est ejecutando y el Id del proceso de todos los demonios
asociados. A menudo, el mensaje de estatus tambin incluye informacin
especfica del servicio.
restart Primero se detiene y luego inicia el servicio.
reload Reinicializa el servicio sin reiniciar, si es necesario.
condrestart
Si el servicio ya se est ejecutando, lo reinicia, de lo contrario, no hace nada, (este
comando es til con scripts automticos.)
[root@station root]# ls -F /etc/rc.d/
i ni t . d/ r c0. d/ r c2. d/ r c4. d/ r c6. d/ r c. sysi ni t *
r c* r c1. d/ r c3. d/ r c5. d/ r c. l ocal * r c. sysi ni t . r pmsave*
[root@station root]# ls -F /etc/rc.d/rc3.d/
K05sasl aut hd@ K40smar t d@ S00mi cr ocode_ct l @ S17keyt abl e@ S80sendmai l @
K10psacct @ K45named@ S05kudzu@ S20r andom@ S85gpm@
K15dc_cl i ent @ K50net dump@ S08ar pt abl es_j f @ S24pcmci a@ S90cr ond@
K15dc_ser ver @ K50snmpd@ S08i p6t abl es@ S25net f s@ S90xf s@
K15ht t pd@ K50snmpt r apd@ S08i pt abl es@ S26apmd@ S95at d@
K20nf s@ K50t ux@ S09i sdn@ S28aut of s@ S97r hnsd@
K24i r da@ K70aep1000@ S10net wor k@ S55cups@ S99l ocal @
K25squi d@ K70bcm5820@ S12sysl og@ S55sshd@ S99mdmoni t or @
K35smb@ K73ypbi nd@ S13i r qbal ance@ S56r awdevi ces@ S99mdmpd@
K35vncser ver @ K74nscd@ S13por t map@ S56xi net d@
K35wi nbi nd@ K74nt pd@ S14nf sl ock@ S59hpoj @
Lddservice_name
arranque), init llama al script rc, el cual realiza lo siguiente.
1. A excepcin del primer arranque, el script rc examina el directorio especfico del nivel de
ejecucin al que se est entrando. Cualquier enlace que inicie K (para mat ar ), rc
comprobar si ese servicio se est ejecutando. Si se est ejecutando, el script de servicios
asociado se llama con el argumento stop.
2. El script rc examina de nuevo el nivel de ejecucin especfico que se ha entrado. Cualquier
enlace que inicie S (para St ar t ), rc comprobar si ese servicio se est ejecutando o no,
el script de servicio asociado se llama con el argumento start.
Como resultado, una vez que init ha completado el cambio de niveles de ejecucin, el estado de
todos los servicios debe reflejar el estado de los enlaces simblicos en el directorio del nivel de
ejecucin especfico. Todos los servicios asociados con enlaces K se deben detener y todos los
servicios asociados con enlaces S se deben iniciar.
Para qu sirven los nmeros? Simplemente dan un orden a los servicios cuando se inician o
cuando se detienen, (no sirve de mucho iniciar el servidor de red (httpd) antes de que se haya
configurado la red (network)).
Al reordenar los enlaces dentro de directorios especficos del nivel de ejecucin, los
administradores pueden cambiar la configuracin predeterminada de su mquina. Por ejemplo, el
servicio samba est actualmente inhabilitado por defecto en el nivel de ejecucin 3. Un
administrador podra hacer que el servicio se inicie por defecto en el nivel de ejecucin 3 al escoger
de una manera algo arbitraria un nmero de inicio y mover el enlace simblico.
Este tipo de alteracin de enlaces "a mano" podran hacer el trabajo, pero hay una forma ms
elegante con el comando chkconfig. El comando chkconfig existe para ayudar a los
administradores a configurar el nivel de ejecucin para servicios.
Cuando se llama con --list, el comando chkconfig mostrar todos los servicios conocidos y el
estado actual de los siete niveles de ejecucin.
(Al final de la lista, chkconfig cambia e indica el estado de los servicios de red controlados xinetd
lo cual es un simple encendido o apagado. La configuracin de servicios relacionados con xinetd
va ms all del objetivo de este curso y estas entradas no se tienen en cuenta).
Cuando se llama --list con un argumento, slo se muestra la configuracin del servicio nombrado.
Cuando se llama con dos argumentos, el primer argumento debe ser el nombre de un servicio y el
[root@station root]# cd /etc/rc.d/rc3.d/
[root@station rc3.d]# mv K35smb S95smb
[root@station rc3.d]# chkconfig --list
kdcr ot at e 0: of f 1: of f 2: of f 3: of f 4: of f 5: of f 6: of f
nt pd 0: of f 1: of f 2: of f 3: of f 4: of f 5: of f 6: of f
sysl og 0: of f 1: of f 2: of f 3: on 4: on 5: on 6: of f
net f s 0: of f 1: of f 2: of f 3: of f 4: of f 5: of f 6: of f
net wor k 0: of f 1: of f 2: of f 3: on 4: on 5: on 6: of f
r andom 0: of f 1: of f 2: of f 3: on 4: on 5: on 6: of f
. . .
[root@station rc3.d]# chkconfig --list smb
smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off
segundo argumento puede ser on , off o reset. Para los niveles de ejecucin 3, 4 y 5, chkconfig
actualizar los enlaces simblicos correctamente.
A continuacin, el administrador examina primero el estado del enlace pertinente en el
directorio / et c/ r c. d/ r c3. d. Luego, con el comandochkconfig, habilita el servicio smb para
niveles de ejecucin 3, 4 y 5 y reexamina el estado del enlace.
El comando chkconfig manej el "cambio" del enlace simblico para el administrador. Adems, el
servicio smb est inhabilitado en la siguiente secuencia.
Cada servicio trae consigo su propio concepto de lo que debe ser su estado predeterminado. El
servicio de red, por ejemplo, no est habilitado "por defecto" para los niveles de ejecucin 2, 3, 4 y
5. En contraste, la mayora de los servicios de red, tales como los servicios httpd osmb, estn
apagados "por defecto" para todos los niveles de ejecucin. El comando reset se puede utilizar
para restablecer los estados del servicio a su configuracin "por defecto".
Configuracin local de inicio
Nuestra discusin sobre el proceso de arranque de Red Hat Enterprise Linux ya casi est completa.
Nuestro ltimo tema tratar sobre cmo personalizar el proceso de inicio y especficamente el
script / et c/ r c. d/ r c. l ocal . Al listar todas las instancias de la palabra local desde los
directorios especficos de niveles de ejecucin podemos deducir la funcin del script rc.local.
[root@station rc3.d]# pwd
/ et c/ r c. d/ r c3. d
[root@station rc3.d]# ls *smb*
K35smb
[root@station rc3.d]# chkconfig smb on
[root@station rc3.d]# chkconfig --list smb
smb 0: of f 1: of f 2: on 3: on 4: on 5: on 6: of f
[root@station rc3.d]# ls *smb*
S91smb
[root@station rc3.d]# chkconfig smb off
[root@station rc3.d]# chkconfig --list smb
smb 0: of f 1: of f 2: of f 3: of f 4: of f 5: of f 6: of f
[root@station rc3.d]# ls *smb*
K35smb
[root@station rc3.d]# chkconfig smb reset
[root@station rc3.d]# chkconfig --list smb
smb 0: of f 1: of f 2: of f 3: of f 4: of f 5: of f 6: of f
[Note]
Observar ms all
El comando chkconfig tambin permitir a los administradores
configurar los estados de niveles de ejecucin especificados. En la
prctica, el nivel de ejecucin predeterminado de una mquina es casi
siempre 3 o 5 por lo tanto los comandos on y off sern suficientes.
Consulte la pgina chkconfig(8) del manual para mayor informacin.
Tambin, observe que chkconfig tiene algn conocimiento incorporado
en ste. Por ejemplo, sabe que el nmero de inicio para el servicio smb es
91 y el nmero para matar es el 35. De nuevo, la pgina de manual le
dar mayores detalles.
El script rc.local se ejecuta cuando se entra a un nivel de ejecucin tras el arranque. Por defecto, el
script est vaco. Cualquier requisito particular se puede agregar a este script. Cualquier
configuracin que se agregue a rc.local se ejecutar despus de que todos los servicios se hayan
iniciado. Esta conducta se puede modificar correctamente, ajustando el nmero de inicio del enlace
simblico S99l ocal .
Resumen
Al cerrar, se ofrece el siguiente consejo. No permita que los detalles presentados en esta leccin
oscurezcan la simplicidad de la administracin del servicio de Red Hat Enterprise Linux. Se podra
decir que la mayora de las tcnicas de administracin de sistemas ms importantes descritas en
este cuaderno estn plasmadas en estos dos comandos: service y chkconfig.
Utilice el comando service para manipular directamente un servicio, como se muestra en los
siguientes comandos.
Utilice chkconfig para establecer el estado perdeterminado de un servicio tras el arranque, como
en los siguientes comandos.
Despus de la instalacin del software de un nuevo servicio, suelen usarse los dos comandos en
conjunto para iniciar el servicio de inmediato y por defecto tras un reinicio posterior.
[root@station rc.d]# ls -l /etc/rc.d/rc?.d/*local*
l r wxr wxr wx 1 r oot r oot 11 Apr 1 2003 / et c/ r c. d/ r c2. d/ S99l ocal - > . . / r c. l ocal
l r wxr wxr wx 1 r oot r oot 11 Apr 1 2003 / et c/ r c. d/ r c3. d/ S99l ocal - > . . / r c. l ocal
l r wxr wxr wx 1 r oot r oot 11 Apr 1 2003 / et c/ r c. d/ r c4. d/ S99l ocal - > . . / r c. l ocal
l r wxr wxr wx 1 r oot r oot 11 Apr 1 2003 / et c/ r c. d/ r c5. d/ S99l ocal - > . . / r c. l ocal
[root@station rc.d]# service vsftpd start
St ar t i ng vsf t pd f or vsf t pd: [ OK ]
[root@station rc.d]# service vsftpd stop
Shut t i ng down vsf t pd: [ OK ]
[root@station rc.d]# service vsftpd status
vsf t pd i s st opped
[root@station rc.d]# chkconfig vsftpd on
[root@station rc.d]# chkconfig vsftpd off
[root@station rc.d]# chkconfig --list vsftpd
vsf t pd 0: of f 1: of f 2: of f 3: of f 4: of f 5: of f 6: of f
[root@station rc.d]# service smb start
St ar t i ng SMB ser vi ces: [ OK ]
St ar t i ng NMB ser vi ces: [ OK ]
[root@station rc.d]# chkconfig smb on
System Initialization and Services
Ejercicios en lnea
Specification
1. Asuma que no anticipa futuros cambios al hardware de su mquina y que deseara
disminuir su tiempo de inicio de la mquina. Cambie la configuracin del nivel de ejecucin
para el servicio kudzu para que est desactivado para todos los niveles de ejecucin.
2. De inmediato desactive el servicio portmap (pero no cambie sus niveles de ejecucin
predeterminados).
3. De modo manual desactive el servicio rhnsd para nivel de ejecucin 4, renombrando el
enlace simblico K01r hnsd.
Resultados
A title
Question 1

Limpieza
Restaurar los servicios kudzu, portmap y rhnsd a su configuracin predeterminada.
[Warning]
Lab Exercise
Objetivo: Administrar de modo efectivo los servicios de Red Hat
Enterprise Linux.
Tiempo estimado: 15 minutos.
1. Una configuracin de nivel de ejecucin que desactive el servicio kudzu para todos los
niveles de ejecucin.
2. Un servicio portmap que no est actualmente en ejecucin.
3. Una configuracin de nivel de ejecucin que desactive el servicio rhnsd para el nivel de
ejecucin 4 con un "nmero para parar " de 01.
grade
System Initialization and Services
Resolucin de problemas en la secuencia de arranque
Conceptos clave
Al observar el flujo de mensajes de arranque, los administradores pueden determinar la
naturaleza del error de configuracin de una mquina.
Al agregar un 1 a la lnea de comandos del kernel, se puede iniciar una mquina en un
estado en que el sistema de archivos es ensamblado, pero no se han iniciado servicios.
Al agregar un init=/bin/sh a la lnea de comandos del kernel, se puede arrancar una
mquina en un estado donde hay una shell interactiva, pero no se ha hecho referencia a
archivos de configuracin.
System Initialization and Services
Discusin
La aplicacin grfica de servicios
En la leccin anterior se presentaron los comandos services y chkconfig como la tcnica
preferida para administrar servicios de Red Hat Enterprise Linux. Tambin existe una utilidad
grfica, a la cual se puede acceder desde el men principal como configuracin del
sistema:configuracin de servidor:servicios, o desde la lnea de comandos como system-config-
services.
Figure 1. Utilidad de configuracin del servicio grfico

La utilidad grfica modifica un nivel de ejecucin a la vez y el nivel de ejecucin actual se puede
seleccionar desde el men nivel de ejecucin. Los botones iniciar, detener y reiniciar realizan
funciones anlogas a service, mientras que las casillas de verificacin se utilizan para establecer la
conducta predeterminada del nivel de ejecucin (de forma similar a chkconfig). Una corta
descripcin del servicio y su estado actual se proporciona en los paneles de texto.
Administracin de consolas virtuales
Las consolas virtuales fueron mencionadas en una leccin anterior, por lo tanto aprovechamos esta
oportunidad para recoger informacin acerca de las consolas virtuales en un solo lugar.
Debido a que el proceso init inicia 6 gettys para cada una de las primeras 6 consolas virtuales, la
gente generalmente dice que Linux "tiene" 6 consolas virtuales. Usualmente, Linux proporciona 12
consolas virtuales y algunas veces ms. Las 6 consolas virtuales que no permiten inicio de sesin se
pueden utilizar para ejecutar servidores X y visualizar la salidas de otros comandos. La consola n se
puede acceder a travs del nodo de dispositivo /dev/ttyn.
Como ejemplo, la siguiente lnea de comandos hara que la dcima la consola virtual mostrara
constantemente las ltimas lneas del archivo / var / l og/ messages.
Igual que las primeras 6 consolas virtuales, las consolas ms altas se pueden ver con la secuencia de
comandos ALT-Fn, donde cada tecla de funcin asigna el nmero correspondiente de la consola
virtual n. Al salir del entorno grfico X, la secuencia de teclas ALT-Fn parece ser demasiado
comn, por lo tanto se necesita agregar CONTROL. Si tiene problemas para recordar la diferencia,
CONTROL-ALT-Fn siempre funcionar.
El siguiente cuadro presenta las secuencias de teclas ms utilizadas para administrar consolas
virtuales.
Table 1. Secuencias de teclas para consolas virtuales
Anlisis de la secuencia de arranque
Algunas veces, las mquinas pueden estar desconfiguradas al punto que pueden presentar
problemas en el arranque. Reconocer en qu momento del proceso de arranque se presenta el
problema puede ayudar en el diagnstico. Por consiguiente, los administradores del sistema de Red
Hat Enterprise Linux deben ser capaces de reconocer diversas fases del proceso de inicio del flujo
de mensajes ingresados tras el arranque.
Empezando con Red Hat Enterprise Linux 4, el determinar problemas en el tiempo de arranque es
un poco dificil ya que los parmetros de tiempo de inicio del kernel quiet y rhgb estn
predeterminados. Si su sistema presenta problemas en el arranque, se deben suprimir esos
parmetros de la lnea de comandos del kernel (ya sea editando / et c/ gr ub. conf , o
probablemente omitiendo la lnea de comandos del kernel en el arranque con GRUB).
Aqu reproducimos los componentes clave de una muestra de secuencia de arranque (asumiendo
que no estn los parmetros de arranque del kernel quiet ni rhdb) e identificamos algunas de las
fases importantes. Comencemos por el gestor de arranque GRUB. Si es rpido, podemos atajar un
mensaje similar al siguiente cuando BIOS pase el control a GRUB.
Rpidamente, el mensaje se reemplaza con el men de aplicacin de la etapa 2 de GRUB. Cuando
un elemento del men se ha seleccionado, aparece en pantalla lo siguiente.
[root@station root]# tail -f /var/log/messages > /dev/tty10 &
Secuencia de teclas Uso
ALT-Fn Se desplaza a la consola virtual nmero n.
CONTROL-ALT-Fn
Se desplaza a la consola virtual nmero n dentro
de un entorno X.
ALT-FLECHAIZQUIERDA, ALT-
FLECHADERECHA
Se desplaza a la consola vecina.
MAYSCULAS-PGINA-ARRIBA,
MAYSCULAS-PGINA-ABAJO
Se desplaza por el historial de la consola virtual,
(el historial se pierde cuando se cambia la
consola).
Et apa 2 de l a car ga de GRUB
Otra vez, debe ser rpido. Es muy probable, que el nico momento en que pueda atajar esta
informacin es si algo saliera mal (por ejemplo si GRUB no pudiera localizar el kernel o no pudiera
localizar el disco RAM), porque los mensajes se remplazan rpidamente con mensajes de inicio del
kernel mientras carga.
Cortamos la mayora de los mensajes del kernel, (los interesados pueden hojearlos en el
archivo / var / l og/ dmesg). Volvemos a cuando el kernel est montando su disco RAM inicial,
montando la particin raz e iniciando el proceso init.
En este punto, init inicia y se ejecuta el script rc.sysinit. El script calla al kernel rpidamente y
comienza una secuencia de inicio ms representativa, cargando una fuente por defecto y luego
procediendo a inicializar el sistema de archivos.
En este punto, se presenta un evento importante en la vida del sistema de archivos: la particin raz
ahora est montada como de lectura y escritura.
Boot i ng ' Red Hat Li nux ( 2. 6. 9- 5. EL) '
r oot ( hd0, 0)
Fi l esyst emt ype i s ext 2f s, par t i t i on t ype 0x83
ker nel / vml i nuz- 2. 6. 9- 5. EL r o r oot =LABEL=/ r hgb qui et
[ Li nux- bzI mage, set up=0x1400, si ze=0x113738]
i ni t r d / i ni t r d- 2. 6. 9- 5. EL. i mg
[ Li nux- i ni t r d @0x3cb000, 0x24881 byt es]
Li nux ver si on 2. 6. 9- 5. EL ( bhcompi l e@bugs. devel . r edhat . com) ( gcc ver si on 3. 2. 3 2
0030502 ( Red Hat Li nux 3. 2. 3- 26) ) #1 Thu J an 8 17: 03: 13 EST 2004
BI OS- pr ovi ded physi cal RAM map:
BI OS- e820: 0000000000000000 - 000000000009f c00 ( usabl e)
BI OS- e820: 000000000009f c00 - 00000000000a0000 ( r eser ved)
BI OS- e820: 00000000000f 0000 - 0000000000100000 ( r eser ved)
. . .
. . .
RAMDI SK: Compr essed i mage f ound at bl ock 0
Fr eei ng i ni t r d memor y: 146k f r eed
VFS: Mount ed r oot ( ext 2 f i l esyst em) .
J our nal l ed Bl ock Devi ce dr i ver l oaded
kj our nal d st ar t i ng. Commi t i nt er val 5 seconds
EXT3- f s: mount ed f i l esyst emwi t h or der ed dat a mode.
kj our nal d st ar t i ng. Commi t i nt er val 5 seconds
Fr eei ng unused ker nel memor y: 132k f r eed
I NI T: ver si on 2. 84 boot i ng
Set t i ng def aul t f ont ( l at ar cyr heb- sun16) : [ OK ]

Wel come t o Red Hat Li nux
Pr ess ' I ' t o ent er i nt er act i ve st ar t up.
Mount i ng pr oc f i l esyst em: [ OK ]
Unmount i ng i ni t r d: [ OK ]
Conf i gur i ng ker nel par amet er s: [ OK ]
Set t i ng cl ock ( l ocal t i me) : Fr i Nov 14 14: 32: 45 EST 2003 [ OK ]
Loadi ng def aul t keymap ( us) : [ OK ]
Set t i ng host name dhcp63- 237. r du. r edhat . com: [ OK ]
I ni t i al i zi ng USB cont r ol l er ( usb- uhci ) : [ OK ]
Mount i ng USB f i l esyst em: [ OK ]
I ni t i al i zi ng USB HI D i nt er f ace: [ OK ]
I ni t i al i zi ng USB keyboar d: [ OK ]
I ni t i al i zi ng USB mouse: [ OK ]
Checki ng r oot f i l esyst em
/ : cl ean, 92214/ 393600 f i l es, 463138/ 787177 bl ocks
[ OK ]
Remount i ng r oot f i l esyst emi n r ead- wr i t e mode: [ OK ]

Se produjo otro evento importante en el sistema de archivos: ahora todas las particiones locales se
han montado de lectura y escritura.
En este punto, rc.sysinit termina e init comienza la configuracin especfica del nivel de
ejecucin. Las siguientes lneas reflejan, uno por uno, los diversos scripts de servicio del inicio del
directorio / et c/ r c. d/ i ni t . d.
Ahora las interfaces de red deben estar activas y se pueden iniciar los servicios de red relacionados.
Qu "otros sistemas de archivos" faltan por montarse? Los sistemas de archivos relacionados,
tales como los recursos compartidos NFS o SMB.
Los mensajes de inicio deberan desaparecer ahora, para ser remplazados por una consola virtual
de texto con un intrprete de comandos de inicio de sesin (para el nivel de ejecucin 3) o una
pantalla grfica de inicio (para el nivel de ejecucin 5).
Act i vat i ng swap par t i t i ons: [ OK ]
Fi ndi ng modul e dependenci es: [ OK ]
Checki ng f i l esyst ems
/ boot : cl ean, 41/ 32128 f i l es, 9270/ 128488 bl ocks
/ home: cl ean, 520/ 130560 f i l es, 30874/ 522081 bl ocks

Mount i ng l ocal f i l esyst ems: [ OK ]

Enabl i ng l ocal f i l esyst emquot as: [ OK ]
Enabl i ng swap space: [ OK ]
I NI T: Ent er i ng r unl evel 5
Ent er i ng non- i nt er act i ve st ar t up
Checki ng f or new har dwar e [ OK ]
Updat i ng / et c/ f st ab [ OK ]
Set t i ng net wor k par amet er s: [ OK ]
Br i ngi ng up l oopback i nt er f ace: [ OK ]
Br i ngi ng up i nt er f ace et h0: [ OK ]
St ar t i ng syst eml ogger : [ OK ]
St ar t i ng ker nel l ogger : [ OK ]
St ar t i ng por t mapper : [ OK ]
St ar t i ng NFS st at d: [ OK ]
St ar t i ng keyt abl e: [ OK ]
I ni t i al i zi ng r andomnumber gener at or : [ OK ]
St ar t i ng pcmci a: [ OK ]
Mount i ng ot her f i l esyst ems: [ OK ]
St ar t i ng up APM daemon: [ OK ]
St ar t i ng aut omount : No Mount poi nt s Def i ned [ OK ]
St ar t i ng sshd: [ OK ]
St ar t i ng xi net d: [ OK ]
St ar t i ng sendmai l : [ OK ]
St ar t i ng sm- cl i ent : [ OK ]
St ar t i ng consol e mouse ser vi ces: [ OK ]
St ar t i ng cr ond: [ OK ]
St ar t i ng cups: [ OK ]
St ar t i ng xf s: [ OK ]
St ar t i ng anacr on: [ OK ]
St ar t i ng at d: [ OK ]
St ar t i ng f i r st boot : [ OK ]
St ar t i ng Red Hat Net wor k Daemon: [ OK ]
Cuando todo sale bien, estos mensajes se pueden ignorar. No obstante, cuando la mquina est
desconfigurada, el observar cuidadosamente en qu parte del proceso de arranque se inici el
problema, puede ayudar bastante en el diagnstico del problema.
Modificacin de la secuencia de arranque con la lnea de comandos del kernel
En la leccin sobre el gestor de arranque GRUB, mencionamos la funcin de la lnea de comandos
del kernel y cmo modificar la lnea de comandos mientras se arranca la mquina. Ahora que
hemos descrito la secuencia de arranque de Red Hat Enterprise, volvamos al tema.
Tras el inicio, el kernel examina la lnea de comandos del kernel y responde correctamente a los
argumentos reconocidos. Los argumentos que el kernel no reconoce, los pasa al primer proceso. Si
el argumento desconocido tiene la forma nombre=valor, se pasa como variable de entorno. De lo
contrario, el argumento desconocido se pasa como un argumento para el primer proceso.
Algunas veces, los sistemas se desconfiguran por lo tanto no pueden arrancar correctamente. En
tales situaciones, la lnea de comandos del kernel se puede utilizar para arrancar la mquina a un
nivel reducido, permitindole al administrador del sistema localizar y solucionar los problemas.
Los siguientes dos escenarios se pueden utilizar para recuperar mquinas desconfiguradas en la
mayora de los casos.
Arranque en el nivel de ejecucin 1
Cuando la desconfiguracin se presenta en las ltimas etapas del proceso de arranque, tales como
con la configuracin de red o la autenticacin de usuario, el sistema se puede iniciar en un estado
muy til al evitar el nivel de ejecucin predeterminado y arrancando directamente en un modo de
monousuario. Esto se lleva a cabo al agregar un 1 a la lnea de comandos del kernel. El kernel, al
no reconocer el argumento 1, pasa el argumento al proceso init. Qu sucede cuando el init es
llamado con un argumento de 1? Este arranca en el nivel de ejecucin 1.
El proceso init iniciar, el script rc.sysinit se ejecutar y despus de entrar al nivel de ejecucin 1,
el usuario pasar a la shell de root. Debido a que el script rc.sysinit se ejecut, el sistema de
archivos debera reconstruirse totalmente. Desde aqu se puede estudiar el sistema, y esperemos
que el problema se pueda solucionar. Cuando se haya identificado el problema y solucionado, el
proceso de arranque puede continuar con slo desplazarse a un nivel de ejecucin ms alto por
ejemplo con init 5.
Este truco es muy til para recuperar las mquinas para las que se ha olvidado la contrasea de
root.
Evitar el /sbin/init
A veces, sin embargo, se pueden presentar problemas tempranos en el proceso de arranque. Por
ejemplo, qu sucedera si el archivo / et c/ f st ab, o el archivo/ et c/ i ni t t ab o el
script / et c/ r c. d/ r c. sysi ni t se destruyen? En dichos casos, arrancar en el nivel de ejecucin 1
no es la solucin. Los problemas se presentan incluso antes de que init considere los niveles de
ejecucin.
En dichas situaciones, se le puede pedir al kernel que evite /sbin/init y ejecute una shell
interactiva como su proceso inicial. Esto se realiza al agregar el argumento init=/bin/sh a la
lnea de comandos del kernel. El parmetro de arranque init= le pide al kernel que ejecute un
comando diferente a / sbi n/ i ni t como el proceso de inicio y el kernel se comporta como
corresponde.
Qu sucede despus del arranque? En este momento en el proceso de inicio del kernel se iniciara
init, pero no lo hace, en su lugar, se enva al usuario a una shell interactiva.
Recuerde el estado del sistema de archivos: nicamente se monta la particin raz de slo lectura.
Una reaccin natural sera tratar de remontar la particin raz como de lectura y escritura.
Sin montar / pr oc, ni siquiera el comando mount funcionar correctamente! Primero, se debera
montar el sistema de archivos / pr oc, luego se puede montar la particin raz de lectura y escritura.
Si todo sale bien, el siguiente comando puede ser un mount -a.
En este punto, el usuario debera estar en un entorno bastante adecuado para localizar y solucionar
problemas. Una vez se hayan identificado los problemas y solucionado, cmo se puede salir el
usuario de este entorno mnimo? Una opcin es el comando exit.
En este momento, el teclado de LED del usuario estar alumbrndose (una de las caractersticias
del kernel de Linux que est bloqueado) y de otra manera el usuario est muerto. Qu sucedi? El
proceso interactivo / bi n/ sh era el Id del proceso nmero 1 y al kernel no le gusta que muera el
proceso nmero 1.
Una solucin ms apropiada es la siguiente. Primero, pare los procesos (diferentes a su shell).
Luego deconstruya su sistema de archivos revocando el proceso anterior.
En este punto, el sistema se encuentra en el momento en que el kernel habra quedado : slo un
proceso se est ejecutando y el sistema de archivos est montado de slo lectura. Haga que su shell
se convierta en el proceso /init "ejecutando" / sbi n/ i ni t .
init-2.05b#
init-2.05b# mount -o remount,rw /
mount : coul d not open / pr oc/ par t i t i ons, so UUI D and LABEL conver si on cannot be
done.

mount : no such par t i t i on f ound
init-2.05b#
init-2.05b# mount /proc
init-2.05b# mount -o remount,rw /
EXT3 FS 2. 4- 0. 9. 19, 19 August 2002 on i de0( 3, 6) , i nt er nal j our nal
init-2.05b# mount -a
kj our nal d st ar t i ng. Commi t i nt er val 5 seconds
EXT3 FS 2. 4- 0. 9. 19, 19 August 2002 on i de0( 3, 7) , i nt er nal j our nal
EXT3- f s: mount ed f i l esyst emwi t h or der ed dat a mode.
init-2.05b#
init-2.05b# exit
exi t
Ker nel Pani c: At t empt ed t o ki l l i ni t !
init-2.05b# umount -a
init-2.05b# mount -o remount,ro /
init-2.05b# umount /proc
init-2.05b#
Su sistema debera iniciar en limpio como si nada hubiera pasado.
La bsqueda del kernel de un proceso inicial
Si por alguna razn el kernel no encuentra o ejecuta / sbi n/ i ni t , el kernel busca / bi n/ sh y otros
ejecutables predefinidos. Por ltimo, si el kernel agota su lista de candidatos sin encontrar un
proceso inicial ejecutable, muere con el siguiente mensaje.
init-2.05b# exec /sbin/init
I NI T: ver si on 2. 84 boot i ng
Set t i ng def aul t f ont ( l at ar cyr heb- sun16) : [ OK ]

Wel come t o Red Hat Li nux
Pr ess ' I ' t o ent er i nt er act i ve st ar t up.

. . .
Ker nel pani c. No i ni t f ound. Tr y passi ng i ni t = opt i on t o ker nel .
System Initialization and Services
Ejercicios en lnea
Specification
1. Por precaucin, copie su archivo / et c/ f st ab en el archivo / et c/ f st ab. pr el ab4. 5.
Edite su archivo original y quite el comentario de la lnea definiendo el punto de montaje
para la particin raz.
2. Reinicie su mquina. En el intrprete de comandos de arranque GRUB, agregue el
parmetro init=/bin/sh a la lnea de comandos del kernel.
3. Su sistema contina el arranque, pero rpidamente lo enva a la shell de mantenimiento. En
la shell de mantenimiento, realice los siguientes pasos.
a. Monte el sistema de archivos / pr oc.
b. Vuelva a montar la particin raz de lectura y escritura.
c. Edite el archivo / et c/ f st ab y no comente la lnea que retir al comienzo del
laboratorio.
d. Vuelva a montar la particin raz de slo lectura.
e. Desmonte el sistema de archivos / pr oc.
f. Remplace su shell con el proceso init, pidindole ainit que traiga su mquina al
nivel de ejecucin 1 con la siguiente lnea de comandos.
4. Su proceso de arranque debera continuar con init configurando la mquina al nivel de
ejecucin 1. Cuando haya terminado init abrir otra shell, esta vez con el sistema de
archivos totalmente ensamblado. Desde esta shell, entre al nivel de ejecucin 5 con la lnea
de comandos init 5.
5. En este punto, su mquina debe haber arrancado completamente. Inicie sesin y califique
su ejercicio.
Resultados
A title
Question 1
[Warning]
Lab Exercise
Objetivo: Ser competente al sobreescribir la secuencia de arranque
predeterminada.
Estimated Time: 30 mins.
init-2.05b# exec /sbin/init 1

1. Un / pr oc/ cmdl i ne que incluya el argumento i ni t =/ bi n/ sh.
2. El comando runlevel debera entregar su nivel de ejecucin actual como nivel de
ejecucin 5 y su nivel de ejecucin anterior como nivel de ejecucin 1.
grade

You might also like