wiki:InitrdClienteSecondFileSystem

Version 5 (modified by gabriel, 9 years ago) (diff)

--

Objetivo

Disponer de un cliente, que sea capaz de inicializarse desde cualquier dispositivo removible (usb, cd, dvd), una partición cache, o un espacio no particionado (¿¿¿???), y por supuesto por red.

Descripción

  1. El "cliente" se compone en su primera etapa de un kernel ubuntu(personalmente prefiero versión server), y un initrd. (actualmente basado en el del instalador de ubuntu).
  2. Estos elementos se cargan mediante un gestor de arranque, en el caso de cd-dvd (isonlinux), en el caso de partición-cache (offline-grub,grub2-, online-pxe-).
  3. El inicializador de opengnsys (ubicado en el 1ndFS-initrd-), detectará donde se ubica el fichero que contiene el 2ndFS y ejecutará el load2ndFS, que ampliará la capacidad del 1ndFS.

Resumiendo tres ficheros: kernel, initrd(1ndFS), y el og2ndFS.

Estos tres ficheros, nos proporciona la capacidad de ser enviados o distribuidos a la cache de los clientes por torrent, o multicast.

Asi, cualquier dispositivo (usb,cd-dvd,particion rescate) tendrá estos tres elementos más un directorio con las imagenes que se quisiera tener.

¿Que és el og2ndFS?

Es un Sistema Operativo generado por debootstrap almacenado en un fichero linux. Puede estar basado en el mismo kernel que el initrd(basado en instalador ubuntu), o en el kernel de nuestro equipo.

Para ello

 source ogFSHlnk-generatorV2.sh; ogFSHCreate [jaunty,karmic] 

Si después de su creación queremos añadirle más software llamamos a la función ogFSHMount (chroot hacia el file-loop) nos pedirá el login del cliente, que por defecto es "og", exportamos el proxy si fuese necesario e instalmos con apt. exit y desmontamos con ogFSHUnmount.

A testear

Todo esto está probado, solo falta testear:

  1. la conectividad con los servicios opengnsys, y el browser (detectado algún fallo leve cuando el ogADM envia un /bin/sh).
  2. así como ofrecer servicios de red desde el propio "cliente".

¿Como puedo testear el og2ndFS desde mi opengnsys?

Una vez que tienes generado el og2ndFS, debes copiar el load2ndfs.sh al etc/init del cliente. Así cuando un cliente, desde la pestaña shell del browser ejecuta load2ndfs.sh en un 1-3 segundos dispondrá de toda la capacidad del og2ndFS (alterará el $PATH, y usará el /lib /usr del og2ndFS).

Ya tengo el og2ndFS y el initrd, ¿como consigo hacer dispositivos (cd,usb,cache) arrancables?:

source ogFSHlnk-generatorV2.sh; CrearISO

Nos creará una iso, con los tres archivos comentados: kernel, initrd y og2ndfs. NOTA: el actual initrd (branches/offline/client/boot/initrd-generator), no incluye la detecctión y utilización del 2ndfs, pero si en el branches/ogFSHlnk/initramfs-tools-OG. Aunque el procedimiento es bien sencillo DEV=blkid -t LABEL=ogClient.

¿Por qué no utilizar unionfs y squasfs?:

Pues sí, pero si esto es simple y funciona mejor. Aunque se deja funciones para utilizar unionfs.

¿Está completamente testeado?:

Aun falta testearlo a fondo.

¿Cual es mi propuesta?:

Tener los tres archivos en cache, y utilizar esta no sólo para las imagenes sino también para el SO "cliente" y desde la web, (gestor de arranque remoto), indicar que arranque desde la cache, en el caso de que no tenga que realice un arranque por pxe. Por supuesto, el cliente detectará si tiene que actualizarse, y si el caso, que proceda por torrent, o multicast.

¿Por que no hace el load2ndfs.sh un chroot?:

Inicialmente load2ndfs esta concebido para añadir capacidad al actual cliente-browser. Quizás si se cambia la filosofía e iniciamos el browser dentro del og2ndFS.???

2) Gestor de arranque remoto. Nos facilita tener un control previo, definir un determinado arranque por defecto, mostrar un menú. Definir el arranque de multiples clientes (basados en ramfs, o nfs). Gestión de menús y sus correspondientes elemetos. Un ejemplo de menú sería arrancar windows, arrancar linux. (solución temporal al hdboot).

En la rama, viene los ficheros y la ubicación necesaria, para integrarlo en la web. Sería interesante que se testeara y ver las posiblidad que puede ofrecer un gestor de arranque remoto a opengnsys.

3) Gestor de startpages. Definir la realización de operaciones, basadas en aulas, grupodeordenadores, con un asistente.Sería interesante que se testeara y ver las posiblidad que puede ofrecer un asistente.

Tanto para el gestor de arranque remoto, y el gestor de starpages, hay que realizar un par de modificaciones sql. (el ficheró esta en la rama indicada).

Gestor de Arranque Remoto.

og1ndFS - Primer sistema de Archivos Unico para multi-arranque (cd-dvd/usb/cache/nfs)

og2ndFS - Segundo Sistema de Archivos Único para multi- arranque.

Gestor de Páginas de Inicio o starpages.

Estado Actual

branch ogFSHlnk: (tarea) Proporcionar API al cliente para ampliar su sofware al instante.

  • (ok) Capacidad similar squashfs-unionfs para el 1er FileSystem? (initrd).
  • Herramientas busybox
  • requisito hardware del cliente: 50 MB de RAM.
  • (ok) Generación del 2º FileSystem? con debootstrap, incluyendo la compilación de las herramientas en ToolsGNU.c del engine

-- pendiente opción debootstrap desde cd instalación ububu

  • Modificacion del oginit para que utilice este 2º FileSystem?
  • (ok) en remoto

-- pendiente en local.

  • (ok) en remoto

-- Pendiente en local(particion CACHE, usb, cdrom) con imagenes virtuales.

  • (OK) Ampliación del 2º FileSystem? con apt-get para el administrador.