Inicio Linux - PowerPoint PPT Presentation

1 / 44
About This Presentation
Title:

Inicio Linux

Description:

Default=0 #Por defecto arranca el linux. timeout=10 #Tiempo de espera antes de arrancar ... defaults,users,umask=0 0 0 /dev/hda7 /media/dell vfat defaults,utf8, ... – PowerPoint PPT presentation

Number of Views:31
Avg rating:3.0/5.0
Slides: 45
Provided by: 1582
Category:
Tags: defaults | inicio | linux

less

Transcript and Presenter's Notes

Title: Inicio Linux


1
Inicio Linux
  • Ubuntu
  • Kepa Bengoetxea

2
Referencia
  • RefReplacing init with Upstart By Scott James
    Remnant http//www.linux.com/articles/57213
  • Refhttp//upstart.ubuntu.com/
  • http//upstart.ubuntu.com/getting-started.html
  • http//www-128.ibm.com/developerworks/library/l-bo
    ot-faster/index.html
  • http//www.europe.redhat.com/documentation/rhl9/rh
    l-rg-es-9/
  • https//wiki.ubuntu.com/ReplacementInit

3
Booting
  • El arranque se puede dividir en 3 pasos
  • BIOS
  • kernel boot
  • System initialization

4
BootingBios
  • Cuando encendemos el ordenador, se ejecuta la
    BIOS (Basic Input/output System) que se almacena
    dispositivo flash en la placa madre
  • realiza el chequeo de los componentes
  • localiza el dispositivo por el que arrancar el
    sistema(Orden se cambia en la BIOS)?
  • carga en memoria la primera etapa de gestor de
    arranque(GRUB, GRand Unified Bootloader) que esta
    en el primer sector, llamado MBR (Master Boot
    Record).
  • La primera etapa del GRUB localiza la segunda
    etapa usando la tabla de particiones buscando la
    partición activa y lo carga en memoria.

5
Bootingkernel boot
  • La segunda etapa de GRUB nos muestra los
    diferentes S.O, una vez elegido en caso de linux
  • Localiza el binario del kernel en la carpeta
    /boot.
  • Carga la imagen comprimida del kernel en memoria
    y monta la partición root como solo lectura
  • Carga en memoria la imagen de initrd (initial
    ramdisk) que es usado por el kernel para cargar
    los controladores que necesita para arrancar el
    sistema (ext3,scsi,...)?

6
Bootingkernel boot ?
  • less /boot/grub/menu.lst (1ª parte)?
  • Default0 Por defecto arranca el linux
  • timeout10 Tiempo de espera antes de arrancar
  • Hiddenmenu Esconde el menu
  • title Ubuntu, kernel 2.6.10-5-386
  • nos colocamos en la partición 1º disco 7º
    partición, montándola(boot)?
  • root (hd0,6)?
  • kernel /boot/vmlinuz-2.6.10-5-386
    root/dev/hda13 ro quiet splash
  • initrd /boot/initrd.img-2.6.10-5-386
  • guarda la última entrada como entrada por
    defecto
  • savedefault
  • arranca el SO de cadena
  • boot

7
Bootingkernel boot ?
  • less /boot/grub/menu.lst (2ª parte)?
  • title Windows 95/98/NT/2000
  • root (hd0,0)?
  • hace activa la partición donde estamos
    situados
  • makeactive
  • carga el primer sector de la partición activa
  • chainloader 1

8
BootingSystem Initialization
  • El kernel transfiere el control del proceso de
    arranque al proceso init.
  • Init es el padre de todos los procesos del
    sistema y es el responsable de iniciar a el resto
    de procesos.
  • Los procesos gestionados por init se llaman
    jobs .Hay dos tipos Aquellos que son
    supervisados y rearrancados en caso de que el
    servicio se caiga y los que no se levantan ni
    supervisan.

9
BootingSystem Initialization
  • Existen diferentes mecanismos de arranque/parada
    de servicios y cómo el init los gestiona
  • a)El Sistema V Init (sysvinit) donde
    /sbin/init lee de fichero de configuración
    /etc/inittab, y arranca los servicios en modo
    batch.
  • b)Upstart donde el init gestiona los servicios
    basándose en eventos, el init maneja los
    servicios definidos en la carpeta /etc/event.d

