Tema 3. Arranque y parada del sistema - I N F O R M Á T I C A -...
Transcript of Tema 3. Arranque y parada del sistema - I N F O R M Á T I C A -...
Tema 3.
Arranque y parada del sistema
Administración de Sistemas Operativos
Administración de Sistemas Operativos y Periféricos
Ma Pilar Gonzalez Ferez
Tema 3. Arranque y parada del sistema– p. 1/29
Índice
1. Proceso de arranque del sistemaa) Arranque de un PC
b) Gestor de arranque GRUB
c) Modo monousuario
d) Modo multiusuario
e) Niveles de ejecución o arranque en Linux
f ) Arranque mediante Upstart
g) Ficheros de inicialización
h) Resumen del proceso de arranque
2. Parada del sistema
3. Caídas 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 deparada
En el proceso de arranque se prepara al sistema paraser usado por los usuarios
En el proceso de parada se deja el sistemaconsistente (por ejemplo, los bloques de disco modificados enmemoria se guardan en el sistema de ficheros)
El administrador debe saber qué hacen estos dosprocesos y cómo lo hacen, ya que le facilitaráreconocer posibles situaciones de error y solucionarlas
En la actualidad son procesos muy sencillos⇒ una seriede ficheros de configuración y de guiones shell determi-nan 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 hardwarearranque 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 enla ROM
Al arrancar el ordenador⇒ Señal eléctrica⇒ Cargavalores predefinidos en los registros
En el contador del programa se carga la dirección deinicio del iniciador ROM
El iniciador ROM realiza tres funciones:1. Comprueba el sistema, detectando sus características 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 dirección dememoria 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á enlos primeros sectores del disco y con un tamañoprefijadoEstos sectores se conocen como Master Boot Record(o Volume Boot Record)
Es el encargado de cargar el núcleo (o kernel) del S.O.y pasarle el controlEl iniciador de la ROM y el S.O. tienen un acuerdo sobreel programa cargador, (ubicación, dirección de arranque y tamaño), deesta 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 núcleo del S.O. continúa el proceso de arranque:Realiza una comprobación del hardware del sistemaSe prepara a sí mismo para ejecutar el sistema inicializando sustablas internas, creando las estructuras de datos necesarias, etc.A continuación crea el proceso Init y le pasa el control
Para que el núcleo no tenga un tamaño muy grande, la mayoría delas opciones se compilan como módulos, que se cargarán cuando senecesitenPor ello, en el arranque el núcleo necesitará cargar algunos módulospara poder iniciar el sistema, p.e. el módulo ext3 para acceder al SFEl fichero initrd_version.img cargará los módulos que el núcleonecesita para poder arrancar:
El núcleo primero carga el initrd y le pasa el controlEl initrd carga los módulos necesarios y le devuelve el control al núcleoEntonces el núcleo 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 preparadopara que los usuarios trabajen en él
Usa una serie de ficheros scripts que le indican las acciones arealizarLas tareas que realiza el proceso Init son:
Chequea los sistemas de ficherosMonta los sistemas de ficheros permanentesActiva las áreas de swapping o intercambioActiva los demonios y la red (NFS, NIS, etc.)Limpia los sistemas de ficheros (borra los directoriostemporales)Habilita el login a los usuarios del sistema
¿Qué se realiza primero la ejecución de proceso Init o el montaje delsistema de ficheros raíz?
Tema 3. Arranque y parada del sistema– p. 8/29
1.2 Gestor de arranque GRUB
GRUB: GRand Unified Bootloader
GRUB se instala en el master boot record (M.B.R.) y hace de lasfunciones de master boot program (M.B.P.)
Pregunta qué S.O. arrancar: Linux o Windows
Si la respuesta es Linux⇒ carga el núcleo solicitado y le pasa elcontrol para que el arranque continúe
Si la respuesta es Windows⇒ pasa el control a Windows querealiza su arranque
Fichero de configuración: /boot/grub/grub.conf (en algunos sistemas es
/boot/grub/menu.lst)
Ejecutable (para instalación): /sbin/grub-install
Soporta el modo Direccionamiento Lógico de Bloques (LBA)
Lee los sistemas de ficheros Ext2, Ext3 o reiserfs
(GRUB se puede instalar el sector de arranque de la partición de Linux, en este caso sólo se lanzará si
es esa partición activa)
Tema 3. Arranque y parada del sistema– p. 9/29
1.2 Gestor de arranque de GRUB (ii)
Lee el fichero de configuración en cada arranque (las
modificaciones se toman de manera automática)
Dispone de tres interfaces con distinto grado defuncionalidad:
De menú⇒ seleccionar S.O.
Del editor de menú de entrada⇒ modificar líneas de órdenes antes dearrancar el sistema operativo, p.e. para pasar parámetros al núcleo ocorregir errores del fichero. (Pulsar la tecla e)
Para pasar parámetros al núcleo pulsar la tecla a
De línea de órdenes⇒ ejecutar órdenes interactivamente. (Pulsar la tecla c)
Terminología de GRUB, numerando los dispositivos según losreconozca la BIOS:
Nombres de dispositivos (hd0,0) ⇒ /dev/sda1(<tipo_de_dispositivo><número_dispositivo_bios>,<numero_particion>)
Nombres de ficheros (hd0,0)/boot/grub/grub.conf
(<tipo_de_dispositivo><número_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 fichero de configuración con Linux y Windows: (se lee encada 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 definido para realizar tareas administrativas y demantenimiento, que requieren un control completo y no compartidodel sistemaSólo realiza el montaje del sistema de ficheros raíz (/), los otros SFestán disponibles pero no están montadosSe puede acceder a todo el sistema, pero muchos servicios no estánactivos o configurados:
Muy pocos demonios están en ejecución, sólo los necesariosMuchas utilidades no están activas (impresión, red)Sólo las órdenes del SF raíz están disponibles, (si /usr está en otra
partición no está montado)
etc.
Para entrar en modo monousuario el proceso Init crea el shell pordefecto (/bin/sh) como usuario root , (en ocasiones ejecuta la orden
/sbin/sulogin, que pedirá la contraseña del root para dejar entrar al sistema)
Tema 3. Arranque y parada del sistema– p. 12/29
1.3 Modo monousuario (ii)
¿Cómo se entra en modo monousuario?Indicándolo manualmente al Master Boot Program con unaopción o parámetro:
GRUB: añadir, mediante la interfaz de edición, la opción «single» a la entradadel núcleo « kernel /boot/vmlinuz-2.6.37 ro root=LABEL=/ »
Automáticamente, si hay problemas en el proceso de arranqueque el sistema no puede solucionar por sí solo, (p.e. problemas en el
SF que fsck no puede solucionar, errores en los ficheros de arranque)
¡Problema! Modo monousuario no tiene ninguna protección (unusuario podría entrar en el sistema en modo monousuario, y portanto tener acceso a todo el sistema, estando delante del ordenador)Solución:
GRUB: en el fichero /boot/grub/grub.conf añadir la opción:password −−md5 password_encriptadoLa orden grub-md5-crypt encripta el password, que habrá que copiar alfichero de configuración
Tema 3. Arranque y parada del sistema– p. 13/29
1.4 Modo multiusuario
Pasos del proceso de arranque:1. Chequea el sistema de ficheros raíz con fsck
Si al apagar el sistema, el sistema de ficheros se desmontó correctamente, nose chequeaSin embargo, algunos S.O.’s con determinados SF’s fuerzan el chequeosiempre, o cada cierto tiempo (cada 3 meses) o cada cierto no de montajessin chequear (cada 20 veces)Si fsck encuentra problemas que no puede solucionar “sólo”, lleva al sistemaa modo monousuario para que el administrador realice el chequeo manual
2. Monta el sistema de ficheros raíz en modo lectura-escritura
3. Chequea el resto de sistemas de ficheros con fsck (idem al punto 1)
4. Monta el resto de sistemas de ficheros
5. Activa las particiones de intercambio o swapping con swapon -a
6. Activa las cuotas de disco: quotacheck -a y quotaon -a
Tema 3. Arranque y parada del sistema– p. 14/29
1.4 Modo multiusuario (ii)
Pasos del proceso de arranque (continúa . . . )
7. Lanza los procesos servidores o demonioscrond, atd, etc.cupsdsyslogd. . .
8. Activa la red9. Lanza los demonios de red
xinetd, sendmail, named, routedrpcbind, nfsd, rpc.statd, ypbind, ypserv
10. Limpia los sistemas de ficheros: /tmp, etc.11. Permite que los usuarios entren:
Crea las terminales, lanzando mingetty (o getty ) en modo texto, y el terminalgráfico, si es precisoBorra, en caso de que exista, el fichero /etc/nologin
Si el fichero /etc/nologin existe los usuarios (excepto el root ) no puedenentrar al sistema. Algunos sistemas lo crean al iniciar el arranque
Tema 3. Arranque y parada del sistema– p. 15/29
1.5 Niveles de ejecución en Linux
Algunos sistemas operativos consideran que el sistemapuede estar en distintos niveles de ejecución (oarranque), y no sólo en multiusuario y monousuario(originalmente apareció en los UNIX de System V)
En Linux estos niveles de ejecución son:0: El sistema está apagado1, s ó S: Modo monousuario2: Multiusuario sin funciones de red, el mismo que el 3 pero sinlas utilidades de red. (En ocasiones está sin usar y puede ser redefinido)
3: Multiusuario completo, con terminales en modo texto4: Sin usar, puede ser redefinido por el administrador5: Multiusuario con pantalla de inicio de sesión basada en X6: El sistema se está reiniciando
Tema 3. Arranque y parada del sistema– p. 16/29
1.5 Niveles de ejecución en Linux (ii)
/sbin/telinit ⇒ cambiar de nivel de ejecución
telinit 1 ⇒ a modo monousuariotelinit 6 ⇒ reiniciar el sistematelinit 3 ⇒ cambiar al nivel 3
/sbin/runlevel ⇒ saber en qué nivel está el sistemaHay un nivel por defecto en el que arranca el sistema, que seestablece en el fichero /etc/inittab con la línea:
id:5:initdefault:
Al arrancar, mediante el GRUB, al núcleo se le puede pasar comoparámetro un número indicando el nivel en el que queremosarrancar. 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, queson ejecutados por el proceso InitDe forma asíncrona 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 (ficheros)que Init ejecuta según el orden y las dependencias establecidas enlos mismosEstos eventos indican qué tarea ejecutar, cuándo y cómo, mediantesu propio lenguajeLa orden initctl permite indicar al proceso Init que realicedeterminadas acciones:
start evento stop evento status evento
Tema 3. Arranque y parada del sistema– p. 18/29
1.6 Arranque mediante Upstart (ii)Los ficheros de eventos están en modo texto siguiendo la siguientenomenclatura:
exec <orden><argumentos> ⇒ ejecutar la orden con esos argumentos:
exec /etc/rc.d/rc 0
exec /sbin/mingetty tty2
script . . . end script ⇒ ejecutar el guión 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 ficheros de eventos:
start on <event> ⇒ describe bajo qué condiciones se lanzará ese evento
start on startup start on stopped rc2
start on runlevel 5 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 mueraconsole ⇒ hacia dónde redirigir la salida del eventopre-start ⇒ ejecutar la orden/guión 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 ficheros de eventos:
post-start ⇒ ejecutar la orden/guión shell después 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/guión shell antes de parar ese proceso
pre-stop exec ...
pre-stop script / end-script
post-stop ⇒ ejecutar la orden/guión shell después 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 inicializaciónVarios ficheros script generales, llamados rc* que están en /etc/rc.do /etc, son ejecutados al arrancar por el Init mediante un eventoVarios ficheros scripts específicos de cada nivel de arranque, queestán en el directorio /etc/rcn.d o /etc/rc.d/rcn.d, siendo n el nivel dearranque, son ejecutados al arrancar o cambiar de nivel
Son ficheros scripts que su nombre empieza por K o S, seguido de un número de2 dígitos 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 ficheros scripts,según el nivel de arranqueLos ejecuta en orden alfabético, primero los K después los S, los dos dígitosestablecen el orden entre todos los K y todos los SLos ficheros K sirven para detener demonios o matar procesosLos ficheros S sirven para lanzar demonios o ejecutar funciones de inicializaciónDe esta manera, para cada nivel de inicialización, se especifica qué demoniostienen 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 inicialización (ii)En los directorios /etc/rcn.d (o /etc/rc.d/rcn.d )
Estos ficheros son enlaces simbólicos al fichero con el mismonombre descriptivo que está en el directorio /etc/init.d (o/etc/rc.d/init.d)Los ficheros scripts reciben varios parámetros: start, stop,restart, etc. (esto permite lanzar o relanzar demonios sin reiniciar el sistema)
rc ejecuta los K con el parámetro stop y los S con start/sbin/chkconfig ⇒ configurar los demonios a lanzar (S) o finalizar(K) para cada nivel. También permite consultas
−−add nombre ⇒ Añadir para los niveles que especifique el demonio−−del nombre ⇒ Eliminarlo (ni siquiera lo deja como K)[−−level levels] nombre <on|off|reset>
−−list [nombre]
En entorno gráfico: /usr/sbin/ntsysv, system-config-servicesLanzar demonios a “mano” (sin reiniciar)⇒ P.e. el demonio deimpresión: /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 ROMChequeo inicial del sistemaLee y almacena en memoria el programa cargador del S.O.Pasa el control al cargador del S.O., saltando a la dirección de memoria donde loha almacenado
2. Cargador del sistema operativo (GRUB)⇒ carga el núcleo delsistema operativo y le pasa el control, sabe dónde está el núcleo ocómo localizarlo
3. Núcleo del sistema operativoChequeo hardwareCreación e inicialización de las estructuras de datos, tablas, etc., que necesitaCrea el proceso Init y le pasa el control
4. Proceso Init ⇒ termina el proceso de arranque, dejando el sistemapreparado para ser usado (chequeo de SF’s, montaje de SF’s,activación 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, diagnóstico, hardware nuevo, etc.Las acciones que se realizan en el proceso de parada son:
1. Se notifica a los usuarios2. Procesos en ejecución⇒ enviar la señal de terminación (TERM)
3. Se paran los demonios4. A los usuarios que quedan conectados se les echa del sistema5. Procesos que queden en ejecución⇒ enviar la señal de fin (KILL)
6. Actualizaciones de disco pendientes (integridad del SF) con sync7. Dependiendo del tipo de shutdown:
a) Se cambia a modo monousuario, opción por defectob) Se apaga el ordenadorc) Se reinicia el sistema
Orden: shutdown (también 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:mAl 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. Caídas del sistema y problemas de arranque
Causas de caídas del sistema:Fallos hardwareErrores de hardware irrecuperablesFallos de luz (cortes o altibajos)Otros problemas ambientalesProblemas de entrada/salidaProblemas de algún sistema de ficheros
Problemas de arranqueHardware malNo se puede leer el sistema de ficheros de los discos de trabajoHay en el disco áreas dañadas que no pertenecen al sistema deficheros (p.e. tabla de particiones)Hardware incompatibleErrores en la configuración del sistema
Tema 3. Arranque y parada del sistema– p. 28/29
3. Caídas del sistema y problemas de arranque (ii)
Al rearrancar mirar los mensajes que hay en el fichero/var/log/messagesLa orden dmesg ⇒ mensajes producidos durante elarranqueEn el arranque al núcleo se le pueden pasar otrosparámetros:
root=particion⇒ indicar que monte como partición raíz unadistintainit=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 SFestá montado en modo sólo lectura, hay que remontarlo « mount -o remount-w -n / »
single⇒ arrancar en modo monousuarioUn número indicando el nivel de arranque
Tema 3. Arranque y parada del sistema– p. 29/29