gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1373Shell 116Rust 74Markdown 641915 Definiciones

fix(armador): el fichero unico que no entra en RAM ya no se lleva puesto el USB

Los dos medios de una variante son INDEPENDIENTES y el primero tiene un techo fisico que el
segundo no tiene: el autoextraible carga el instalador ENTERO en RAM —ahi viven a la vez el
initramfs comprimido y su contenido— asi que se niega por encima del 40 % de la memoria. Con el
firmware adentro (1047 MiB) el rootfs de mirada pasa de 3 GiB y esa negativa es CORRECTA.

Lo que estaba mal era que su `exit 1` abortaba el bucle ANTES de armar la imagen USB, que no
tiene ese limite porque corre desde el propio medio. Medido hoy: el hub tiene 7,7 GiB de RAM ⇒ el
tope son ~3,1, y el medio de mirada no entra. El resultado habria sido «el armado fallo» sin
ningun medio, teniendo el que importa a un paso.

Ahora el bloque del fichero unico va en un subshell —su exit muere ahi—, se avisa con el motivo y
se limpia su arbol local. El USB sigue siendo fatal: ese es el medio que alguien esta esperando.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

f93f039761531467248f34ae65945e73b1feaa9e · por sergio · (hace 7 d) · padre 43461ce18 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +15 −0

diff --git a/scripts/instalador-variantes.sh b/scripts/instalador-variantes.sh
index 2eee86e0..38e4d86a 100755
--- a/scripts/instalador-variantes.sh
+++ b/scripts/instalador-variantes.sh
@@ -237,6 +237,17 @@ for v in $VARIANTES; do
     echo "════ $v ════════════════════════════════════════════════════════════════════════"
 
   if echo " $(medios_de "$v") " | grep -q ' run '; then
+    # ⚠ **El fichero único y el USB son DOS MEDIOS INDEPENDIENTES, y el primero tiene un techo
+    # físico que el segundo no tiene.** El autoextraíble carga el instalador ENTERO en RAM —en RAM
+    # viven a la vez el initramfs comprimido y su contenido— así que su generador se niega por
+    # encima del 40 % de la memoria. Con el firmware adentro (1047 MiB) el rootfs pasa de 3 GiB y
+    # esa negativa es CORRECTA; lo que estaba mal era que `exit 1` se llevaba puesto el USB, que no
+    # tiene ese límite porque corre desde el propio medio. Medido el 2026-10-15: el hub tiene
+    # 7,7 GiB de RAM ⇒ el tope son ~3,1, y el medio de mirada no entra.
+    #
+    # Va en un subshell para que su `exit 1` muera ahí y no en el bucle. Y el USB sigue siendo
+    # fatal: ése es el medio que alguien está esperando.
+    (
     echo "  ── el fichero que se baja (.sh) — perfiles: $(perfiles_de "$v" run)"
     compone "$v" run
     ROOTFS="$L" KERNEL="$KERNEL" SALIDA="$SALIDA/paquete-$v" ./scripts/instalador-paquete.sh \
@@ -247,6 +258,10 @@ for v in $VARIANTES; do
         echo "     ✗ falló el autoextraíble — ver work/.variante-$v-run.log" >&2; tail -6 "work/.variante-$v-run.log" >&2; exit 1; }
     echo "     $SALIDA/takana-instalador-$v.sh  $(( $(wc -c < "$SALIDA/takana-instalador-$v.sh") / 1048576 )) MiB"
     rm -rf "$L"
+    ) || {
+        echo "     ⚠ el fichero único no se pudo armar (lo de arriba dice por qué): SIGO con el USB" >&2
+        rm -rf "$LOCAL/$v-run" 2>/dev/null || sudo rm -rf "$LOCAL/$v-run" 2>/dev/null || true
+    }
   else
     echo "  ── sin fichero único: este rootfs no entra en RAM en una máquina normal (sólo USB)"
   fi