Sunteți pe pagina 1din 29

Tema 3.

Arranque y parada del sistema


Administracin de Sistemas Operativos Administracin de Sistemas Operativos y Perifricos

Ma Pilar Gonzalez Ferez

Tema 3. Arranque y parada del sistema p. 1/29

ndice
1. Proceso de arranque del sistema
a) Arranque de un PC b) Gestor de arranque GRUB c ) Modo monousuario d ) Modo multiusuario e) Niveles de ejecucin o arranque en Linux f ) Arranque mediante Upstart g ) Ficheros de inicializacin h) Resumen del proceso de arranque

2. Parada del sistema 3. Cadas del sistema y problemas de arranque

Tema 3. Arranque y parada del sistema p. 2/29

Arranque y parada del sistema


Todo sistema necesita los procesos de arranque y de parada En el proceso de arranque se prepara al sistema para ser usado por los usuarios En el proceso de parada se deja el sistema consistente (por ejemplo, los bloques de disco modicados en
memoria se guardan en el sistema de cheros)

El administrador debe saber qu hacen estos dos procesos y cmo lo hacen, ya que le facilitar reconocer posibles situaciones de error y solucionarlas En la actualidad son procesos muy sencillos una serie de cheros de conguracin y de guiones shell determinan y controlan estos procesos
Tema 3. Arranque y parada del sistema p. 3/29

1. Proceso de arranque del sistema


Arranque de un PC El arranque de un ordenador actual tiene 2 fases: arranque hardware arranque del S.O.

Tema 3. Arranque y parada del sistema p. 4/29

1.1 Arranque de un PC (ii)


Iniciador ROM Programa de arranque disponible en la ROM Al arrancar el ordenador Seal elctrica Carga valores predenidos en los registros En el contador del programa se carga la direccin de inicio del iniciador ROM El iniciador ROM realiza tres funciones:
1. Comprueba el sistema, detectando sus caractersticas y comprobando su funcionamiento 2. Lee y almacena en memoria el programa cargador del S.O. 3. Pasa el control al cargador del S.O., saltando a la direccin de memoria donde lo ha almacenado

Tema 3. Arranque y parada del sistema p. 5/29

1.1 Arranque de un PC (iii)


El programa cargador (master boot program o boot program) est en los primeros sectores del disco y con un tamao prejado Estos sectores se conocen como Master Boot Record
(o Volume Boot Record )

Es el encargado de cargar el ncleo (o kernel ) del S.O. y pasarle el control El iniciador de la ROM y el S.O. tienen un acuerdo sobre el programa cargador, (ubicacin, direccin de arranque y tamao), de esta manera el iniciador puede soportar varios S.O.s

Tema 3. Arranque y parada del sistema p. 6/29

1.1 Arranque de un PC (iv)


El ncleo del S.O. contina el proceso de arranque:
Realiza una comprobacin del hardware del sistema Se prepara a s mismo para ejecutar el sistema inicializando sus tablas internas, creando las estructuras de datos necesarias, etc. A continuacin crea el proceso Init y le pasa el control Para que el ncleo no tenga un tamao muy grande, la mayora de las opciones se compilan como mdulos, que se cargarn cuando se necesiten Por ello, en el arranque el ncleo necesitar cargar algunos mdulos para poder iniciar el sistema, p.e. el mdulo ext3 para acceder al SF El chero initrd_version.img cargar los mdulos que el ncleo necesita para poder arrancar:
El ncleo primero carga el initrd y le pasa el control El initrd carga los mdulos necesarios y le devuelve el control al ncleo Entonces el ncleo continuar el proceso de arranque

Tema 3. Arranque y parada del sistema p. 7/29

1.1 Arranque de un PC (v)


El proceso Init termina el proceso de arranque, dejando el sistema en modo multiusuario preparado para que los usuarios trabajen en l
Usa una serie de cheros scripts que le indican las acciones a realizar Las tareas que realiza el proceso Init son: Chequea los sistemas de cheros Monta los sistemas de cheros permanentes Activa las reas de swapping o intercambio Activa los demonios y la red (NFS, NIS, etc.) Limpia los sistemas de cheros (borra los directorios temporales) Habilita el login a los usuarios del sistema Qu se realiza primero la ejecucin de proceso Init o el montaje del sistema de cheros raz?
Tema 3. Arranque y parada del sistema p. 8/29

