Proceso De Arranque Y Cargador - ULPGC

Transcription

Proceso de Arranque y CargadorAmpliación de Sistemas OperativosJosé R. López Medina2004 - 2005

1. Proceso de Arranque, Inicio yCierre del Sistemaz Métodoabierto y configurablez Permite a los usuarios lanzaraplicaciones que deseen enmomento de arranquez Configuración del cierre nonecesaria, pero posiblez Resolver problemas relacionadoscon el inicio y el cierre del sistemaJosé Raúl López Medina2

1.1. Proceso de ArranquezEtapas Básicas x86:1. BIOS comprueba y lanza primera etapa del gestor dearranque2. Primera etapa se autocarga en memoria y lanza segundaetapa desde partición /boot/3. Segunda etapa carga kernel en memoria, cargándosemódulos necesarios y montando partición “root” sólolectura4. Kernel transfiere control proceso de arranque a /sbin/init5. /sbin/init carga servicios y herramientas de espacio delusuario y monta particiones listadas en /etc/fstab6. Usuario se presenta con intérprete comandos de registropara el sistema Linux arrancado.José Raúl López Medina3

1.2. Vista Detallada del Proceso deArranquez Dependede la plataforma hardwarez Encontrado el kernel y cargándose elsistema, el proceso de arranque es elmismo para todas las arquitecturasz Caso a estudiar: arquitectura x86José Raúl López Medina4

1.2.1. La BIOSzzzzzCuando un ordenador se carga, el procesador busca al finalde la memoria el programa BIOS y lo ejecuta.Es la encargada de controlar el primer paso del proceso dearranque así como proporcionar interfaz de bajo nivel paraperiféricos.Chequea los periféricos y localiza dispositivo con el quearrancar el sistema, cargando en memoria cualquierprograma que encuentre en el primer sector de estedispositivo (MBR).Master Boot Record (MBR): 512B, contiene instruccionescódigo máquina para arranque del equipo, invocar gestorde arranque y tabla de particiones.Una vez cargado en memoria, la BIOS cede control delproceso de arranque al cargador del gestor de arranque.José Raúl López Medina5

1.2.2. El Gestor de ArranquezGestores de arranque más comunes:––zGRUB (más nuevo)LILOEtapas de los gestores de arranque:1.2.Código binario máquina en MBR que localiza gestor arranque de segundaetapa y carga primera parte de éste en memoriaUsa información del MBR para determinar opciones de arranquedisponibles para el usuariozTras la cargar segunda etapa se presenta al usuario una pantallamostrando los distintos S.O. o kernels disponibleszUbica la imagen apropiada de initial RAM disk (initrd) en memoria y esusada por el kernel para cargar controladores del arranque del sistema.zTras estar el kernel e initrd en memoria, controla el proceso de arranquepara el kernel.José Raúl López Medina6

1.2.3. El kernelzzzzzCuando es cargado, se inicializa y configura la memoria delPC así como el hardware conectado al sistema(procesadores, E/S, almacenamiento, )Busca imagen initrd en zona específica de memoria, ladescomprimirá, la montará y cargará los controladoresnecesarios.Inicializa los ficheros antes de desmontar initrd.Crea dispositivo “root”, monta partición “root” (sólolectura) y libera memoria no usada, quedando el kernelcargado en memoria y operativo.Configuración del entorno de usuario: /sbin/initJosé Raúl López Medina7

1.2.4. Programa /sbin/initzzCoordina el resto del proceso de arranque yconfigura el ambiente del usuarioEtapas del comando init:1. Ejecuta el script /rc.serial2. Ejecuta el script /etc/inittab3. Configura la librería de función de fuente/etc/rc.d/init.d/functions para el sistema4. Inicia todos los procesos de fondo buscando en eldirectorio apropiado “rc” por el nivel de ejecuciónespecificado en /etc/inittab– K Æ /etc/rc.d/init.d/ comando stop– S Æ /etc/rc.d/init.d/ comando startJosé Raúl López Medina8

1.3. Ejecutar Programas Adicionalesen el Arranquezzz“init” ejecuta el script /etc/rc.d/rc.local enel momento de arranque o al cambiarniveles de ejecución.Para arrancar servicios especiales oinicializar dispositivos basta con agregarlos comandos a dicho scriptPara configurar puertos seriales se usa elscript /etc/rc.serial (comandos “setserial”)José Raúl López Medina9

1.4. Niveles de Ejecución deSysV Initz Controlaprogramas “init” que selanzan o detienen cuando seinicializa un nivel.z Ficheros de configuración en/etc/rc.d/z /etc/rc.d/init.d/ contiene scriptsusados por “/sbin/init” cuando secontrolan los serviciosJosé Raúl López Medina10

