03.09.2015 Views

Tema 3 Arranque y parada del sistema

Tema 3. Arranque y parada del sistema Administración de Sistemas ...

Tema 3. Arranque y parada del sistema Administración de Sistemas ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 1/29<br />

<strong>Tema</strong> 3.<br />

<strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong><br />

Administración de Sistemas Operativos<br />

Administración de Sistemas Operativos y Periféricos<br />

M a Pilar González Férez


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 2/29<br />

Índice<br />

1. Proceso de arranque <strong>del</strong> <strong>sistema</strong><br />

a) <strong>Arranque</strong> de un PC<br />

b) Gestor de arranque GRUB<br />

c) Modo monousuario<br />

d) Modo multiusuario<br />

e) Niveles de ejecución o arranque en Linux<br />

f ) <strong>Arranque</strong> mediante Upstart<br />

g) Ficheros de inicialización<br />

h) Resumen <strong>del</strong> proceso de arranque<br />

2. Parada <strong>del</strong> <strong>sistema</strong><br />

3. Caídas <strong>del</strong> <strong>sistema</strong> y problemas de arranque


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 3/29<br />

<strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong><br />

Todo <strong>sistema</strong> necesita los procesos de arranque y de<br />

<strong>parada</strong><br />

En el proceso de arranque se prepara al <strong>sistema</strong> para<br />

ser usado por los usuarios<br />

En el proceso de <strong>parada</strong> se deja el <strong>sistema</strong><br />

consistente (por ejemplo, los bloques de disco modificados en<br />

memoria se guardan en el <strong>sistema</strong> de ficheros)<br />

El administrador debe saber qué hacen estos dos<br />

procesos y cómo lo hacen, ya que le facilitará<br />

reconocer posibles situaciones de error y solucionarlas<br />

En la actualidad son procesos muy sencillos⇒una serie<br />

de ficheros de configuración y de guiones shell determinan<br />

y controlan estos procesos


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 4/29<br />

1. Proceso de arranque <strong>del</strong> <strong>sistema</strong><br />

<strong>Arranque</strong> de un PC<br />

El arranque de un ordenador actual tiene 2 fases:<br />

arranque hardware<br />

arranque <strong>del</strong> S.O.


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 5/29<br />

1.1 <strong>Arranque</strong> de un PC (ii)<br />

Iniciador ROM⇒Programa de arranque disponible en<br />

la ROM<br />

Al arrancar el ordenador⇒Señal eléctrica⇒Carga<br />

valores predefinidos en los registros<br />

En el contador <strong>del</strong> programa se carga la dirección de<br />

inicio <strong>del</strong> iniciador ROM<br />

El iniciador ROM realiza tres funciones:<br />

1. Comprueba el <strong>sistema</strong>, detectando sus características y<br />

comprobando su funcionamiento<br />

2. Lee y almacena en memoria el programa cargador <strong>del</strong> S.O.<br />

3. Pasa el control al cargador <strong>del</strong> S.O., saltando a la dirección de<br />

memoria donde lo ha almacenado


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 6/29<br />

1.1 <strong>Arranque</strong> de un PC (iii)<br />

El programa cargador (master boot program o boot program) está en<br />

los primeros sectores <strong>del</strong> disco y con un tamaño<br />

prefijado<br />

Estos sectores se conocen como Master Boot Record<br />

(o Volume Boot Record)<br />

Es el encargado de cargar el núcleo (o kernel) <strong>del</strong> S.O.<br />

y pasarle el control<br />

El iniciador de la ROM y el S.O. tienen un acuerdo sobre<br />

el programa cargador, (ubicación, dirección de arranque y tamaño), de<br />

esta manera el iniciador puede soportar varios S.O.’s


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 7/29<br />

1.1 <strong>Arranque</strong> de un PC (iv)<br />

El núcleo <strong>del</strong> S.O. continúa el proceso de arranque:<br />

