Servir Squashfs por http

27 views
Skip to first unread message

Rubén Gómez Antolí

unread,
Jan 26, 2014, 8:30:33 AM1/26/14
to tcos-u...@googlegroups.com
Hola:

Aunque relacionado con el problema anterior que tenía, prefiero abrir
hilo nuevo ya que el otro versaba más de Dnsmasq.

Os cuento, ya consigo que Dnsmasq asigne IP a todos los clientes
(incluidos algunos que he preferido que no arranquen por iPXE), se sirve
el núcleo y el initramfs por http, pero, a la hora de servir el archivo
Squashfs se sigue enviando por Tftp.

El caso es: bien por lentitud de la red, bien por tamaño de archivo, el
archivo no llega. (Me decanto por la primera opción ya que el archivo se
sirve bien en red local.)

He probado a añadir una opción a la línea de arranque del núcleo pero no
hay suerte. Ha quedado así:

---------- Opción de arranque en fichero «default» ---------
label tcos
MENU DEFAULT
MENU LABEL ^TCOS default ( RAM > 40 Mb)
KERNEL vmlinuz-2.6.32-5-486
APPEND ramdisk_size=65536 initrd=initramfs-2.6.32-5-486
root=/dev/ram0 boot=tcos quiet
fetch=http://192.168.2.1/tcos/usr-2.6.32-5-486.squashfs
---------- Fin de la opción de arranque ---------------

Como por aquí no iba he probado distintas opciones, incluyendo el envío
directo del núcleo y el initramfs desde iPXE. Sigue sin funcionar.

He visto que hay una opción en base.conf para squashfs por http:


# HTTPFS is a fuse http filesystem to mount usr.squashfs
TCOS_HTTPFS=

Dado que estoy en remoto no me gustaría hacer «pruebas» con las imágenes
y mañana por la mañana encontrar a los terminales sin capacidad de arranque.

Por eso pregunto si es necesario activar esa opción para que el squashfs
se sirva por Http o, por el contrario, no es necesaria.

Si la respuesta a esa pregunta es negativa, la otra pregunta es: ¿porqué
no funciona la opción «fetch» en el núcleo?

Gracias.

Salud y Revolución.

Lobo.
--
Libertad es poder elegir en cualquier momento. Ahora yo elijo GNU/Linux,
para no atar mis manos con las cadenas del soft propietario.
Porque la libertad no es tu derecho, es tu responsabilidad.
http://www.mucharuina.com
---------
Desde El Ejido, en Almería, usuario registrado Linux #294013
http://www.counter.li.org

Mario Izquierdo

unread,
Jan 26, 2014, 10:34:00 AM1/26/14
to tcos-u...@googlegroups.com
Buenas

Creo que la variable a configurar en tcos.conf es SQUASHFS_MODE=http

http://tcosproject.org/cgit/tcos.git/tree/scripts/tcos-premount/36squashfs-methods

Por defecto se usa el puerto 8080 de un servidor web cuya IP/nombre es
la variable nfs-server (por defecto la IP del servidor de TCOS) así que
el cmdline podría ser...


APPEND ramdisk_size=65536 initrd=initramfs-2.6.32-5-486
root=/dev/ram0 boot=tcos quiet nfs-server=tcos.server.com

(tcos.server.com es el dominio o la IP del servidor HTTP)

El puerto no es configurable a no ser que edites el
archivo /usr/share/tcos/scripts/tcos-premount/36squashfs-methods del
servidor donde se generan las imágenes.


La opción del cmdline "fetch" no es estandard de Linux sino del sistema
de construcción initramfs (creo)


Saludos
--
Mario Izquierdo <mario...@gmail.com>

Rubén Gómez Antolí

unread,
Jan 26, 2014, 2:29:26 PM1/26/14
to tcos-u...@googlegroups.com
Hola:

El 26/01/14 16:34, Mario Izquierdo escribió:
> El dom, 26-01-2014 a las 14:30 +0100, Rubén Gómez Antolí escribió:
>> [...]

