[[TranslatedPages]] [[PageOutline(2-5,Índice)]] Por ahora se proponen tres maneras distintas: * Utilidad debootstrap con schroot ( !OpenGnsys 1.0 ) * Utilidad live-helper ( !OpenGnsys 2.0) * Instalación limpia de Ubuntu. == !OpenGnsys version 1.0 - Debootstrap, schroot y squashfs - == === Instalación === No realizar el proceso en un sistema en procucción. Se ha testado con éxito en la ubuntu server 32 bits 10.04, 10.04.2 y 10.10 y 11.04 NOTA: el instalador está en "http://www.opengnsys.es/browser/trunk/client/boot-tools/" {{{ mv /opt/opengnsys/tftpboot/ogclient /opt/opengnsys/tftpboot/ogclient-old; svn checkout http://www.opengnsys.es/svn/trunk/client /tmp/opengnsys_installer/opengnsys/client/; svn checkout http://www.opengnsys.es/svn/branches/version2/ /tmp/opengnsys_installer/opengnsys2; find /tmp/opengnsys_installer/ -name .svn -type d -exec rm -fr {} \; 2>/dev/null; /tmp/opengnsys_installer/opengnsys/client/boot-tools/ogClientGeneratorV2.sh; }}} DEBUG en el proceso de instalación: {{{ Grup-pc -> instalar en dispositivo /dev/loop -> NO Continuar sin instalar grub -> yes Congigura el console-data Introduce 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) Could not find /boot/grub/menu.lst file. Would you like /boot/grub/menu.lst generated for you? (y/N) -> Y }}} El 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). /opt/opengnsys/tftpboot/ogclient/ {{{ ./ogvmlinuz (el kernel) ./oginitrd.img (el initrd) ./ogclient.img (el sistema raiz, accesible como disco virtual usando schroot desde el host que lo generó, para ser actualizado) ./ogclient.sqfs (el sistema raiz, comprimido para ser usado por los clientes OpenGnsys) }}} ==== Las fases de la instalación ==== * Fase 1. Instalación en el equipo donde se ejecuta la instalación de software necesario. * 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. * 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. * Fase 4. Se configura el acceso al sistema raiz (ogclient.img) para ser usado con la herramienta schroot -ogClientSchrootConf()- * Fase 5. Se configura o se incluyen los elementos especiales de opengnsys (engine, QTEmbbedbed, pci.ids, browser, ogAdmClient). -ogClient2ndSVN()- * 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ó. * Fase 7. Generación del initrd. * Fase 8. Generación del sistema raiz en sqfs. === Incorporación del fichero .sqfs (proceso instalación de OpenGnsys) en un fichero .img para su posterior modificación === NOTA: este procedimiento se ha comprobado en una ubuntu server 10.04 32bits. {{{ export OGCLIENTBASEDIR=/var/lib/tftpboot/ogclient/; export OGCLIENTFILE=${OGCLIENTBASEDIR}ogclient.img; export OGCLIENTMOUNT=${OGCLIENTBASEDIR}ogclientmount; export OGCLIENTSIZEMB=1900; export OGCLIENTLABEL=ogClient; mkdir -p $OGCLIENTMOUNT; dd if=/dev/zero of=$OGCLIENTFILE bs=1048576 count=$OGCLIENTSIZEMB; DISKLOOP=$(losetup -f); losetup $DISKLOOP $OGCLIENTFILE; echo -e "n\np\n1\n\n\nt\n83\nw" | fdisk $DISKLOOP; losetup -d $DISKLOOP ; PARTLOOP=$(losetup -f); losetup -o 32256 $PARTLOOP $OGCLIENTFILE && mkfs.ext3 -b 4096 -L $OGCLIENTLABEL $PARTLOOP; losetup -d $PARTLOOP ; losetup -d $PARTLOOP ; mount | grep $OGCLIENTMOUNT || mount $OGCLIENTFILE $OGCLIENTMOUNT -o loop,offset=32256; unsquashfs -d /var/lib/tftpboot/ogclient/ogclientmount/ -f /var/lib/tftpboot/ogclient/ogclient.sqfs; umount $OGCLIENTMOUNT; echo "fin"; cp /etc/schroot/schroot.conf /etc/schroot/schroot.conf.`getDateTime` cat << EOF > /etc/schroot/schroot.conf [IMGogclient] type=loopback file=/var/lib/tftpboot/ogclient/ogclient.img description=ogclient ubuntu luc IMGi #priority=1 users=root groups=root root-groups=root mount-options=-o offset=32256 root-users=root #[IMGogclient] #type=loopback #file=/var/lib/tftpboot/ogclient/ogclient.img #description=ogclient ubuntu luc IMGi #priority=1 #users=root #groups=root #root-groups=root #mount-options=-o offset=32256 #root-users=root #[DIRogclient] #type=directory #directory=/var/lib/tftpboot/ogclient/ogclientmount #description=ogclient ubuntu lucid DIR #priority=2 #users=root #groups=root #root-groups=root #root-users=root EOF cp /etc/schroot/mount-defaults /etc/schroot/mount-defaults.`getDateTime` cat << EOF > /etc/schroot/mount-defaults # mount.defaults: static file system information for chroots. # Note that the mount point will be prefixed by the chroot path # (CHROOT_PATH) # # proc /proc proc defaults 0 0 #procbususb /proc/bus/usb usbfs defaults 0 0 #/dev /dev none rw,bind 0 0 /dev/pts /dev/pts none rw,bind 0 0 /dev/shm /dev/shm none rw,bind 0 0 #/home /home none rw,bind 0 0 /tmp /tmp none rw,bind 0 0 EOF }}} == A través de live-helper == TODO Mirar: [wiki:GnSysLive] == Generarlo realizando una instalación limpia de Ubuntu == TODO