Realiza una comprobación <strong>del</strong> hardware <strong>del</strong> <strong>sistema</strong><br />

Se prepara a sí mismo para ejecutar el <strong>sistema</strong> inicializando sus<br />

tablas internas, creando las estructuras de datos necesarias, etc.<br />

A continuación crea el proceso Init y le pasa el control<br />

Para que el núcleo no tenga un tamaño muy grande, la mayoría de<br />

las opciones se compilan como módulos, que se cargarán cuando se<br />

necesiten<br />

Por ello, en el arranque el núcleo necesitará cargar algunos módulos<br />

para poder iniciar el <strong>sistema</strong>, p.e. el módulo ext3 para acceder al SF<br />

El fichero initrd_version.img cargará los módulos que el núcleo<br />

necesita para poder arrancar:<br />

El núcleo primero carga el initrd y le pasa el control<br />

El initrd carga los módulos necesarios y le devuelve el control al núcleo<br />

Entonces el núcleo continuará el proceso de arranque


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 8/29<br />

1.1 <strong>Arranque</strong> de un PC (v)<br />

El proceso Init termina el proceso de arranque,<br />

dejando el <strong>sistema</strong> en modo multiusuario preparado<br />

para que los usuarios trabajen en él<br />

Usa una serie de ficheros scripts que le indican las acciones a<br />

realizar<br />

Las tareas que realiza el proceso Init son:<br />

Chequea los <strong>sistema</strong>s de ficheros<br />

Monta los <strong>sistema</strong>s de ficheros permanentes<br />

Activa las áreas de swapping o intercambio<br />

Activa los demonios y la red (NFS, NIS, etc.)<br />

Limpia los <strong>sistema</strong>s de ficheros (borra los directorios<br />

temporales)<br />

Habilita el login a los usuarios <strong>del</strong> <strong>sistema</strong><br />

¿Qué se realiza primero la ejecución de proceso Init o el montaje <strong>del</strong><br />

<strong>sistema</strong> de ficheros raíz?


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 9/29<br />

1.2 Gestor de arranque GRUB<br />

GRUB: GRand Unified Bootloader<br />

GRUB se instala en el master boot record (M.B.R.) y hace de las<br />

funciones de master boot program (M.B.P.)<br />

Pregunta qué S.O. arrancar: Linux o Windows<br />

Si la respuesta es Linux⇒carga el núcleo solicitado y le pasa el<br />

control para que el arranque continúe<br />

Si la respuesta es Windows⇒pasa el control a Windows que<br />

realiza su arranque<br />

Fichero de configuración: /boot/grub/grub.conf (en algunos <strong>sistema</strong>s es<br />

/boot/grub/menu.lst)<br />

Ejecutable (para instalación): /sbin/grub-install<br />

Soporta el modo Direccionamiento Lógico de Bloques (LBA)<br />

Lee los <strong>sistema</strong>s de ficheros Ext2, Ext3 o reiserfs<br />

(GRUB se puede instalar el sector de arranque de la partición de Linux, en este caso sólo se lanzará si<br />

es esa partición activa)


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 10/29<br />

1.2 Gestor de arranque de GRUB (ii)<br />

Lee el fichero de configuración en cada arranque (las<br />

modificaciones se toman de manera automática)<br />

Dispone de tres interfaces con distinto grado de<br />

funcionalidad:<br />

De menú⇒seleccionar S.O.<br />

Del editor de menú de entrada⇒modificar líneas de órdenes antes de<br />

arrancar el <strong>sistema</strong> operativo, p.e. para pasar parámetros al núcleo o<br />

corregir errores <strong>del</strong> fichero. (Pulsar la tecla e)<br />

Para pasar parámetros al núcleo pulsar la tecla a<br />

De línea de órdenes⇒ejecutar órdenes interactivamente. (Pulsar la tecla c)<br />

Terminología de GRUB, numerando los dispositivos según los<br />

