Está en la página 1de 26

Tema 3.

Arranque y parada del sistema


Administración de Sistemas Operativos

Administración de Sistemas Operativos y Periféricos

Ma Pilar González Férez

Tema 3. Arranque y parada del sistema – p. 1/26


Índice
1. Proceso de arranque del sistema
1.1. Arranque de un PC
1.2. Gestor de arranque GRUB
1.3. Modo monousuario
1.4. Modo multiusuario
1.5. Niveles de arranque en Linux
1.6. Ficheros de inicialización
2. Parada del sistema
3. Caídas del sistema y problemas de arranque

Tema 3. Arranque y parada del sistema – p. 2/26


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 modificados en memoria se
guardan en el sistema de ficheros)
El administrador debe saber qué hacen estos dos
procesos y cómo lo hacen, ya que le facilitará
reconocer posibles situaciones de error y solucionarlas
En la actualidad son procesos muy sencillos ⇒ una serie
de ficheros de configuración y de guiones shell determi-
nan y controlan estos procesos

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


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/26


1.1 Arranque de un PC (ii)
Iniciador ROM ⇒ Programa de arranque disponible en
la ROM
Al arrancar el ordenador ⇒ Señal eléctrica ⇒ Carga
valores predefinidos en los registros
En el contador del programa se carga la dirección de
inicio 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 de
memoria donde lo ha almacenado

Tema 3. Arranque y parada del sistema – p. 5/26


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 tamaño
prefijado
Estos 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 control
El iniciador de la ROM y el S.O. tienen un acuerdo sobre
el programa cargador, (ubicación, dirección de arranque y tamaño), de
esta manera el iniciador puede soportar varios S.O.’s

Tema 3. Arranque y parada del sistema – p. 6/26


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 sistema
Se prepara a sí mismo para ejecutar el sistema inicializando sus
tablas internas, creando las estructuras de datos necesarias, etc.
A continuación crea el proceso Int y le pasa el control
Para que el núcleo no tenga un tamaño muy grande, la mayoría de
las opciones se compilan como módulos, que se cargarán cuando se
necesiten
Por ello, en el arranque el núcleo necesitará cargar algunos módulos
para poder iniciar el sistema, p.e. el módulo ext3 para acceder al SF
El fichero initrd_version.img cargará los módulos que el núcleo
necesita para poder arrancar:
El núcleo primero carga el initrd y le pasa el control
El initrd carga los módulos necesarios y le devuelve el control al núcleo
Entonces el núcleo continuará el proceso de arranque

Tema 3. Arranque y parada del sistema – p. 7/26


1.1 Arranque de un PC (v)
El proceso Init termina el proceso de arranque,
dejando el sistema preparado para que los usuarios
trabajen en él
Usa una serie de ficheros scripts que le indican las acciones a
realizar
Las tareas que realiza el proceso Init son:
Chequea los sistemas de ficheros
Monta los sistemas de ficheros permanentes
Activa las áreas de swapping o intercambio
Activa los demonios y la red (NFS, NIS, etc.)
Limpia los sistemas de ficheros (borra los directorios
temporales)
Habilita el login a los usuarios del sistema
¿Qué se realiza primero la ejecución de proceso Init o el montaje del
sistema de ficheros raíz?

Tema 3. Arranque y parada del sistema – p. 8/26


1.2 Gestor de arranque GRUB
GRUB: GRand Unified Bootloader
GRUB puede instalarse en el master boot record o en el sector de
arranque de la partición de Linux (en este caso sólo se lanzará si es la partición activa)
Si está en el M.B.R. hace de master boot program
Pregunta qué S.O. arrancar: Linux o Windows
Si la respuesta es Linux ⇒ carga el núcleo solicitado y le pasa el
control para que el arranque continúe
Si la respuesta es Windows ⇒ pasa el control a Windows que
realiza 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

Tema 3. Arranque y parada del sistema – p. 9/26


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 de