>> Por eso pregunto si es necesario activar esa opción para que el squashfs
>> se sirva por Http o, por el contrario, no es necesaria.
>>
>> Si la respuesta a esa pregunta es negativa, la otra pregunta es: ¿porqué
>> no funciona la opción «fetch» en el núcleo?
>>
>
>
> Buenas
>
> Creo que la variable a configurar en tcos.conf es SQUASHFS_MODE=http
>
> http://tcosproject.org/cgit/tcos.git/tree/scripts/tcos-premount/36squashfs-methods
>
> Por defecto se usa el puerto 8080 de un servidor web cuya IP/nombre es
> la variable nfs-server (por defecto la IP del servidor de TCOS) así que
> el cmdline podría ser...
>
>
> APPEND ramdisk_size=65536 initrd=initramfs-2.6.32-5-486
> root=/dev/ram0 boot=tcos quiet nfs-server=tcos.server.com
>
> (tcos.server.com es el dominio o la IP del servidor HTTP)
>
> El puerto no es configurable a no ser que edites el
> archivo /usr/share/tcos/scripts/tcos-premount/36squashfs-methods del
> servidor donde se generan las imágenes.

Gracias Mario, me queda claro que sin crear imágenes nuevas no puedo
cambiarlo. Mañana haré la prueba.

> La opción del cmdline "fetch" no es estandard de Linux sino del sistema
> de construcción initramfs (creo)

Aja, y por eso no funciona. Bueno, al menos una duda resuelta porque me
estaba mareando bastante bien.

> Saludos

Gracias de nuevo, contaré como queda la cosa.

¡Ah! Por cierto, al final parece que el Squashfs si se ha servido por
Tftp, pero ha tardado la friolera de dos horas. Estoy mirando como
mejorar la velocidad de OpenVPN, mi impresión es que va bastante más
lenta que ssh, por ejemplo.

Intentaré escribir un resumen de la peripecia cuando la termine por si
le es de utilidad a alguien.

Rubén Gómez Antolí

unread,
Jan 29, 2014, 1:36:10 PM1/29/14
to tcos-u...@googlegroups.com
Hola a todos:

El 26/01/14 16:34, Mario Izquierdo escribió:
> El dom, 26-01-2014 a las 14:30 +0100, Rubén Gómez Antolí escribió:
>> [...]

>>
>> He visto que hay una opción en base.conf para squashfs por http:
>>
>>
>> # HTTPFS is a fuse http filesystem to mount usr.squashfs
>> TCOS_HTTPFS=
>>
>> [...]

>> Por eso pregunto si es necesario activar esa opción para que el squashfs
>> se sirva por Http o, por el contrario, no es necesaria.

>> [...]

> Buenas
>
> Creo que la variable a configurar en tcos.conf es SQUASHFS_MODE=http
>
> http://tcosproject.org/cgit/tcos.git/tree/scripts/tcos-premount/36squashfs-methods
>
> Por defecto se usa el puerto 8080 de un servidor web cuya IP/nombre es
> la variable nfs-server (por defecto la IP del servidor de TCOS) así que
> el cmdline podría ser...
>
>
> APPEND ramdisk_size=65536 initrd=initramfs-2.6.32-5-486
> root=/dev/ram0 boot=tcos quiet nfs-server=tcos.server.com
>
> (tcos.server.com es el dominio o la IP del servidor HTTP)
>
> El puerto no es configurable a no ser que edites el
> archivo /usr/share/tcos/scripts/tcos-premount/36squashfs-methods del
> servidor donde se generan las imágenes.

Pues algo me estoy perdiendo porque no consigo que el Squashfs se sirva
por Http.

- He cambiado el puerto 8080 del archivo que indicas tanto en el sistema
raíz como en el chroot.

- He añadido la variable SQUASHFS_MODE=http en los dos tcos.conf que
viven bajo etc.

- He modificado el archivo «default» de pxelinux.cfg y, en el caso de
arranque por iPXE en el archivo que indica el núcleo con sus opciones, y
me estoy refiriendo a la inclusión de «nfs-server».

Después he reconstruido las imágenes sin suerte, entonces he pasado a
probar indicando la bandera «-squash=http» en la línea de comandos,
tampoco ha funcionado.

En concreto la línea completa que he utilizado ha sido esta:

sudo tcos-buildchroot --update-images --gentcos="-tftp -size -squash=http"

Así que ando un poco perdido.

Agradeceré cualquier ayuda.

Anthony Takata

unread,
Dec 13, 2014, 2:07:53 AM12/13/14
to tcos-u...@googlegroups.com, lo...@mucharuina.com
For this the only thing I could do is disable external squashfs in debug settings. This combined user squasfs into initramfs

This allows it to download along with the initramfs file and not need tftp loading.
Reply all
Reply to author
Forward
0 new messages