reconozca la BIOS:<br />

Nombres de dispositivos (hd0,0) ⇒ /dev/sda1<br />

(,)<br />

Nombres de ficheros (hd0,0)/boot/grub/grub.conf<br />

(,)/path


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 11/29<br />

1.2 Gestor de arranque de GRUB (iii)<br />

Ejemplo de fichero de configuración con Linux y Windows: (se lee en<br />

cada arranque <strong>del</strong> <strong>sistema</strong>)<br />

default=0<br />

#Opción por defecto<br />

timeout=10<br />

#Tiempo de espera<br />

password --md5 $1$4hKKr1$LvSjN89PmeeHXBljr13yq0<br />

splashimage=(hd0,0)/boot/grub/splash.xpm.gz<br />

title Fedora Core Linux (2.6.37) #Etiqueta<br />

root (hd0,0) #Parti. a montar por GRUB, donde está el núcleo<br />

kernel /boot/vmlinuz-2.6.37 ro root=LABEL=/ #Núcleo y parámetros<br />

initrd /boot/initrd-2.6.37.img<br />

#Fichero initrd<br />

title Windows 2008<br />

#Etiqueta<br />

rootnoverify (hd0,2)<br />

#Partición a usar<br />

chainloader +1<br />

#Pasarle el control<br />

# Observa esta diferencia-----------------------------------------------<br />

# root=LABEL=/ Indica al núcleo cuál es el SF raíz <strong>del</strong> SO<br />

# root (hd0,0) Dónde encuentra GRUB los ficheros <strong>del</strong> núcleo


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 12/29<br />

1.3 Modo monousuario<br />

Estado <strong>del</strong> <strong>sistema</strong> definido para realizar tareas administrativas y de<br />

mantenimiento, que requieren un control completo y no compartido<br />

<strong>del</strong> <strong>sistema</strong><br />

Sólo realiza el montaje <strong>del</strong> <strong>sistema</strong> de ficheros raíz (/), los otros SF<br />

están disponibles pero no están montados<br />

Se puede acceder a todo el <strong>sistema</strong>, pero muchos servicios no están<br />

activos o configurados:<br />

Muy pocos demonios están en ejecución, sólo los necesarios<br />

Muchas utilidades no están activas (impresión, red)<br />

Sólo las órdenes <strong>del</strong> SF raíz están disponibles, (si /usr está en otra<br />

partición no está montado)<br />

etc.<br />

Para entrar en modo monousuario el proceso Init crea el shell por<br />

defecto (/bin/sh) como usuario root, (en ocasiones ejecuta la orden<br />

/sbin/sulogin, que pedirá la contraseña <strong>del</strong> root para dejar entrar al <strong>sistema</strong>)


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 13/29<br />

1.3 Modo monousuario (ii)<br />

¿Cómo se entra en modo monousuario?<br />

Indicándolo manualmente al Master Boot Program con una<br />

opción o parámetro:<br />

GRUB: añadir, mediante la interfaz de edición, la opción «single» a la entrada<br />

<strong>del</strong> núcleo « kernel /boot/vmlinuz-2.6.37 ro root=LABEL=/ »<br />

Automáticamente, si hay problemas en el proceso de arranque<br />

que el <strong>sistema</strong> no puede solucionar por sí solo, (p.e. problemas en el<br />

SF que fsck no puede solucionar, errores en los ficheros de arranque)<br />

¡Problema! Modo monousuario no tiene ninguna protección (un<br />

usuario podría entrar en el <strong>sistema</strong> en modo monousuario, y por<br />

tanto tener acceso a todo el <strong>sistema</strong>, estando <strong>del</strong>ante <strong>del</strong> ordenador)<br />

Solución:<br />

GRUB: en el fichero /boot/grub/grub.conf añadir la opción:<br />

password −−md5 password_encriptado<br />

La orden grub-md5-crypt encripta el password, que habrá que copiar al<br />