1.4.1. Niveles de Ejecuciónz Sonun estado, o modo, definido porlos servicios listados en el directorioSysV /etc/rc.d/rc x .d/, donde x esel número de nivel de ejecución.z Sistemas diferentes se pueden usarde formas diferentes.z Las características de un nivel dadodeterminan qué servicios sondetenidos o iniciados por “init”.José Raúl López Medina11

1.4.1. Niveles de Ejecución (2)zNiveles de ejecución por defecto de RH:–––––––z0 Æ Parar1 Æ Modo texto usuario único2 Æ Sin usar (usuario-definible)3 Æ Modo texto multiusuario completo4 Æ Sin usar (usuario-definible)5 Æ Modo gráfico multiusuario completo6 Æ RearrancarNivel de ejecución por defecto /etc/inittab:– Id:5:initdefault:José Raúl López Medina12

1.4.2. Utilidades de los Niveles deEjecuciónz “initscriptutility”: herramientas quepermiten configurar los niveles deejecución.– /sbin/chkconfig– /sbin/ntsysvJosé Raúl López Medina13

1.5. ApagarzzComando “/sbin/shutdown” (usuario root)Opciones más usadas:– “/sbin/shutdown –h now” (apagar)– “/sbin/shutdown –r now” (reiniciar)zResto de usuarios disponen de loscomandos (niveles 1 al 5):– “halt” (apagar)– “reboot” (reiniciar)zOJO: No apagar el PC hasta que seindique que el sistema ha sido detenido,podría causar que el sistema de archivosse corrompa. José Raúl López Medina14

2. Gestores de Arranquez Existeen el disco duro primario delsistema (u otros dispositivos) y esresponsable de la carga del kernel deLinux o de otros SO en memoria.José Raúl López Medina15

2.1. Gestores de Arranque yArquitectura del Sistemaz Cadaarquitectura usa un gestor dearranque diferente– Alpha: aboot– Itanium: ELILO– x86: GRUB y LILOJosé Raúl López Medina16

2.2. GRUBzzzGNU GRand UnifiedBoot loaderPermite al usuarioseleccionar qué SOinstalado o kerneldescargar en elmomento de arranquedel sistemaPermite transmitirargumentos al kernelJosé Raúl López Medina17

2.2.1. Proceso de Arranque en x86 yGRUBzSe carga a sí mismo en memoria endiferentes etapas:1. La etapa 1 o cargador de arranqueprimario se lee en memoria con el BIOSdesde el MRB. Lee en la memoria al gestorde arranque de la etapa 1.5 si esnecesario.2. La etapa 2 o el gestor de arranquesecundario se lee en la memoria. Lee elsistema operativo o el kernel y “initrd” enla memoria.José Raúl López Medina18

2.2.2. Funciones GRUBz Característicasmás importantes– Proporciona entorno pre-OS basado encomandos para máquinas x86– Soporta el modo DireccionamientoLógico de Bloques (LBA).– Puede leer particiones ext2José Raúl López Medina19

2.3. Instalación de GRUBzSi tras instalación de Linux sequiere instalar GRUB habrá querealizar los siguientes pasos:1. Instalar la última versión de GRUB2. Ubicar GRUB en el MBR:– “/sbin/grub-install /dev/hdX” siendo X a,b,c,d (dependiendo de la ubicacióndel HD)José Raúl López Medina20

2.4. Terminología de GRUBz Cómose hace referencia a losdispositivosJosé Raúl López Medina21

2.4.1. Nombre de Dispositivosz Nomenclaturautilizada:– ( tipo-disp nº-disp-bios , nº-partición ) (hd0,0) Æ Primer HD, Primera partición (hd1,4) Æ Segundo HD, Quinta particiónJosé Raúl López Medina22

2.4.2. Nombres de Archivos y Listasde BloqueozEspecificación de archivo:– ( tipo-disp n-disp-bios , n-part ) /path/filezEspecificación de archivos que noaparecen en el sistema de archivos(gestor arranque de cadena, Windows):– 0 50,100 25,200 1– (hd0,0) 1– chainloader 1José Raúl López Medina23

2.4.3. Sistema de Archivos Raíz deGRUBz Notiene nada que ver con el sistemade archivos raíz de Linux.z Es la partición raíz de un dispositivoconcreto.José Raúl López Medina24

2.5. Interfaces de GRUBz Disponede 3 interfaces paradistintos niveles de funcionalidad:– Interfaz de menú– Interfaz del editor de menú de entrada– Interfaz de comandosJosé Raúl López Medina25