10
BootingSystem InitializationSystem V Init
  • El kernel transfiere el control del proceso de
    arranque al programa /sbin/init
  • El programa /sbin/init
  • Ejecuta el script /etc/inittab
  • Ejecuta el script /etc/init.d/rcS
  • Ejecuta el script /etc/rc (guión de
    inicialización del sistema)?
  • Ejecuta las consolas virtualesgettys o
    mingettys?
  • Ejecuta el script /etc/X11/prefdm (carga gestor
    de pantalla preferido para X)?

11
BootingSystem InitializationSystem V Init
  • El formato /etc/inittab es idrunlevelsacciónpr
    oceso
  • idsecuencia única de 1 a 4 caracteres
  • Runlevels fedora 0 a 6 (0 halt,1 single,2
    multiuser without NFS,3 full multiuser,4 unused,
    5 X11 y 6 reboot)?
  • Runlevels ubuntu 0 a 6 (0 halt,1 single,2 a 5
    multiuser y 6 reboot)?

12
BootingSystem InitializationSystem V Init
  • Formato /etc/inittab
  • idrunlevelsacciónproceso
  • AcciónProceso(Comando)?
  • Respawn se reinicia cada vez que sea finalizado
  • Wait se inicia y espera a su finalización
  • Initdefault especifica el runlevel por defecto
  • Powerwait se ejecuta cuando se va la
    corriente(UPS), init espera la finalización del
    proceso.
  • PowerfailIdem,pero no espera a finalizar

13
BootingSystem InitializationSystem V Init
  • Formato /etc/inittab
  • AcciónProceso
  • Powerokwait Se ejecuta cuando se detecta que la
    corriente ha vuelto
  • Powerfailnow Se ejecuta cuando init es
    notificado de que la batería UPS(Uninterrupted
    Power System) esta agotada
  • Ctraltdel Se ejecuta al presionar CTRLALTDEL
  • ...

14
BootingSystem InitializationSystem V Init
  • Formato /etc/inittab
  • RunlevelsModo de inicio por defecto Fedora
  • 0 Halt
  • 1 Modo Monousuario
  • 2 Modo Multiusuario sin NFS(Igual que 3,sin Red)?
  • 3 Modo Multiusuario completo sin X
  • 4 Sin uso
  • 5 X
  • 6 Reinicio
  • id5initdefault

15
BootingSystem InitializationSystem V Init
  • Formato /etc/inittab
  • RunlevelsModo de inicio por defecto Ubuntu
  • 0 Halt (detiene la ejecución del equipo)?
  • 1 Modo Monousuario (tareas administrativas)?
  • 2-5 Modo Multiusuario( 2 por defecto)?
  • 6 Reinicio
  • id2initdefault

16
BootingSystem InitializationSystem V Init
  • Como cambiar de modo de arranque?
  • /etc/inittab -gt id5initdefault
  • /sbin/init 0123456
  • /sbin/telinit 0123456
  • Lilo Booting boot linux single
  • Grub Booting
  • Elegir Redhat Linux
  • Pulsar e (de edit)?
  • Escribir single o 1
  • Pulsar b (de boot)?
  • Disquete de arranque linux 1

17
BootingSystem InitializationSystem V Init
  • Durante un arranque normal init ejecutará primero
    los procesos del nivel S(/etc/init.d/rcS)?
  • Aquí es donde se comprueban y montan los sistemas
    de ficheros
  • se ajusta el reloj según la CMOS
  • se habilita el intercambio de espacios
  • se ajusta el nombre del host
  • establece la ruta a otros programa
  • etc...

18
BootingSystem InitializationSystem V Init
  • Para ver cuales son los procesos del nivel S (ls
    /etc/rcS.d)?
  • README
  • S50hwclock.sh
  • S01mountkernfs.sh
  • S35mountall.sh
  • S02hostname.sh
  • ...