fichero de configuración


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 14/29<br />

1.4 Modo multiusuario<br />

Pasos <strong>del</strong> proceso de arranque:<br />

1. Chequea el <strong>sistema</strong> de ficheros raíz con fsck<br />

Si al apagar el <strong>sistema</strong>, el <strong>sistema</strong> de ficheros se desmontó correctamente, no<br />

se chequea<br />

Sin embargo, algunos S.O.’s con determinados SF’s fuerzan el chequeo<br />

siempre, o cada cierto tiempo (cada 3 meses) o cada cierto n o de montajes<br />

sin chequear (cada 20 veces)<br />

Si fsck encuentra problemas que no puede solucionar “sólo”, lleva al <strong>sistema</strong><br />

a modo monousuario para que el administrador realice el chequeo manual<br />

2. Monta el <strong>sistema</strong> de ficheros raíz en modo lectura-escritura<br />

3. Chequea el resto de <strong>sistema</strong>s de ficheros con fsck (idem al punto 1)<br />

4. Monta el resto de <strong>sistema</strong>s de ficheros<br />

5. Activa las particiones de intercambio o swapping con swapon -a<br />

6. Activa las cuotas de disco: quotacheck -a y quotaon -a


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 15/29<br />

1.4 Modo multiusuario (ii)<br />

Pasos <strong>del</strong> proceso de arranque (continúa . . . )<br />

7. Lanza los procesos servidores o demonios<br />

crond, atd, etc.<br />

cupsd<br />

syslogd<br />

. . .<br />

8. Activa la red<br />

9. Lanza los demonios de red<br />

xinetd, sendmail, named, routed<br />

rpcbind, nfsd, rpc.statd, ypbind, ypserv<br />

10. Limpia los <strong>sistema</strong>s de ficheros: /tmp, etc.<br />

11. Permite que los usuarios entren:<br />

Crea las terminales, lanzando mingetty (o getty) en modo texto, y el terminal<br />

gráfico, si es preciso<br />

Borra, en caso de que exista, el fichero /etc/nologin<br />

Si el fichero /etc/nologin existe los usuarios (excepto el root) no pueden<br />

entrar al <strong>sistema</strong>. Algunos <strong>sistema</strong>s lo crean al iniciar el arranque


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 16/29<br />

1.5 Niveles de ejecución en Linux<br />

Algunos <strong>sistema</strong>s operativos consideran que el <strong>sistema</strong><br />

puede estar en distintos niveles de ejecución (o<br />

arranque), y no sólo en multiusuario y monousuario<br />

(originalmente apareció en los UNIX de System V)<br />

En Linux estos niveles de ejecución son:<br />

0: El <strong>sistema</strong> está apagado<br />

1, s ó S: Modo monousuario<br />

2: Multiusuario sin funciones de red, el mismo que el 3 pero sin<br />

las utilidades de red. (En ocasiones está sin usar y puede ser redefinido)<br />

3: Multiusuario completo, con terminales en modo texto<br />

4: Sin usar, puede ser redefinido por el administrador<br />

5: Multiusuario con pantalla de inicio de sesión basada en X<br />

6: El <strong>sistema</strong> se está reiniciando


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 17/29<br />

1.5 Niveles de ejecución en Linux (ii)<br />

/sbin/telinit⇒ cambiar de nivel de ejecución<br />

telinit 1 ⇒ a modo monousuario<br />

telinit 6 ⇒ reiniciar el <strong>sistema</strong><br />

telinit 3 ⇒ cambiar al nivel 3<br />

/sbin/runlevel⇒ saber en qué nivel está el <strong>sistema</strong><br />

Hay un nivel por defecto en el que arranca el <strong>sistema</strong>, que se<br />

establece en el fichero /etc/inittab con la línea:<br />

id:5:initdefault:<br />

Al arrancar, mediante el GRUB, al núcleo se le puede pasar como<br />

parámetro un número indicando el nivel en el que queremos<br />