funcionalidad:
De menú ⇒ seleccionar S.O.
Del editor de menú de entrada ⇒ modificar líneas de órdenes antes de
arrancar el sistema operativo, p.e. para pasar parámetros al núcleo o
corregir erróres 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 los


reconozca la BIOS:
Nombres de dispositivos (hd0,0) ⇒ /dev/hda1
(<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/26


1.2 Gestor de arranque de GRUB (iii)
Ejemplo de fichero de configuración con Linux y Windows: (se lee en
cada arranque del sistema)

default=0 #Opción por defecto


timeout=10 #Tiempo de espera
password --md5 $1$4hKKr1$LvSjN89PmeeHXBljr13yq0
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.6.14) #Etiqueta
root (hd0,0) #Partición a montar (donde está el núcleo)
kernel /boot/vmlinuz-2.6.14 ro root=LABEL=/ #Núcleo y parámetros
initrd /boot/initrd-2.6.14.img #Fichero initrd
title Windows 2003 #Etiqueta
rootnoverify (hd0,2) #Partición a usar
chainloader +1 #Pasarle el control

Tema 3. Arranque y parada del sistema – p. 11/26


1.3 Modo monousuario
Estado del sistema definido para realizar tareas administrativas y de
mantenimiento, que requieren un control completo y no compartido
del sistema
Sólo realiza el montaje del sistema de ficheros raíz (/), los otros SF
están disponibles pero no están montados
Se puede acceder a todo el sistema, pero muchos servicios no están
activos o configurados:
Muy pocos demonios están en ejecución, sólo los necesarios
Muchas 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 por
defecto (/bin/sh) como usuario root, (en ocasiones ejecuta la orden
/sbin/sulogin)

Tema 3. Arranque y parada del sistema – p. 12/26


1.3 Modo monousuario (ii)
¿Cómo se entra en modo monousuario?
Indicándolo manualmente al Master Boot Program con una
opción o parámetro:
GRUB: añadir, mediante la interfaz de edición, la opción «single» a la entrada
« kernel /boot/vmlinuz-2.6.14 ro root=LABEL=/ »
Automáticamente, 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 ficheros de arranque)
¡Problema! Modo monousuario no tiene ninguna protección (un
usuario podría entrar en el sistema en modo monousuario, y por
tanto 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 passwdord_encriptado
La orden grub-md5-crypt encripta el password, que habrá que copiar al
fichero de configuración

Tema 3. Arranque y parada del sistema – p. 13/26


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, no
se chequea
Sin embargo, algunos S.O.’s con determinados SF’s fuerzan el chequeo
siempre, o cada cierto tiempo (cada 3 meses) o cada cierto no de montajes
sin chequear (cada 20 veces)
Si existe el fichero /fastboot no se chequea (ese fichero se crea al apagar con
shutdown -f )
Si fsck encuentra problemas que no puede solucionar “sólo”, lleva al sistema
a 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/26


1.4 Modo multiusuario (ii)
Pasos del proceso de arranque (continúa . . . )
7. Lanza los procesos servidores o demonios
bdflush y update, que guardan los bloques de disco modificados en memoria
crond, atd, etc.
cups
syslogd
8. Activa la red
9. Lanza los demonios de red
xinetd, sendmail, named, routed
portmap, 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 terminal
gráfico, si es preciso
Borra, en caso de que exista, el fichero /etc/nologin
Si el fichero /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/26


1.5 Niveles de arranque en Linux
Algunos sistemas operativos consideran que el sistema
puede estar en distintos niveles de ejecución, 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á 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 redefinido)
3: Multiusuario completo, con terminales en modo texto
4: Sin usar, puede ser redefinido por el administrador
5: Multiusuario con pantalla de inicio de sesión basada en X
6: El sistema se está reiniciando

Tema 3. Arranque y parada del sistema – p. 16/26


1.5 Niveles de arranque en Linux (ii)
/sbin/telinit ⇒ cambiar de nivel de ejecución
telinit 1 ⇒ a modo monousuario
telinit 6 ⇒ reiniciar el sistema
telinit 3 ⇒ cambiar al nivel 3