19
BootingSystem InitializationSystem V Init
  • Durante un arranque normal init ejecutará primero
    los procesos del nivel S(/etc/init.d/rcS) y más
    concretamente S35mountall.sh encontramos el
    comando mount -a que se encarga de montar todas
    la líneas de /etc/fstab con auto o defaults en la
    columna 4
  • sistema de archivopunto de montajetipo del
    sistema de archivosopcionesvolcadoorden de
    chequeo
  • /dev/hda3 / ext3 defaults 1 1
  • /dev/hda10 swap
    swap defaults 0 0
  • /dev/hda5 /dos
    vfat defaults,users,umask0 0 0
  • /dev/hda7 /media/dell vfat defaults,utf8,umask00
    7,uid1000,gid1000 0 0

20
BootingSystem InitializationSystem V Init
  • En función del nivel de ejecución especificado se
    arrancan los servicios /etc/rcrunlevel.d/S

l00wait/etc/init.d/rc 0 l11wait/etc/init.d/r
c 1 l22wait/etc/init.d/rc 2 ... l66wait/etc/
init.d/rc 6
21
BootingSystem InitializationSystem V Init
  • En rc si rc 2
  • /etc/rc2.d/S Carga todos los servicios definidos
    para el nivel de ejecución 2
  • Ejm
  • init para (stop) todos los sercicios cuyo
    enlace simbólico
  • empiece por K y a continuación start todos
    los enlaces
  • simbólicos S.
  • S55sshd -gt /etc/init.d/sshd
  • K15apache2 -gt /etc/init.d/apache2
  • /etc/init.d/apache2 stop
  • /etc/init.d/apache2 start

22
BootingSystem InitializationSystem V Init
  • arranca por defecto en runlevel 2 en modo
    multiusuario sin/con X
  • id2initdefault
  • arranca servicios básicos /etc/rcS.d/S??
  • sisysinit/etc/init.d/rcS
  • arranca los servicios /etc/rcrunlevel.d/S
  • l00wait/etc/rc.d/rc 0
  • l11wait/etc/rc.d/rc 1
  • l22wait/etc/rc.d/rc 2
  • ...
  • l66wait/etc/rc.d/rc 6

23
BootingSystem InitializationSystem V Init?
  • bifurca los procesos /sbin/getty para cada
    consola virtual. Los niveles de ejecución del 2
    al 5 obtienen todas las seis consolas virtuales,
  • 12345respawn/sbin/getty 38400 tty1
  • 223respawn/sbin/getty 38400 tty2
  • 323respawn/sbin/getty 38400 tty3
  • 423respawn/sbin/getty 38400 tty4
  • 523respawn/sbin/getty 38400 tty5
  • 623respawn/sbin/getty 38400 tty6

24
BootingSystem InitializationSystem V Init?
  • En el nivel de ejecución 2 debe arrancar el nivel
    gráfico, gdm es administrador de vistas que será
    ejecutado por defecto en los niveles 2,3,4 y 5 en
    GNOME. El script es /etc/rc2.d/S13gdm .Para ver
    cuales son los procesos del nivel 2 (ls
    /etc/rc2.d)?
  • ...
  • S13gdm
  • ...

25
BootingSystem InitializationSystem V Init?
  • El programa init también ejecuta es el archivo
    /etc/rc.local?
  • El script /etc/rc.local lo ejecuta el comando
    init en tiempo de arranque, o cuando se cambie de
    niveles de ejecución. El agregar comandos a este
    script es una forma fácil de realizar tareas
    necesarias como arrancar servicios especiales o
    inicializar dispositivos sin tener que escribir
    scripts complejos de inicialización en el
    directorio /etc/init.d/ y creando los enlaces
    simbólicos. (personalización del sistema)?
  • Ejm Incluir el arranque de Tomcat
  • CATALINA_HOME/bin/startup.sh

26
BootingSystem InitializationSystem V Init?
  • Secuencia de procesos que lanza el kernel.
  • Terminal
  • Init-gtgetty-gtlogin-gtshell
  • Gráfico
  • Init-gtkdm,gdm,xdm-gtlogin-gtX11,KDE o GNOME

