Changes between Initial Version and Version 1 of ClienteInitrdDSGenerarlo/en


Ignore:
Timestamp:
Feb 27, 2012, 4:23:21 PM (12 years ago)
Author:
paqui
Comment:

1st version

Legend:

Unmodified
Added
Removed
Modified
  • ClienteInitrdDSGenerarlo/en

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