Normalmente el fichero /sbin/telinit es un enlace simbólico al fichero


/sbin/init
/sbin/runlevel ⇒ saber en qué nivel está el sistema
Hay un nivel por defecto en el que arranca el sistema
Al arrancar, mediante el GRUB, al núcleo se le puede pasar como
parámetro el nivel en el que queremos arrancar. En este caso se
obviará el nivel por defecto
telinit también puede recibir otros parámetros como:
a, b, c: procesar las entradas con el nivel de arranque a, b ó c
q, Q: volver a examinar el fichero /etc/inittab
u, U: volver a ejecutar el proceso Init manteniendo el estado

Tema 3. Arranque y parada del sistema – p. 17/26


1.6 Ficheros de inicialización
En los sistemas con niveles de arranque:
/etc/inittab ⇒ le dice a Init qué hacer en cada nivel de arranque.
Es leído por el Init en cada arranque o cambio de nivel para
saber qué ficheros tiene que ejecutar (o qué procesos parar)
Varios ficheros script generales, llamados rc* que están en
/etc/rc.d o /etc, son ejecutados al arrancar por el Init
Varios ficheros scripts específicos de cada nivel de arranque, que
están en el directorio /etc/rcn.d o /etc/rc.d/rcn.d, siendo n el nivel
de arranque, son ejecutados al arrancar o cambiar de nivel
/etc/inittab tiene el formato id:niveles:acción:proceso
id: etiqueta única de hasta 4 caracteres
niveles: para los que se tiene que ejecutar esa entrada
Vacío significa que se ejecute para cualquier nivel
Para indicar varios niveles, se especifican seguidos sin ningún separador
acción: describe qué acción se debería tomar
proceso: especifica el proceso a ejecutar

Tema 3. Arranque y parada del sistema – p. 18/26


1.6 Ficheros de inicialización (ii)
Formato del /etc/inittab (continúa . . . )

Para el campo acción tenemos las siguientes opciones:


initdefault: cuál es el nivel de arranque por defecto
wait: lanza el proceso y espera a que termine para poder continuar
respawn: relanzará el proceso automáticamente cuando éste finalice
once: lanza el proceso sólo si no estaba ya ejecutándose, no lo espera
boot: ejecutará el proceso durante el arranque del sistema no tiene en cuenta
los niveles de ejecución
bootwait: idem al anterior, pero espera a que el proceso termine para
continuar con la siguiente entrada
sysinit: el proceso debe ejecutarse al arrancar el sistema antes que cualquier
otra cosa, incluso que boot y bootwait, no se tienen en cuenta los niveles de
ejecución
off : si el proceso indicado está ejecutándose lo finaliza, matándolo
ctrlaltdel: al presionar las teclas Ctrl+Alt+Del se reinicializará el sistema
Las opciones powerfail y powerok están definidas para actuar ante problemas
de fallos de corriente o restauración de la misma

Tema 3. Arranque y parada del sistema – p. 19/26


1.6 Ficheros de inicialización (iii)
En los directorios /etc/rcn.d (o /etc/rc.d/rcn.d ) hay una serie de
scripts con las siguientes características:
Son ficheros scripts que su nombre empieza por K o S, seguido
de un número de 2 dígitos y un nombre descriptivo:
K35smb K15httpd S40atd S50xinetd S60lpd S99local
El script /etc/rc (o /etc/rc.d/rc) es el encargado de ejecutar estos
ficheros scripts, según el nivel de arranque
Los ejecuta en orden alfabético, primero los K después los S, los
dos dígitos establecen el orden entre todos los K y todos los S
Los ficheros K sirven para detener demonios o matar procesos
Los ficheros S sirven para lanzar demonios o ejecutar funciones
de inicialización
De esta manera, para cada nivel de inicialización, se especifica
qué demonios tienen que estar activos y qué demonios no tienen
que estar activos

Tema 3. Arranque y parada del sistema – p. 20/26