arrancar. En este caso se obviará el nivel por defecto


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 18/29<br />

1.6 <strong>Arranque</strong> mediante Upstart<br />

Proceso de arranque/<strong>parada</strong> <strong>del</strong> <strong>sistema</strong> basado en eventos, que<br />

son ejecutados por el proceso Init<br />

De forma asíncrona realiza las siguientes tareas:<br />

Dirige el inicio de las tareas y demonios.<br />

Controla, si es necesario, los demonios mientras el <strong>sistema</strong> está encendido.<br />

Detiene los demonios durante el proceso de apagado.<br />

En el directorio /etc/event.d/ hay una serie de eventos (ficheros)<br />

que Init ejecuta según el orden y las dependencias establecidas en<br />

los mismos<br />

Estos eventos indican qué tarea ejecutar, cuándo y cómo, mediante<br />

su propio lenguaje<br />

La orden initctl permite indicar al proceso Init que realice<br />

determinadas acciones:<br />

start evento stop evento status evento


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 19/29<br />

1.6 <strong>Arranque</strong> mediante Upstart (ii)<br />

Los ficheros de eventos están en modo texto siguiendo la siguiente<br />

nomenclatura:<br />

exec ⇒ ejecutar la orden con esos argumentos:<br />

exec /etc/rc.d/rc 0<br />

exec /sbin/mingetty tty2<br />

script . . . end script ⇒ ejecutar el guión shell indicado:<br />

script<br />

set $(runlevel || true)<br />

if [ "$2" != "0" ] && [ "$2" != "6" ]; then<br />

set $(runlevel --set 0 || true)<br />

fi<br />

if [ "$1" != "unknown" ]; then<br />

PREVLEVEL=$1<br />

RUNLEVEL=$2<br />

export PREVLEVEL RUNLEVEL<br />

fi<br />

exec /etc/rc.d/rc 0 # Combina exec con script<br />

end script


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 20/29<br />

1.6 <strong>Arranque</strong> mediante Upstart (iii)<br />

Nomenclatura de los ficheros de eventos:<br />

start on ⇒ describe bajo qué condiciones se lanzará ese evento<br />

start on startup<br />

start on runlevel 5<br />

start on stopped rc2<br />

start on started prefdm<br />

stop on ⇒ describe bajo qué condiciones se parará ese evento<br />

stop on runlevel [35]<br />

stop on started prefdm<br />

respawn ⇒ volver a lanzar ese proceso o demonio cuando muera<br />

console ⇒ hacia dónde redirigir la salida <strong>del</strong> evento<br />

pre-start ⇒ ejecutar la orden/guión shell antes de lanzar ese proceso<br />

pre-start exec rm -f /var/run/crond<br />

pre-start script<br />

if [ "$RUNLEVEL" == "S"]<br />

then<br />

RUNLEVEL=1<br />

fi<br />

end-script


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 21/29<br />

1.6 <strong>Arranque</strong> mediante Upstart (iv)<br />

Nomenclatura de los ficheros de eventos:<br />

post-start ⇒ ejecutar la orden/guión shell después de lanzar ese proceso<br />

post-start exec touch/var/run/crond<br />

post-start script<br />

if [ "$RUNLEVEL" == "1"]<br />

then<br />

RUNLEVEL=S<br />

fi<br />

end-script<br />

pre-stop ⇒ ejecutar la orden/guión shell antes de parar ese proceso<br />

pre-stop exec ...<br />

pre-stop script / end-script<br />

post-stop ⇒ ejecutar la orden/guión shell después de parar ese proceso<br />

post-stop exec ...<br />

post-stop script / end-script<br />

. . .


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 22/29<br />

1.6 <strong>Arranque</strong> mediante Upstart (v)<br />

Ejemplos<br />

start on startup<br />

stop on runlevel<br />

console output<br />

script<br />

/etc/rc.d/rc.sysinit<br />

