Changes between Initial Version and Version 1 of ClienteInitrdDSGenerarloV1.0.2


Ignore:
Timestamp:
Sep 13, 2011, 2:45:24 PM (14 years ago)
Author:
adv
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ClienteInitrdDSGenerarloV1.0.2

    v1 v1  
     1[[TOC(heading=Índice)]]
     2
     3Por ahora se proponen tres maneras distintas:
     4 * Utilidad debootstrap con schroot ( !OpenGnsys 1.0 )
     5 * Utilidad live-helper ( !OpenGnsys 2.0)
     6 * Instalación limpia de Ubuntu.
     7
     8
     9== !OpenGnsys version 1.0  -  Debootstrap, schroot y squashfs -  ==
     10
     11=== Instalación ===
     12No realizar el proceso en un sistema en procucción.
     13Se ha testado con éxito en la ubuntu server 32 bits 10.04, 10.04.2 y 10.10 y 11.04
     14
     15NOTA:  el instalador está en "http://www.opengnsys.es/browser/trunk/client/boot-tools/"
     16{{{
     17mv /opt/opengnsys/tftpboot/ogclient /opt/opengnsys/tftpboot/ogclient-old;
     18svn checkout http://www.opengnsys.es/svn/trunk/client /tmp/opengnsys_installer/opengnsys/client/;
     19svn checkout http://www.opengnsys.es/svn/branches/version2/  /tmp/opengnsys_installer/opengnsys2;
     20find /tmp/opengnsys_installer/ -name .svn -type d -exec rm -fr {} \; 2>/dev/null;
     21/tmp/opengnsys_installer/opengnsys/client/boot-tools/ogClientGeneratorV2.sh;
     22}}}
     23
     24DEBUG en el proceso de instalación:
     25{{{
     26Grup-pc -> instalar en dispositivo /dev/loop  ->  NO
     27Continuar sin instalar grub  -> yes
     28Congigura el console-data
     29Introduce la clave pub de nuestro servidor(ejecutor del instalador) en el cliente. En el caso de que ya exista un .pub nos pregunta si generar uno nuevo o mantener (N)
     30Could not find /boot/grub/menu.lst file. Would you like /boot/grub/menu.lst generated for you? (y/N)  ->   Y
     31
     32}}}
     33
     34
     35El proceso que se ha indicado a continuación, genera los elementos del cliente OpenGnsys, basados en la versión de ubuntu que tengamos instalados (mismo kernel y distribución).
     36
     37/opt/opengnsys/tftpboot/ogclient/
     38 {{{
     39./ogvmlinuz   (el kernel)
     40./oginitrd.img  (el initrd)
     41./ogclient.img   (el sistema raiz, accesible como disco virtual usando schroot desde el host que lo generó, para ser actualizado)
     42./ogclient.sqfs  (el sistema raiz, comprimido para ser usado por los clientes OpenGnsys)
     43}}}
     44
     45
     46==== Las fases de la instalación ====
     47 * Fase 1. Instalación en el equipo donde se ejecuta la instalación de software necesario.
     48 * Fase 2. Asignación de valores, como la versión del kernel, basados en los datos del S.O que ejecuta el instalador, que serán utilizados para generar el cliente.
     49 * Fase 3. Creación del sistema raiz (ogclient.img). Primero se crea un disco duro virtual, y se particiona -ogCleint2nFile()-. En la primera partición se genera un sistema operativo con la herramienta deboobstrap -ogClient2ndFs()-, con parametros basados en la fase2.
     50 * Fase 4. Se configura el acceso al sistema raiz (ogclient.img) para ser usado con la herramienta schroot  -ogClientSchrootConf()-
     51 * Fase 5. Se configura o se incluyen los elementos especiales de opengnsys (engine, QTEmbbedbed, pci.ids, browser, ogAdmClient).   -ogClient2ndSVN()-
     52 * Fase 6. Ampliación del sistema raiz -- instalación de software con apt, compilación de algunas herramientas, importación de la clave ssh desde el SO que lo generó.
     53 * Fase 7. Generación del initrd.
     54 * Fase 8. Generación del sistema raiz en sqfs.
     55
     56=== Incorporación del fichero .sqfs (proceso instalación de OpenGnsys) en un fichero .img para su posterior modificación ===
     57NOTA: este subapartado no está terminado de documentar
     58
     59NOTA: este procedimiento se ha comprobado en una ubuntu server 10.04 32bits.
     60
     61{{{
     62export OGCLIENTBASEDIR=/var/lib/tftpboot/ogclient/;
     63export OGCLIENTFILE=${OGCLIENTBASEDIR}ogclient.img;
     64export OGCLIENTMOUNT=${OGCLIENTBASEDIR}ogclientmount;
     65export OGCLIENTSIZEMB=1900;
     66export OGCLIENTLABEL=ogClient;
     67
     68mkdir -p $OGCLIENTMOUNT;
     69dd if=/dev/zero of=$OGCLIENTFILE bs=1048576 count=$OGCLIENTSIZEMB;
     70DISKLOOP=$(losetup -f);
     71losetup $DISKLOOP $OGCLIENTFILE;
     72echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk $DISKLOOP;
     73losetup -d $DISKLOOP ;
     74PARTLOOP=$(losetup -f);
     75losetup -o 32256 $PARTLOOP $OGCLIENTFILE && mkfs.ext3 -b 4096 -L $OGCLIENTLABEL $PARTLOOP;
     76losetup -d $PARTLOOP ;
     77losetup -d $PARTLOOP ;
     78
     79mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256;
     80
     81unsquashfs  -d /opt/opengnsys/tftpboot/ogclient/ogclientmount/ -f /opt/opengnsys/tftpboot/ogclient/ogclient.sqfs ;
     82umount $OGCLIENTMOUNT;
     83echo "fin";
     84
     85
     86
     87cp /etc/schroot/schroot.conf /etc/schroot/schroot.conf.`getDateTime`
     88cat << EOF > /etc/schroot/schroot.conf
     89[IMGogclient]
     90type=loopback
     91file=/var/lib/tftpboot/ogclient/ogclient.img
     92description=ogclient ubuntu luc IMGi
     93#priority=1
     94users=root
     95groups=root
     96root-groups=root
     97mount-options=-o offset=32256
     98root-users=root
     99#[IMGogclient]
     100#type=loopback
     101#file=/var/lib/tftpboot/ogclient/ogclient.img
     102#description=ogclient ubuntu luc IMGi
     103#priority=1
     104#users=root
     105#groups=root
     106#root-groups=root
     107#mount-options=-o offset=32256
     108#root-users=root
     109#[DIRogclient]
     110#type=directory
     111#directory=/var/lib/tftpboot/ogclient/ogclientmount
     112#description=ogclient ubuntu lucid DIR
     113#priority=2
     114#users=root
     115#groups=root
     116#root-groups=root
     117#root-users=root
     118EOF
     119cp /etc/schroot/mount-defaults /etc/schroot/mount-defaults.`getDateTime`
     120cat << EOF > /etc/schroot/mount-defaults
     121# mount.defaults: static file system information for chroots.
     122# Note that the mount point will be prefixed by the chroot path
     123# (CHROOT_PATH)
     124#
     125# <file system> <mount point>   <type>  <options>       <dump>  <pass>
     126proc            /proc           proc    defaults        0       0
     127#procbususb      /proc/bus/usb   usbfs   defaults        0       0
     128#/dev            /dev            none    rw,bind         0       0
     129/dev/pts        /dev/pts        none    rw,bind         0       0
     130/dev/shm        /dev/shm        none    rw,bind         0       0
     131#/home          /home           none    rw,bind         0       0
     132/tmp            /tmp            none    rw,bind         0       0                                                               
     133EOF
     134
     135
     136}}}
     137
     138== A través de live-helper ==
     139
     140TODO
     141
     142Mirar: [wiki:GnSysLive]
     143
     144== Generarlo realizando una instalación limpia de Ubuntu ==
     145
     146TODO