1.6 Ficheros de inicialización (iv)
En los directorios /etc/rcn.d (o /etc/rc.d/rcn.d )
Estos ficheros son enlaces simbólicos al fichero con el mismo
nombre 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: /sbin/ntsysv, system-config-services
Lanzar demonios a “mano” (sin reiniciar) ⇒ P.e. el demonio de
impresión: /etc/rc.d/init.d/cups restart

Tema 3. Arranque y parada del sistema – p. 21/26


1.6 Ficheros de inicialización (v)
Ejemplo del fichero /etc/inittab

id:3:initdefault: # Things to run in every runlevel.


ud::once:/sbin/update
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit # Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1 1:2345:respawn:/sbin/mingetty tty1
l2:2:wait:/etc/rc.d/rc 2 2:2345:respawn:/sbin/mingetty tty2
l3:3:wait:/etc/rc.d/rc 3 3:2345:respawn:/sbin/mingetty tty3
l4:4:wait:/etc/rc.d/rc 4 4:2345:respawn:/sbin/mingetty tty4
l5:5:wait:/etc/rc.d/rc 5 5:2345:respawn:/sbin/mingetty tty5
l6:6:wait:/etc/rc.d/rc 6 6:2345:respawn:/sbin/mingetty tty6

Tema 3. Arranque y parada del sistema – p. 22/26


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 usuarios
2. Procesos en ejecución ⇒ se les envía la señal de terminación (TERM)
3. Se paran los demonios
4. A los usuarios que quedan conectados se les echa del sistema
5. Procesos que queden en ejecución se les envía la señal de fin (KILL)
6. Actualizaciones de disco pendientes (integridad del SF) ejecutando sync
7. Dependiendo del tipo de shutdown:
7.1. Se cambia a modo monousuario, opción por defecto
7.2. Se apaga el ordenador
7.3. Se reinicia el sistema
7.4. Se cambia a otro estado

Orden: shutdown (también telinit nivel)

Tema 3. Arranque y parada del sistema – p. 23/26


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
-f ⇒ no chequear el sistema de ficheros al reiniciar
-k ⇒ simular un shutdown, pero realmente no se lleva a cabo
-i nivel ⇒ cambiar al «nivel» indicado
-a ⇒ examine el fichero /etc/shutdown.allow
Tiempo: +minutos, now, h:m
En el fichero /etc/shutdown.allow se puede indicar a qué usuarios se
permite utilizar las teclas ctrl+alt+supr
Lista de los usuarios permitidos (un nombre por línea)
Si un usuario permitido está conectado al sistema se procesa la secuencia
ctrl+alt+supr, en otro caso se ignora
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. 24/26


3. Caídas del sistema y problemas de arranque

Causas de caídas del sistema:


Fallos hardware
Errores de hardware irrecuperables
Fallos de luz (cortes o altibajos)
Otros problemas ambientales
Problemas de entrada/salida
Problemas de algun sistema de ficheros
Problemas de arranque
Hardware mal
No se puede leer el sistema de ficheros de los discos de trabajo
Hay en el disco áreas dañadas que no pertenecen al sistema de
ficheros (p.e. tabla de particiones)
Hardware incompatible
Errores en la configuración del sistema

Tema 3. Arranque y parada del sistema – p. 25/26


3. Caídas del sistema y problemas de arranque (ii)

Al rearrancar mirar los mensajes que hay en el fichero


/var/log/messages
La orden dmesg ⇒ mensajes producidos durante el
arranque
En el arranque al núcleo se le pueden pasar otros
parámetros:
root=particion ⇒ indicar que monte como partición raíz una
distinta
init=ejecutable ⇒ que en vez del proceso Init lance otro proceso:
init=/bin/sh ⇒ en este caso el proceso de inicio del Init no se realiza, el SF
está montado en modo sólo lectura, hay que remontarlo « mount -o remount
-w -n / »
single ⇒ arrancar en modo monousuario
emergency ⇒ el proceso de inicio del Init no se realiza, se
ejecuta un /sbin/sulogin, es muy similar a la opción init=/bin/sh
Un número indicando el nivel de arranque

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

También podría gustarte