27
BootingSystem InitializationSystem V Init?
  • Una sesión iniciada desde una consola virtual o
    desde una conexión remota (via telnet, rsh o ssh)
    es atendida inicialmente por el programa getty
  • Cuando un usuario teclea su login, getty pasa el
    control al programa login que verifica el usuario
    y passwd, y si todo es correcto inicializa
    algunas variables de ambiente y arranca el
    inteprete de comandos que esta en el /etc/passwd
    que normalmente es el bash

28
BootingSystem InitializationDe Sysvinit a
Upstart
  • Ubuntu 6.10 and later
  • Fedora 9 and later
  • Debian experimental

29
BootingSystem InitializationDe Sysvinit a
Upstart
  • El kernel soporta la conexión y desconexión de
    hardware, el incremento de hardware movible hace
    imposible garantizar qué dispositivos van estar
    disponibles en el momento de arranque del
    sistema.
  • Ejm No queremos que s.o intente montar los
    discos USB de /etc/fstab , en caso de no estar
    presentes.
  • Ejm Hay servicios que se caen, y queremos que se
    arranquen automáticamente, para evitar la pérdida
    de servicio.
  • Ejm Cuando enchufo la iPod, tengo que arrancar
    manualmente el software, y cuando lo desconecto
    pararlo manualmente.

30
BootingSystem InitializationDe Sysvinit a
Upstart
  • Ejm Con sysvinit no podemos saber que servicios
    han fallado en el arranque, y cuales están
    corriendo actualmente.
  • Ejm En caso de necesitar rearrancar
    frecuentemente la máquina, necesitamos que
    arranque lo más rápido posible. La ejecución
    lineal falla, ya que necesita dormir y esperar
    durante el proceso, a que el hardware este
    disponible y el modelo basado en dependencias
    falla porque intenta arrancar un servicio y
    posteriormente sus dependencias, sin arrancar
    primero las dependencias y en función de si se
    arrancan estas, arrancar el principal.
  • Etc....

31
BootingSystem InitializationUpstart
  • Upstart es un nuevo init basado en evento, donde
    los servicios son arrancados o parados porque
    ocurre un evento para el cual están preparados o
    escuchando. Ejm El evento que causa que se monte
    una partición (/) puede ser la detección de un
    dispositivo de bloque (/dev/hda3)?
  • Este nuevo sustituto de sysvinit, esta siendo
    desarrollado dentro de Ubuntu por Scott James
    Remnant, pero esta pensado para cualquier
    distribución.
  • Requiere que cambies los scripts de
    inicialización para soportar el modo basado en
    evento.

32
BootingSystem InitializationCómo
funciona?Upstart
  • Los eventos serán generados por
  • a) Arraque o parada del sistema startup o
    shutdown
  • b) Cuando un job cambia de estado (job ha
    terminado, ...)?
  • c) Otros eventos que serán recibidos de otras
    partes del sistema (HW de red, dispositivos de
    bloque ...)?

33
BootingSystem InitializationUpstart
  • Upstart tiene su propio init, que trabaja con
    diferentes tipos de eventos eventos frontera,
    eventos de nivel y eventos temporales
  • Eventos Frontera o Simple
  • -Cuando se enciende la máquina el init emite
    la señal startup
  • -Cuando se apaga la máquina el init emite la
    señal shutdown
  • -También existen otros eventos
    ctraltdel,...?
  • Ejm less /etc/event.d/rcS
  • start on startup

34
BootingSystem InitializationUpstart
  • Eventos de Nivel
  • Son eventos frontera, excepto que tienen asociado
    un valor cadena del tipo up , down.
  • Ejm start when default-route is up, stop when
    default-route is down, while default-route is
    up donde default-route esta activo o up si el
    router por defecto esta encendido.

35
BootingSystem InitializationUpstart
  • Eventos Temporales
  • Son utilizados para llevar a cabo tareas cada
    cierto tiempo.
  • Ejm "15 minutes after startup", "daily", "at
    half past two", etc.

36
BootingSystem InitializationUpstart
  • Todos los trabajos (jobs) están esperando a un
    evento en particular, que normalmente es el
    mismo para muchos de ellos (Ejmstartup ó
    shutdown). Esto puede no ser deseable en todos
    los casos, especialmente, en la secuencia de
    arranque de ciertas operaciones (red-gtapache2).
    Este orden se puede establecer si un trabajo
    provoca a su vez eventos de cuando empieza o
    termina.
  • Ejemplos de ficheros que actuan en orden según
    los eventos
  • rcSstart on startup
  • rc-defaultstart on stopped rcS

