Proceso de Arranque y Servicios 1 - Introducción 2 – BIOS/UEFI 3 – Gestores de Arranque 4 - Servicios
Introduccion I Proceso de Arranque Power On Self-Test (POST) ● Cargador de arranque ( BIOS/UEFI ) ● Cargador de arranque (Disco Duro) ● Ejecución del kernel (Linux) ● Montaje de los sistemas de archivos ● Inicio de servicios y resto del sistema
Introduccion II
Introduccion II Gestores de Arranque Lilo/ELilo Grub Legacy Grub2 SysLinux
Introduccion III Sistema de Servicios SysVInit Upstart SystemD
BIOS/UEFI I BIOS Standard CMOS BIOS Features Chipset Features Power Management PNP/PC Configuration Integrated Peripherals
BIOS/UEFI II ¿Qué es UEFI? UEFI (Unified Extensible Firmware Interface) Especificacion que transfiere el el control a un OS Independiente de la Arquitectura Interfaz mas limpia entre OS y Firwmare de arranque.
¿Cuál es la relación entre EFI y UEFI? BIOS/UEFI III ¿Cuál es la relación entre EFI y UEFI? UEFI se basa en EFI 1.10 Intel publico las especificaciones No tiene mas actualizaciones EFI
¿Cómo UEFI difieren de la BIOS? BIOS/UEFI IV ¿Cómo UEFI difieren de la BIOS? BIOS es especifico a INTEL BIOS sirve como interfaz original para PC-XT y PC-AT UEFI moderniza y estandariza este sistema UEFI define una interfaz OS-Firmware UEFI lo define como “servicios de arranque” y “Servicios en tiempo de ejecucion” UEFI no es especifico a cualquier arquitectura de procesador
BIOS/UEFI V
BIOS/UEFI V
Resumen Caracteristicas UEFI BIOS/UEFI VI Resumen Caracteristicas UEFI Habilidad para arrancar de discos mas grandes (+ 2TB) Inicio mas rapido Arquitectura de CPU Independiente Arquitectura de drivers de CPU independiente Flexibilidad Diseño Modular Mas adecuado para las necesidades del momento
Gestor de Arranque I Grub Legacy ● Soporta varios sistemas de archivos ● Permite definir el kernel a cargar ● Permite pasar opciones al kernel ● Soporta contraseñas de modificaciones
Referencia a dispositivos de disco: Gestor de Arranque II Referencia a dispositivos de disco: (xdn[,m]) Xd fd o hd para floppy o discos duros* n Número de disco (según el BIOS, desde 0) M Número de partición (desde 0) *No distingue entre IDE, SCSI y SATA dd if=/dev/sda bs=512 count=1 | hexdump -C
Gestor de Arranque III Ejemplos: (fd0) El primer disco floppy (hd0) El primer disco rígido (hd0,1) La segunda partición del primer disco rígido
Gestor de Arranque IV Parámetros de arranque del kernel root=/dev/sda1 Define la partición que se utilizará como raíz init=/bin/bash Define el programa a ejecutar al terminar la carga ro Monta el FS raíz en modo de sólo lectura initrd=/boot/initrd.img-2.6.32-5-686 Define la imagen initrd a utilizar en el arranque del sistema
Gestor de Arranque V Logs de arranque del kernel dmesg | more Se puede ver como se carga y detecta todo Archivo de Configuracion /boot/grub/grub.conf o menu.lst
Gestor de Arranque VI Grub2 Configuracion modular Soporte para más sistemas de ficheros Soporte de scripting Nuevo método para numerar las particiones Mejor gestión de memoria Interfaz gráfica de usuario (BURG)
Archivos de Configuracion Gestor de Arranque VII Archivos de Configuracion /boot/grub/grub.cfg (no recomendable editar) /etc/default/grub /etc/grub.d
Archivos de Configuracion Gestor de Arranque VII Archivos de Configuracion /boot/grub/grub.cfg (no recomendable editar) /etc/default/grub (ejecutar update-grub) /etc/grub.d (ejecutar update-grub)
Gestor de Arranque VIII Entrada en Grub Legacy title CentOS (2.6.32-220.el6.i686) root (hd0,0) kernel /vmlinuz-2.6.32-220.el6.i686 ro root=/dev/mapper/vg_becascontrolf-lv_root rd_LVM_LV=vg_becascontrolf/lv_swap rd_NO_LUKS rd_NO_MD quiet SYSFONT=latarcyrheb-sun16 rhgb crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=la-latin1 LANG=es_ES.UTF-8 rd_LVM_LV=vg_becascontrolf/lv_root rd_NO_DM initrd /initramfs-2.6.32-220.el6.i686.img
Gestor de Arranque VIII Entrada en Grub2 menuentry 'Fedora (3.3.1-5.fc16.x86_64)' --class fedora --class gnu-linux --class gnu --class os { load_video set gfxpayload=keep insmod gzio insmod part_msdos insmod ext2 set root='(hd0,msdos1)' search --no-floppy --fs-uuid --set=root b3bb7242-c7f0- 4182-96a5-ec223d08b953 echo 'Loading Fedora (3.3.1-5.fc16.x86_64)' linux /vmlinuz-3.3.1-5.fc16.x86_64 root=/dev/mapper/vg_restauracion-root ro rd.md=0 rd.dm=0 quiet rd.lvm.lv=vg_restauracion/swap SYSFONT=latarcyrheb-sun16 rhgb KEYTABLE=la- latin1 rd.lvm.lv=vg_restauracion/root rd.luks.uuid=luks- 5c0dc81f-4e7b-49d5-a1a5-396b0d0c3c43 LANG=en_US.UTF-8 echo 'Loading initial ramdisk ...' initrd /initramfs-3.3.1-5.fc16.x86_64.img
Gestor de Arranque IX LILO/ELILO Actualmente casi en deshuso ELILO soporta EFI LILO no tiene una línea de comandos interactiva como GRUB LILO no permite bootear desde una red, en cambio GRUB sí. LILO no guarda la informacion de sus sistema de archivos que cambian en MBR, se debe ejecutar lilo LILO no es interactivo y permite tan sólo un comando con argumentos.
Gestor de Arranque X LILO/ELILO # cat /etc/lilo.conf prompt timeout=50 default=linux boot=/dev/hda map=/boot/map install=/boot/boot.b message=/boot/message linear image=/boot/vmlinuz-2.4.18-14 label=linux initrd=/boot/initrd-2.4.18-14.img read-only append="root=LABEL=/" other=/dev/hda1 optional label=Windows.
Gestor de Arranque XI Recuperando GRUB [root@becascontrolf ~]# grub-install /dev/sda [root@becascontrolf ~]# grub-install '(hd0)'
Gestor de Arranque XII Recuperando GRUB dd if=/dev/zero of=/dev/sda bs=446 count=1 chroot /mnt/sysimage Montar si hace falta algun que otro fs Realizar los pasos anteriores y reiniciar.
Gestor de Arranque XIII Recuperando mediante Shell grub grub> root (hd0,0) root (hd0,0) Filesystem type is ext2fs, partition type 0x83 grub> setup (hd0) setup (hd0) Checking if "/boot/grub/stage1" exists... no Checking if "/grub/stage1" exists... yes Checking if "/grub/stage2" exists... yes Checking if "/grub/e2fs_stage1_5" exists... yes Running "embed /grub/e2fs_stage1_5 (hd0)"... 27 sectors are embedded. succeeded Running "install /grub/stage1 (hd0) (hd0)1+27 p (hd0,0)/grub/stage2 /grub/grub.conf"... succeeded Done. grub>
Gestor de Arranque XIV Recuperando GRUB2 Reiniciar live-cd o rescue-cd Mount -t ext4 /dev/ sdaXX /mnt Mount –bind /dev /mnt/dev chroot /mnt/ grub2-install /dev/sda
Niveles de ejecución I ● Van del 0 al 6 ● Controlan los servicios a ejecutar ● Presentes en la mayoría de los Unix
Niveles de ejecución II 0 - Apagar el sistema 1 - Modo mantenimiento (o monousuario) 2 - Multiusuario sin NFS ni entorno gráfico 3 - Todo menos entorno gráfico (default) 4 - Típicamente no utilizado 5 - Multiusuario con entorno gráfico 6 - Reiniciar el sistema Configuración basada en sistemas RedHat
Niveles de ejecución II Monousuario ● Sin red ● Sin entorno gráfico ● Mayoría de servicios deshabilitados ● Utilizado para mantenimiento
Contiene todos los scripts de arranque SysVInit I /etc/inid.d/ Contiene todos los scripts de arranque
SysVInit II /etc/rcX.d/ Se reemplaza la 'X' por el número de runlevel Contiene enlaces a los scripts de /etc/init.d/ Los que empiezan con 'S' inician el servicio Los que empiezan con 'K' detienen el servicio El número indica el orden de ejecución
SysVInit III /etc/rc.local Es un script Se ejecuta al final de los niveles multiusuario Suele utilizarse para configuraciones particulares
Administración de servicios SysVInit IV Administración de servicios Ejemplo del servicio apache2: /etc/init.d/apache2 opción Opciones comunes: start, stop, restart, reload, status Cada servicio puede tener otras opciones
SysVInit V /etc/inittab Permite configurar el comportamiento de init Runlevel por defecto: id:2:initdefault:
SysVInit VI Comando 'runlevel' Muestra el runlevel actual Uso:
SysVInit VII Comando 'runlevel' Ejemplos: # runlevel 35 (Se inició en 3 y estamos en 5) N2 (Se inició en 2 y estamos en 2)
SysVInit VIII Comando 'init' Permite modificar el runlevel actual Uso: init runlevel
SysVInit IX Comando 'init' Ejemplos: # init 0 (Apaga el sistema) (Reinicia el sistema) # init 3 (Pasa al runlevel 3)
SysVInit X Comando 'shutdown' Apaga o reinicia el sistema en forma correcta Uso: shutdown [opciones] tiempo mensaje Enviar mensajes masivos wall, write write root /dev/tty1 wall El sistema se apagara en 5 minutos Cierre sus programas Control + d
SysVInit XI Comando 'shutdown' Opciones comunes: f Evita el chequeo de FS en el siguiente inicio h Apaga el sistema k No hace nada, sólo envía el mensaje r Reinicia el sistema F Fuerza el chequeo de FS en el siguiente inicio
SysVInit XII Comando 'shutdown' Ejemplos: shutdown -r now Reinicia el sistema ahora (now) shutdown -r +5 Reinicio Reinicia en 5 minutos y envía el mensaje “Reinicio” shutdown -h 23:59 Apaga el sistema a las 23:59hs
SysVInit XIII Comando Chkconfig Listar servicios Agregar/Quitar servicios Comando service Inicializar/Reinicializar/Parar servicios
SysVInit XIV Comando Chkconfig Chkconfig --list Chkconfig sshd off Chkconfig sshd on 2345 usage: chkconfig [--list] [--type <type>] [name] chkconfig --add <name> chkconfig --del <name> chkconfig --override <name> chkconfig [--level <levels>] [--type <type>] <name> <on|off|reset|resetpriorities> Comando service Service sshd status Service sshd restart
Upstart vs SysVinit Diferencias Upstart trabaja de forma asincronica SysVinit trabaja de forma sincronica Upstart supervisa servicios en tiempo real Upstart mejora el arranque del sistema Upstart es compatible con SysVinit
Upstart I Configuracion Scripts en /etc/init (compatible con /etc/init.d) Parametros de arranque /etc/sysconfig/init (Red Hat) Comandos Listar --> initctl list Parar --> initctl stop job Arrancar --> initctl start job Estado --> initctl status job Log --> initctl log-priority (debug + info)
Upstart II Conceptos de Jobs * Jobs * Tipos Task,Service,Abstract * Estados (Ver Tabla Abajo) * Jobs del sistema /etc/init/ * Los usuarios pueden crear Jobs (/etc/dbus- 1/system.d/Upstart.conf) en $HOME/.init/ * Variantes (start on sin stop on, stop sin start on, sin stop on o start on )
Upstart III Conceptos de Jobs
Upstart IV
Upstart V Conceptos de Events * Tipos de Events * Signals * Methods * Hooks Upstart usa estados de forma interna Los eventos se comportan segun el compartamiento del job (starting,started,stopped)
Upstart VI Ejemplos: start on runlevel 3 respawn respawn limit 5 10 exec /usr/sbin/sshd
Upstart VI Conceptos de Events * Tipos de Events * Signals * Methods * Hooks Upstart usa estados de forma interna Los eventos se comportan segun el compartamiento del job (starting,started,stopped)
Upstart VII Mas Comunes * control-alt-delete (lanza shutdown) * init-system-dbus.conf ( conecta init con dbus) * Plymouth files (plymouth-*,splash-*,quit-*), reemplaza rhgb * Archivos de termina (prefdm,start-ttys,tty,serial) * Control de Recursos ( rcS, rcS-sulogin,rc)
SystemD I Caracteristicas Compatible con System V init y LSB Reemplazaría al sistema de inicio SysV Resuelve de otra manera las dependencias de servicios Mejoras en el inicio de servicios en paralelo Utilización de cgroups para seguir los procesos (seguimiento) Control de procesos
SystemD II Compatibilidad con SysV init script (LSB, chkconfig) Caracteristicas Sistema simple de plantillas/instancias para archivos de configuración genéricos Compatibilidad con SysV init script (LSB, chkconfig) Sintaxis de configuración simple Soporta snapshot del sistema Escrito por Lennart Poettering bajo licencia GPL2
SystemD III Herramientas systemctl systemd-cgls sytemadm (systemd-gtk package)
Systemd III Comparación con SysV
Systemd IV Comparacion con SysV
SystemD IV Units [Unit] Description=System Logging Service [Service] EnvironmentFile=-/etc/sysconfig/rsyslog ExecStartPre=/bin/systemctl stop systemd-kmsg-syslogd.service ExecStart=/sbin/rsyslogd -n $SYSLOGD_OPTIONS Sockets=syslog.socket StandardOutput=null [Install] WantedBy=multi-user.target
Bibliografia Sistema de Servicios http://www.buenastareas.com/ensayos/Que-Es-Uefi/1588718.html http://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface http://www.todoexpertos.com/categorias/tecnologia-e-internet/sistemas- operativos/linux/respuestas/555972/diferencia-entre-cargadores-de-arranque Upstart http://rm-rf.es/rhel-centos-6-adios-system-v-hola-upstart/ http://systemadmin.es/2011/10/upstart-en-centos-6 https://wiki.frugalware.org/index.php/Upstart_Job_HOWTO http://upstart.ubuntu.com/cookbook/