end script<br />

post-stop script<br />

runlevel=$(/bin/grep initdefault /etc/inittab | cut -f 2 -d ":")<br />

[ -z "$runlevel" ] && runlevel="3"<br />

exec telinit $runlevel<br />

end script<br />

-------------------------------------------------<br />

start on runlevel 5<br />

stop on runlevel [!5]<br />

console output<br />

script<br />

exec /etc/rc.d/rc 5<br />

end script


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 23/29<br />

1.7 Ficheros de inicialización<br />

Varios ficheros script generales, llamados rc* que están en /etc/rc.d<br />

o /etc, son ejecutados al arrancar por el Init mediante un evento<br />

Varios ficheros scripts específicos de cada nivel de arranque, que<br />

están en el directorio /etc/rcn.d o /etc/rc.d/rcn.d, siendo n el nivel de<br />

arranque, son ejecutados al arrancar o cambiar de nivel<br />

Son ficheros scripts que su nombre empieza por K o S, seguido de un número de<br />

2 dígitos y un nombre descriptivo:<br />

K35smb K15httpd S40atd S50xinetd S60cups S99local<br />

El script /etc/rc (o /etc/rc.d/rc) es el encargado de ejecutar estos ficheros scripts,<br />

según el nivel de arranque<br />

Los ejecuta en orden alfabético, primero los K después los S, los dos dígitos<br />

establecen el orden entre todos los K y todos los S<br />

Los ficheros K sirven para detener demonios o matar procesos<br />

Los ficheros S sirven para lanzar demonios o ejecutar funciones de inicialización<br />

De esta manera, para cada nivel de inicialización, se especifica qué demonios<br />

tienen que estar activos y qué demonios no tienen que estar activos


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 24/29<br />

1.7 Ficheros de inicialización (ii)<br />

En los directorios /etc/rcn.d (o /etc/rc.d/rcn.d )<br />

Estos ficheros son enlaces simbólicos al fichero con el mismo<br />

nombre descriptivo que está en el directorio /etc/init.d (o<br />

/etc/rc.d/init.d)<br />

Los ficheros scripts reciben varios parámetros: start, stop,<br />

restart, etc. (esto permite lanzar o relanzar demonios sin reiniciar el <strong>sistema</strong>)<br />

rc ejecuta los K con el parámetro stop y los S con start<br />

/sbin/chkconfig⇒ configurar los demonios a lanzar (S) o finalizar<br />

(K) para cada nivel. También permite consultas<br />

−−add nombre ⇒ Añadir para los niveles que especifique el demonio<br />

−−<strong>del</strong> nombre ⇒ Eliminarlo (ni siquiera lo deja como K)<br />

[−−level levels] nombre <br />

−−list [nombre]<br />

En entorno gráfico: /usr/sbin/ntsysv, system-config-services<br />

Lanzar demonios a “mano” (sin reiniciar)⇒P.e. el demonio de<br />

impresión: /etc/rc.d/init.d/cups restart


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 25/29<br />

1.8 Resumen <strong>del</strong> proceso de arranque<br />

1. Iniciador ROM<br />

Chequeo inicial <strong>del</strong> <strong>sistema</strong><br />

Lee y almacena en memoria el programa cargador <strong>del</strong> S.O.<br />

Pasa el control al cargador <strong>del</strong> S.O., saltando a la dirección de memoria donde lo<br />

ha almacenado<br />

2. Cargador <strong>del</strong> <strong>sistema</strong> operativo (GRUB)⇒carga el núcleo <strong>del</strong><br />

<strong>sistema</strong> operativo y le pasa el control, sabe dónde está el núcleo o<br />

cómo localizarlo<br />

3. Núcleo <strong>del</strong> <strong>sistema</strong> operativo<br />

Chequeo hardware<br />

Creación e inicialización de las estructuras de datos, tablas, etc., que necesita<br />

Crea el proceso Init y le pasa el control<br />