2.5.1. Orden de Uso de InterfaceszzzAl cargar segunda etapa se busca elarchivo de configuración y lo utiliza paracrear la lista de menú Æ Interfaz de menú.Si no se encuentra o no se puede leer elarchivo de configuración Æ Interfaz delínea de comandos.Si el archivo de configuración no esválido, se imprime error y se pideintroducir valores Æ Interfaz del editor demenú de entrada.José Raúl López Medina26

2.6. Comandos de GRUBzComandos más útiles:– boot: Arranca S.O. especificado– chainloader archivo : Carga archivo como gestor deencadenamiento– displaymem: Uso actual de memoria– initrd archivo : Especifica initrd para usar al arrancar– install stage-1 install-disk stage2 p config-file :Instala GRUB en MBR.– kernel kernel-file option-1 option-N – root disp-y-partición : Partición raiz de GRUB– rootnoverify disp-y-partición : No monta la partición– info grubJosé Raúl López Medina27

2.7. Archivo de Configuración deMenú de GRUBz /boot/grub/grub.confz Usadopara crear la lista de lainterfaz de menú de GRUBz Permite seleccionar un grupopredefinido de comandos para suejecuciónJosé Raúl López Medina28

2.7.1. Comandos Especiales delArchivo de Configuraciónzcolor color-normal color-selec – colorred/blackgreen/bluezzzzzzzzdefault nombre-título : Título por defectofallback nombre-título : Título secundariohiddenmenu: Esconde interfaz de GRUB si no sepulsa la tecla [Esc]password contraseña timeoutsplashimage: Imagen de pantalla que se usa alarrancartitle#: Sirve para comentariosJosé Raúl López Medina29

2.7.2. Estructura del Archivo deConfiguraciónzComandos para configurar preferencias globales deinterfaz de menú al inicio, seguido de las entradas de SO okernelsdefault 0timeout 10splashimage (hd0,0) /grub/splash.xpm.gztitle Linuxroot(hd0,0)kernel /vmlinuz ro root /dev/sda2initrd /initrd.imgtitle Windowsrootnoverify (hd0,0)chainloader 1José Raúl López Medina30

2.8. LILOz LInuxLOader, usado para arrancarLinux en x86 por muchos años.z Según el tipo de hardware, GRUBpuede causar problemas.José Raúl López Medina31

2.8.1. LILO y el Proceso deArranque x86zA diferencia de GRUB, es un gestorde arranque en 2 etapas:1. La etapa 1 o el gestor de arranqueprimario se lee en la memoria por laBIOS desde el MBR.2. La etapa 2 o el gestor de arranquesecundario se lee en memoria, lee elSO o el kernel y lleva a cabo “initrd”en memoria.José Raúl López Medina32

2.8.2. LILO vs GRUBz LILOfunciona parecido a GRUB aexcepción de:– No posee ninguna interfaz del comandointeractiva.– Almacena información sobre lalocalización del kernel o de si otro SOse debe cargar en el MBR.– No puede leer las particiones ext2.José Raúl López Medina33

2.9. Opciones en /etc/lilo.confzEl comando /etc/sbin/lilo usa este archivopara determinar la información para elMBR.boot /dev/hdamap /boot/mapinstall /boot/boot.bprompttimeout 50message /boot/messagelba32default linuximage /boot/vmlinuzlabel linuxinitrd /boot/initrd.imgread-onlyroot /dev/hda5other /dev/hda1label dosJosé Raúl López Medina34

2.10. Cambiar los Niveles deEjecución en Tiempo de ArranquezLILO:1. Acceder intérprete de comandos “boot:” [Ctrl] [x]2. Escribir “linux nº-nivel-ejecución ” (1-5, single oemergency)zGRUB:1. En pantalla gráfica, seleccionar etiqueta Linux ypulsar [e] para editarla.2. Ir parte inferior línea del kernel y pulsar [e] paramodificarla.3. Escribir número 1-5, single o emergency [Intro]4. Pulsar [b] para arrancar el sistemaJosé Raúl López Medina35

2.11. Recursos Adicionalesz Consultarlos siguientes recursospara descubrir más cosas sobrecómo funcionan GRUB y LILO.José Raúl López Medina36

2.11.1. Documentación Instaladaz /usr/share/doc/grub- version /z “infogrub”z /usr/share/doc/lilo- version /José Raúl López Medina37

2.11.2. Sitios Web .tldp.org/HOWTO/mini/LILO.htmlJosé Raúl López Medina38

Ampliación de Sistemas Operativos José R. López Medina 2004 - 2005. José Raúl López Medina 2 1. Proceso de Arranque, Inicio y Cierre del Sistema zMétodo abierto y configurable zPermite a los usuarios lanzar aplicaciones que deseen en momento de arranque zConfiguración del cierre no