1.2 Gestor de arranque GRUB


GRUB: GRand Unied Bootloader GRUB se instala en el master boot record (M.B.R.) y hace de las funciones de master boot program (M.B.P.) Pregunta qu S.O. arrancar: Linux o Windows Si la respuesta es Linux carga el ncleo solicitado y le pasa el control para que el arranque contine Si la respuesta es Windows pasa el control a Windows que realiza su arranque Fichero de conguracin: /boot/grub/grub.conf
/boot/grub/menu.lst ) (en algunos sistemas es

Ejecutable (para instalacin): /sbin/grub-install Soporta el modo Direccionamiento Lgico de Bloques (LBA) Lee los sistemas de cheros Ext2, Ext3 o reiserfs
(GRUB se puede instalar el sector de arranque de la particin de Linux, en este caso slo se lanzar si es esa particin activa)

Tema 3. Arranque y parada del sistema p. 9/29

1.2 Gestor de arranque de GRUB (ii)


Lee el chero de conguracin en cada arranque (las
modicaciones se toman de manera automtica)

Dispone de tres interfaces con distinto grado de funcionalidad:


De men seleccionar S.O. Del editor de men de entrada modicar lneas de rdenes antes de arrancar el sistema operativo, p.e. para pasar parmetros al ncleo o corregir errores del chero. (Pulsar la tecla e)
Para pasar parmetros al ncleo pulsar la tecla a

De lnea de rdenes ejecutar rdenes interactivamente. (Pulsar la tecla c)

Terminologa de GRUB, numerando los dispositivos segn los reconozca la BIOS:


Nombres de dispositivos (hd0,0) /dev/sda1 (<tipo_de_dispositivo><nmero_dispositivo_bios>,<numero_particion>) Nombres de cheros (hd0,0)/boot/grub/grub.conf (<tipo_de_dispositivo><nmero_dispositivo_bios>,<numero_particion>)/path

Tema 3. Arranque y parada del sistema p. 10/29

1.2 Gestor de arranque de GRUB (iii)


Ejemplo de chero de conguracin con Linux y Windows: (se lee en cada arranque del sistema)
default=0 #Opci on por defecto timeout=10 #Tiempo de espera password --md5 $1$4hKKr1$LvSjN89PmeeHXBljr13yq0 splashimage=(hd0,0)/boot/grub/splash.xpm.gz title Fedora Core Linux (2.6.37) #Etiqueta root (hd0,0) #Parti. a montar por GRUB, donde est a el n ucleo kernel /boot/vmlinuz-2.6.37 ro root=LABEL=/ #N ucleo y par ametros initrd /boot/initrd-2.6.37.img #Fichero initrd title Windows 2008 #Etiqueta rootnoverify (hd0,2) #Partici on a usar chainloader +1 #Pasarle el control

# Observa esta diferencia----------------------------------------------# root=LABEL=/ Indica al n ucleo cu al es el SF ra z del SO # root (hd0,0) D onde encuentra GRUB los ficheros del n ucleo

Tema 3. Arranque y parada del sistema p. 11/29

1.3 Modo monousuario


Estado del sistema denido para realizar tareas administrativas y de mantenimiento, que requieren un control completo y no compartido del sistema Slo realiza el montaje del sistema de cheros raz (/), los otros SF estn disponibles pero no estn montados Se puede acceder a todo el sistema, pero muchos servicios no estn activos o congurados: Muy pocos demonios estn en ejecucin, slo los necesarios Muchas utilidades no estn activas (impresin, red) Slo las rdenes del SF raz estn disponibles, (si /usr est en otra
particin no est montado)

etc. Para entrar en modo monousuario el proceso Init crea el shell por defecto (/bin/sh) como usuario root, (en ocasiones ejecuta la orden
/sbin/sulogin, que pedir la contrasea del root para dejar entrar al sistema)
Tema 3. Arranque y parada del sistema p. 12/29

1.3 Modo monousuario (ii)


Cmo se entra en modo monousuario? Indicndolo manualmente al Master Boot Program con una opcin o parmetro:
GRUB: aadir, mediante la interfaz de edicin, la opcin single a la entrada del ncleo kernel /boot/vmlinuz-2.6.37 ro root=LABEL=/

Automticamente, si hay problemas en el proceso de arranque que el sistema no puede solucionar por s solo, (p.e. problemas en el
SF que fsck no puede solucionar, errores en los cheros de arranque)

Problema! Modo monousuario no tiene ninguna proteccin (un usuario podra entrar en el sistema en modo monousuario, y por tanto tener acceso a todo el sistema, estando delante del ordenador) Solucin: GRUB: en el chero /boot/grub/grub.conf aadir la opcin:
password md5 password_encriptado La orden grub-md5-crypt encripta el password, que habr que copiar al chero de conguracin

Tema 3. Arranque y parada del sistema p. 13/29

1.4 Modo multiusuario


Pasos del proceso de arranque:
1. Chequea el sistema de cheros raz con fsck
Si al apagar el sistema, el sistema de cheros se desmont correctamente, no se chequea Sin embargo, algunos S.O.s con determinados SFs fuerzan el chequeo siempre, o cada cierto tiempo (cada 3 meses) o cada cierto no de montajes sin chequear (cada 20 veces) Si fsck encuentra problemas que no puede solucionar slo, lleva al sistema a modo monousuario para que el administrador realice el chequeo manual

2. Monta el sistema de cheros raz en modo lectura-escritura 3. Chequea el resto de sistemas de cheros con fsck 4. Monta el resto de sistemas de cheros 5. Activa las particiones de intercambio o swapping con swapon -a 6. Activa las cuotas de disco: quotacheck -a y quotaon -a
(idem al punto 1)

Tema 3. Arranque y parada del sistema p. 14/29

1.4 Modo multiusuario (ii)


Pasos del proceso de arranque (contina . . . )
7. Lanza los procesos servidores o demonios
crond, atd, etc. cupsd syslogd ...

8. Activa la red 9. Lanza los demonios de red


xinetd, sendmail, named, routed rpcbind, nfsd, rpc.statd, ypbind, ypserv

10. Limpia los sistemas de cheros: /tmp, etc. 11. Permite que los usuarios entren:
Crea las terminales, lanzando mingetty (o getty ) en modo texto, y el terminal grco, si es preciso Borra, en caso de que exista, el chero /etc/nologin Si el chero /etc/nologin existe los usuarios (excepto el root) no pueden entrar al sistema. Algunos sistemas lo crean al iniciar el arranque
Tema 3. Arranque y parada del sistema p. 15/29

1.5 Niveles de ejecucin en Linux


Algunos sistemas operativos consideran que el sistema puede estar en distintos niveles de ejecucin (o arranque), y no slo en multiusuario y monousuario
(originalmente apareci en los UNIX de System V)

En Linux estos niveles de ejecucin son:


0: El sistema est apagado 1, s S: Modo monousuario 2: Multiusuario sin funciones de red, el mismo que el 3 pero sin las utilidades de red. (En ocasiones est sin usar y puede ser redenido) 3: Multiusuario completo, con terminales en modo texto 4: Sin usar, puede ser redenido por el administrador 5: Multiusuario con pantalla de inicio de sesin basada en X 6: El sistema se est reiniciando

Tema 3. Arranque y parada del sistema p. 16/29

1.5 Niveles de ejecucin en Linux (ii)


/sbin/telinit cambiar de nivel de ejecucin
telinit 1 a modo monousuario telinit 6 reiniciar el sistema telinit 3 cambiar al nivel 3

/sbin/runlevel saber en qu nivel est el sistema Hay un nivel por defecto en el que arranca el sistema, que se establece en el chero /etc/inittab con la lnea:
id:5:initdefault:

Al arrancar, mediante el GRUB, al ncleo se le puede pasar como parmetro un nmero indicando el nivel en el que queremos arrancar. En este caso se obviar el nivel por defecto

Tema 3. Arranque y parada del sistema p. 17/29

1.6 Arranque mediante Upstart


Proceso de arranque/parada del sistema basado en eventos, que son ejecutados por el proceso Init De forma asncrona realiza las siguientes tareas:
Dirige el inicio de las tareas y demonios. Controla, si es necesario, los demonios mientras el sistema est encendido. Detiene los demonios durante el proceso de apagado.

En el directorio /etc/event.d/ hay una serie de eventos (cheros) que Init ejecuta segn el orden y las dependencias establecidas en los mismos Estos eventos indican qu tarea ejecutar, cundo y cmo, mediante su propio lenguaje La orden initctl permite indicar al proceso Init que realice determinadas acciones:
start evento stop evento status evento

Tema 3. Arranque y parada del sistema p. 18/29

1.6 Arranque mediante Upstart (ii)


Los cheros de eventos estn en modo texto siguiendo la siguiente nomenclatura:
exec <orden><argumentos> ejecutar la orden con esos argumentos: exec /etc/rc.d/rc 0 exec /sbin/mingetty tty2 script . . . end script ejecutar el guin shell indicado: script set $(runlevel || true) if [ "$2" != "0" ] && [ "$2" != "6" ]; then set $(runlevel --set 0 || true) fi if [ "$1" != "unknown" ]; then PREVLEVEL=$1 RUNLEVEL=$2 export PREVLEVEL RUNLEVEL fi exec /etc/rc.d/rc 0 # Combina exec con script end script

Tema 3. Arranque y parada del sistema p. 19/29

1.6 Arranque mediante Upstart (iii)


Nomenclatura de los cheros de eventos:
start on <event> describe bajo qu condiciones se lanzar ese evento start on startup start on runlevel 5 start on stopped rc2 start on started prefdm

stop on <event> describe bajo qu condiciones se parar ese evento stop on runlevel [35] stop on started prefdm respawn volver a lanzar ese proceso o demonio cuando muera console hacia dnde redirigir la salida del evento pre-start ejecutar la orden/guin shell antes de lanzar ese proceso pre-start exec rm -f /var/run/crond pre-start script if [ "$RUNLEVEL" == "S"] then RUNLEVEL=1 fi end-script

Tema 3. Arranque y parada del sistema p. 20/29

1.6 Arranque mediante Upstart (iv)


Nomenclatura de los cheros de eventos:
post-start ejecutar la orden/guin shell despus de lanzar ese proceso post-start exec touch/var/run/crond post-start script if [ "$RUNLEVEL" == "1"] then RUNLEVEL=S fi end-script pre-stop ejecutar la orden/guin shell antes de parar ese proceso pre-stop exec ... pre-stop script / end-script

post-stop ejecutar la orden/guin shell despus de parar ese proceso post-stop exec ... post-stop script / end-script

...

Tema 3. Arranque y parada del sistema p. 21/29

1.6 Arranque mediante Upstart (v)


Ejemplos
start on startup stop on runlevel console output script /etc/rc.d/rc.sysinit end script post-stop script runlevel=$(/bin/grep initdefault /etc/inittab | cut -f 2 -d ":") [ -z "$runlevel" ] && runlevel="3" exec telinit $runlevel end script ------------------------------------------------start on runlevel 5 stop on runlevel [!5] console output script exec /etc/rc.d/rc 5 end script

Tema 3. Arranque y parada del sistema p. 22/29

1.7 Ficheros de inicializacin


Varios cheros script generales, llamados rc* que estn en /etc/rc.d o /etc, son ejecutados al arrancar por el Init mediante un evento Varios cheros scripts especcos de cada nivel de arranque, que estn en el directorio /etc/rc n.d o /etc/rc.d/rc n.d, siendo n el nivel de arranque, son ejecutados al arrancar o cambiar de nivel
Son cheros scripts que su nombre empieza por K o S, seguido de un nmero de 2 dgitos y un nombre descriptivo:
K35smb K15httpd S40atd S50xinetd S60cups S99local El script /etc/rc (o /etc/rc.d/rc ) es el encargado de ejecutar estos cheros scripts, segn el nivel de arranque Los ejecuta en orden alfabtico, primero los K despus los S, los dos dgitos establecen el orden entre todos los K y todos los S Los cheros K sirven para detener demonios o matar procesos Los cheros S sirven para lanzar demonios o ejecutar funciones de inicializacin De esta manera, para cada nivel de inicializacin, se especica qu demonios tienen que estar activos y qu demonios no tienen que estar activos

Tema 3. Arranque y parada del sistema p. 23/29

1.7 Ficheros de inicializacin (ii)


En los directorios /etc/rc n.d (o /etc/rc.d/rc n.d ) Estos cheros son enlaces simblicos al chero con el mismo nombre descriptivo que est en el directorio /etc/init.d (o /etc/rc.d/init.d ) Los cheros scripts reciben varios parmetros: start, stop, restart, etc. (esto permite lanzar o relanzar demonios sin reiniciar el sistema) rc ejecuta los K con el parmetro stop y los S con start /sbin/chkcong congurar los demonios a lanzar (S) o nalizar (K) para cada nivel. Tambin permite consultas
add nombre Aadir para los niveles que especique el demonio del nombre Eliminarlo (ni siquiera lo deja como K) [level levels] nombre <on|off|reset> list [nombre]

En entorno grco: /usr/sbin/ntsysv, system-cong-services Lanzar demonios a mano (sin reiniciar) P.e. el demonio de impresin: /etc/rc.d/init.d/cups restart
Tema 3. Arranque y parada del sistema p. 24/29

1.8 Resumen del proceso de arranque


1. Iniciador ROM
Chequeo inicial del sistema Lee y almacena en memoria el programa cargador del S.O. Pasa el control al cargador del S.O., saltando a la direccin de memoria donde lo ha almacenado

2. Cargador del sistema operativo (GRUB) carga el ncleo del sistema operativo y le pasa el control, sabe dnde est el ncleo o cmo localizarlo 3. Ncleo del sistema operativo
Chequeo hardware Creacin e inicializacin de las estructuras de datos, tablas, etc., que necesita Crea el proceso Init y le pasa el control

4. Proceso Init termina el proceso de arranque, dejando el sistema preparado para ser usado (chequeo de SFs, montaje de SFs, activacin de swap, de cuotas, demonios, etc.)

Tema 3. Arranque y parada del sistema p. 25/29

2. Parada del sistema


En ocasiones es necesario apagar o reiniciar el sistema: mantenimiento, diagnstico, hardware nuevo, etc. Las acciones que se realizan en el proceso de parada son: 1. 2. 3. 4. 5. 6. 7. Se notica a los usuarios Procesos en ejecucin enviar la seal de terminacin (TERM) Se paran los demonios A los usuarios que quedan conectados se les echa del sistema Procesos que queden en ejecucin enviar la seal de n (KILL) Actualizaciones de disco pendientes (integridad del SF) con sync Dependiendo del tipo de shutdown:
a) Se cambia a modo monousuario, opcin por defecto b) Se apaga el ordenador c ) Se reinicia el sistema