4. Proceso Init⇒termina el proceso de arranque, dejando el <strong>sistema</strong><br />

preparado para ser usado (chequeo de SF’s, montaje de SF’s,<br />

activación de swap, de cuotas, demonios, etc.)


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 26/29<br />

2. Parada <strong>del</strong> <strong>sistema</strong><br />

En ocasiones es necesario apagar o reiniciar el <strong>sistema</strong>:<br />

mantenimiento, diagnóstico, hardware nuevo, etc.<br />

Las acciones que se realizan en el proceso de <strong>parada</strong> son:<br />

1. Se notifica a los usuarios<br />

2. Procesos en ejecución⇒enviar la señal de terminación (TERM)<br />

3. Se paran los demonios<br />

4. A los usuarios que quedan conectados se les echa <strong>del</strong> <strong>sistema</strong><br />

5. Procesos que queden en ejecución⇒enviar la señal de fin (KILL)<br />

6. Actualizaciones de disco pendientes (integridad <strong>del</strong> SF) con sync<br />

7. Dependiendo <strong>del</strong> tipo de shutdown:<br />

a) Se cambia a modo monousuario, opción por defecto<br />

b) Se apaga el ordenador<br />

c) Se reinicia el <strong>sistema</strong><br />

Orden: shutdown (también telinit nivel)


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 27/29<br />

2. Parada <strong>del</strong> <strong>sistema</strong> (ii)<br />

shutdown [opciones] tiempo [mensaje]<br />

Opciones:<br />

Sin opciones ⇒ modo monousuario ⇒ telinit 1<br />

-r ⇒ reiniciar ⇒ telinit 6<br />

-h ⇒ parar ⇒ telinit 0<br />

-c ⇒ cancelar<br />

-k ⇒ simular un shutdown, pero realmente no se lleva a cabo<br />

Tiempo: +minutos, now, h:m<br />

Al salir de modo monousuario vuelve al nivel por defecto, (salvo que<br />

expresamente se reinicie o apague)


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 28/29<br />

3. Caídas <strong>del</strong> <strong>sistema</strong> y problemas de arranque<br />

Causas de caídas <strong>del</strong> <strong>sistema</strong>:<br />

Fallos hardware<br />

Errores de hardware irrecuperables<br />

Fallos de luz (cortes o altibajos)<br />

Otros problemas ambientales<br />

Problemas de entrada/salida<br />

Problemas de algún <strong>sistema</strong> de ficheros<br />

Problemas de arranque<br />

Hardware mal<br />

No se puede leer el <strong>sistema</strong> de ficheros de los discos de trabajo<br />

Hay en el disco áreas dañadas que no pertenecen al <strong>sistema</strong> de<br />

ficheros (p.e. tabla de particiones)<br />

Hardware incompatible<br />

Errores en la configuración <strong>del</strong> <strong>sistema</strong>


<strong>Tema</strong> 3. <strong>Arranque</strong> y <strong>parada</strong> <strong>del</strong> <strong>sistema</strong>– p. 29/29<br />

3. Caídas <strong>del</strong> <strong>sistema</strong> y problemas de arranque (ii)<br />

Al rearrancar mirar los mensajes que hay en el fichero<br />

/var/log/messages<br />

La orden dmesg⇒ mensajes producidos durante el<br />

arranque<br />

En el arranque al núcleo se le pueden pasar otros<br />

parámetros:<br />

root=particion⇒indicar que monte como partición raíz una<br />

distinta<br />

init=ejecutable⇒que en vez <strong>del</strong> proceso Init lance otro proceso:<br />

init=/bin/bash ⇒ en este caso el proceso de inicio <strong>del</strong> Init no se realiza, el SF<br />

está montado en modo sólo lectura, hay que remontarlo « mount -o remount<br />

-w -n / »<br />

single⇒arrancar en modo monousuario<br />

Un número indicando el nivel de arranque

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!