Creación del live
=================

    Para crearlo hace falta la última versión de live-build, antes
    llamado live-helper.

    $ lb -v
    , version 2.0~a28-1
    This program is a part of live-build

    Con esa versión funciona perfectamente.

    Para empezar la creación de ejecutar:

    $./generate.sh


Obtención del último live-build
===============================

    git clone git://live.debian.net/git/live-boot.git
    cd live-boot
    sudo make install
    cd ..
    git clone git://live.debian.net/git/live-build.git
    cd live-build
    sudo make install
    cd ..
    git clone git://live.debian.net/git/live-config.git
    cd live-config
    sudo make install


Configuración
=============

    Existe el fichero config que se carga antes de empezar el script.
    Sientete libre de modificarlo a tu gusto.


Estructura
==========

    El script create_directories.sh crea los directorios donde se va
    alojar el live resultante y algunos directorios vacios necesarios
    para crearlo correctamente en includes.

    El script create_config_tree.sh crea el árbol de configuración
    inicial de live-build.

    El script generate.sh es el principal. Desde él se llama a los
    demás scripts y además carga la configuración. También descarga
    los últimos engine, client_daemon y scripts de svn. De esta
    manera se hará automáticamente.

    El script gnsyslive.sh es antiguo y será borrado próximamente.
    Es la antigua manera que generamos el live. Se pueden sacar ideas
    por eso no es borrado todavía.

    El directorio hooks contiene scripts que se ejecutarán dentro
    del live antes de ser generado definitivamente. Puedes añadir
    nuevos para añadir cosas o eliminar cosas de manera sencilla.

    El directorio includes contiene ficheros que se van a agregar al
    live directamente en su directorio raíz.

    El directorio packages_lists contiene ficheros que tienen dentro
    una lista de paquetes que serán instalados en el live
    automáticamente.

    En el directorio server encontraremos ficheros de configuración
    que pueden ser útiles para configurar los servicios necesarios
    para arrancar el cliente que son por ahora: NFS, DHCP y TFTP.
    Se da la alternativa de usar dnsmasq solamente o dhcpd3 con
    tftpd.


Instalación de los servicios
============================
    
    ArchLinux
    =========
        
        Instalando los demonios:

        # pacman -S nfs-utils dnsmasq

        Para la configuración usamos los ficheros que están en server.
        Para dnsmasq:

        # cp server/dnsmasq.conf /etc/

        Para nfs:

        # cp server/exports /etc/

        En ArchLinux la configuración por defecto es todo deny cosa que
        en otras distribuciones como Ubuntu no ocurre y no es necesario.
        Para hosts.allow no deberías sustituirlo directamente,
        sino simplemente añadir las lineas que hay dentro:

        # cat server/hosts.allow >> /etc/hosts.allow

    Debian/Ubuntu
    =============

        TODO

Posibles mejoras
================

    Este es el ticket #236: http://opengnsys.es/ticket/236
    Como se puede ver el arranque es bastante lento. Pero esto se puede
    mejorar. Lo primero que hay que descubrir porque los de debian
    crean una imagen squashfs y si nos da alguna ventaja respecto a 
    no hacerla. Las fases de lb son:

    lb_config
    create configuration for live-build

    lb_bootstrap
    create the first stage by bootstrapping a basic debian system

    lb_chroot
    create the second stage by customizing the chroot

    lb_binary(1)
    create the third stage by generating a binary image

    lb_binary
    create the optional fourth stage by generating a source image

    Primero crea la configuración. Luego hace el bootstrapping.
    Después hace el chroot he incluye todos los ficheros que ponemos,
    ejecuta los hooks e instala los paquetes listados en los ficheros.
    Luego con ese chroot empieza a meterle un initrd especial, con
    casper en el caso de ubuntu. Este casper a cuando se empieza a
    ejecutar, es decir arrancando, para cambiar el hostname, crear
    las locales, etc. cosas totalmente inútiles, porque podríamos
    hacerla en el chroot y ya se quedan hechas. De hecho usando
    /opt/opengnsys/chroot como nfsroot, en vez la imagen squashfs,
    el arranque es super-rápido. Luego una vez arrancado Ubuntu
    normalmente lo suyo sería modificar el proceso init para eliminar
    también cosas que se ejecutan innecesarias.