Orden: shutdown (tambin telinit nivel )

Tema 3. Arranque y parada del sistema p. 26/29

2. Parada del sistema (ii)


shutdown [opciones] tiempo [mensaje] Opciones:
Sin opciones modo monousuario telinit 1 -r reiniciar telinit 6 -h parar telinit 0 -c cancelar -k simular un shutdown, pero realmente no se lleva a cabo

Tiempo: +minutos, now, h:m Al salir de modo monousuario vuelve al nivel por defecto, (salvo que
expresamente se reinicie o apague)

Tema 3. Arranque y parada del sistema p. 27/29

3. Cadas del sistema y problemas de arranque


Causas de cadas del sistema:
Fallos hardware Errores de hardware irrecuperables Fallos de luz (cortes o altibajos) Otros problemas ambientales Problemas de entrada/salida Problemas de algn sistema de cheros

Problemas de arranque
Hardware mal No se puede leer el sistema de cheros de los discos de trabajo Hay en el disco reas daadas que no pertenecen al sistema de cheros (p.e. tabla de particiones) Hardware incompatible Errores en la conguracin del sistema
Tema 3. Arranque y parada del sistema p. 28/29

3. Cadas del sistema y problemas de arranque (ii)


Al rearrancar mirar los mensajes que hay en el chero /var/log/messages La orden dmesg mensajes producidos durante el arranque En el arranque al ncleo se le pueden pasar otros parmetros:
root=particion indicar que monte como particin raz una distinta init=ejecutable que en vez del proceso Init lance otro proceso:
init=/bin/bash en este caso el proceso de inicio del Init no se realiza, el SF est montado en modo slo lectura, hay que remontarlo mount -o remount -w -n /

single arrancar en modo monousuario Un nmero indicando el nivel de arranque

Tema 3. Arranque y parada del sistema p. 29/29

S-ar putea să vă placă și