37
BootingSystem InitializationUpstart
  • Sintácticamente Acción Evento
  • Acción Start , Stop (job)?
  • Evento"on event", "when event is value" or
    "while event is value" donde event startup,
    shutdown, ... y donde value up, down
  • Ejm
  • start on startup
  • stop when default-route is down
  • start while default-route is up

38
BootingSystem InitializationCómo
funciona?Upstart
  • El demonio init comienza con un simple evento
    startup y todo lo demás se arranca como una
    secuencia de eventos. No necesita de objetivos o
    runlevels, ya que el sistema arrancará tan lejos
    como el HW disponible se lo permita.
  • Ejm La Red siempre se arrancará, si el HW de
    red(modem, router ...) esta disponible, asumiendo
    que la configuración por defecto será DHCP. Si
    después de arrancar conectamos la red, en pocos
    minutos tendremos conexión,y se irán arrancando
    automáticamente otros servicios como apache,
    sendmail ...

39
BootingSystem InitializationCómo
funciona?Upstart
  • Ejm Los sistemas de ficheros que están en
    /etc/fstab serán chequeados y montados cuando el
    kernel detecte los dispositivos de bloque. Y
    cuando detecta el HW de red y obtiene una IP,
    intenta montar los sistemas de ficheros remotos.
  • Con este sistema los scripts pueden generar por
    si mismos otros eventos, que a su vez arrancan a
    otros scripts o demonios, pudiendo ejecutarse en
    paralelo (modo asíncrono)?

40
BootingSystem InitializationCómo
funciona?Upstart
  • Cada fichero en /etc/event.d describe un job
    que debería ser gestionado.
  • Incluye que binarios o scripts deben de ser
    ejecutados para que el job este ejecutándose.
  • Incluye los eventos que causan que el job sea
    arrancado o parado.
  • El objetivo de este proyecto es obtener un
    sistema configurable de manera sencilla. Cada uno
    tiene que configurar los jobs que serán
    arrancados al iniciar el sistema, cada hora,
    cuando la red se active, cuando AC se active, al
    apagar el sistema, etc...

41
BootingSystem InitializationUpstart
  • Los scripts para upstart trabajan parecido a los
    tradicionales ficheros rc. Exceptuando que ahora
    operan de manera autónoma basado en eventos
    asíncronos. El script sysvinit rc 2 quedaría

start on runlevel 2 stop on runlevel !2 console
output script set (runlevel --set 2
true)? if "1" ! "unknown" then
PREVLEVEL1 RUNLEVEL2 export
PREVLEVEL RUNLEVEL fi exec /etc/init.d/rc 2 end
script
42
BootingSystem InitializationUpstart
  • La utilidad initctl ofrece una funcionalidad
    similar a telinit o init, es decir, es la
    utilidad que controla al demonio init, pero con
    características adicionales, como

man initctl initctl start job_name(tty1)? initctl
stop job_name(tty1)? initctl status
job_name(tty1)? initctl list PATTERN initctl
emit EVENT
43
BootingSystem InitializationVentajas Upstart
  • El arranque irá lo lejos que el HW disponible se
    lo permita, el HW no disponible no activa los
    jobs que necesitaría.
  • Soporta hot-plugging. EjmCuando conectas una
    tarjeta de red después de que el sistema ha
    arrancado, se generaría el evento
    network-interface-added. Y automáticamente se
    activarán otros jobs que dependen de este.
    (Apache o sendmail).
  • Los scripts operan de manera autónoma basado en
    eventos asíncronos, acelerando el arranque del
    sistema.

44
BootingSystem InitializationVentajas Upstart
  • Por compatibilidad
  • Se mantienen los scripts /etc/init.d/rc
  • También se mantienen los runlevels, pudiendo usar
    el comando init 3 que generará el evento adecuado
    para la ejecución de /etc/init.d/rc 3
Write a Comment
User Comments (0)
About PowerShow.com