tawasuyu

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 1562Shell 203Rust 109Markdown 993728 Sutichaykuna

fix(instalador): instalar al lado se lleva el hueco entero, no el minimo que hace falta

Al crear la particion en el espacio sin asignar se usaba lo que hace falta para
que entre el sistema, con un piso de dos gigas. Sobre un disco con doce gigas
libres salia una particion de dos, y sobre uno con quinientos sesenta y siete
tambien.

Lo que lo vuelve grave es que la pantalla ya habia prometido el hueco entero:
decia «el sistema va en el espacio sin usar, quinientos sesenta y siete gigas» y
entregaba dos. Un instalador que promete una cosa y hace otra es peor que uno que
promete poco.

Quien dice «instala en mi espacio libre» quiere su espacio libre. Ahora se lleva
todo, recortado a multiplo de mebibyte para no dejar una cola de sectores
sueltos al final.

El banco lo mide: exige que la particion nueva ocupe al menos el noventa por
ciento del hueco que habia. Sin eso una particion del minimo pasaba la prueba
igual —no toco nada, aparecio una nueva, las dos cosas ciertas— y dejaba una
instalacion inservible.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

2c7122c520b008d4ab0079737d0f3f81c179c854 · ruwaq sergio · (20 p'unchaw ñawpaq) · tayta 18893cc64 · kay commitpi sach'ata qhaway

Semántico sayk'uy

Mana ima sutichaypas t'ikrakurqanchu: qillqalla, yachachiylla utaq willaylla t'ikrakurqan.

1 qillqakuna · +12 −2

diff --git a/scripts/takana-install-partition.sh b/scripts/takana-install-partition.sh
index ed510bb2..5c16148e 100755
--- a/scripts/takana-install-partition.sh
+++ b/scripts/takana-install-partition.sh
@@ -701,11 +701,21 @@ crear_en_hueco() {
     [ "$_ch_libre_mib" -ge "$_ch_mib" ] || {
         echo "takana-install-partition: el hueco da ${_ch_libre_mib} MiB y hacen falta ${_ch_mib} MiB." >&2
         echo "                          Nada que hacer sin encoger algo, y encoger pide otro medio." >&2; return 1; }
-    _ch_size=$(( _ch_mib * 2048 ))
+    # **El hueco ENTERO, no el mínimo.** `$_ch_mib` es lo que hace falta para que entre el sistema;
+    # usar eso deja una raíz del tamaño justo y el resto del hueco sin asignar, que no le sirve a
+    # nadie. Quien dice «instalá en mi espacio libre» quiere su espacio libre: medido el 2026-10-02
+    # sobre un disco con 12 GiB sin asignar, la partición salía de 2 GiB —el mínimo— y la pantalla
+    # ya había prometido los 12. Un instalador que promete una cosa y hace otra es peor que uno que
+    # promete poco.
+    #
+    # Se recorta a múltiplo de MiB para no dejar una cola de sectores sueltos al final.
+    _ch_size=$(( (_ch_sect / 2048) * 2048 ))
+    _ch_usa_mib=$(( _ch_size / 2048 ))
     if [ -z "$ASSUME_YES" ] && [ -t 0 ]; then
-        printf "    voy a AÑADIR una partición de %s MiB a la tabla de %s (las existentes no se tocan) [escribí si] " "$_ch_mib" "$_ch_disco" >&2
+        printf "    voy a AÑADIR una partición de %s MiB a la tabla de %s (las existentes no se tocan) [escribí si] " "$_ch_usa_mib" "$_ch_disco" >&2
         read -r _ch_r; [ "$_ch_r" = "si" ] || { echo "    cancelado." >&2; return 1; }
     fi
+    echo "    la partición nueva se lleva el hueco entero: ${_ch_usa_mib} MiB" >&2
     # La lista de ANTES, para saber después cuál es la nueva por DIFERENCIA y no por su nombre.
     # ⚠ El primer intento buscaba la línea por `start=<sector>` y nunca la encontraba: `sfdisk -d`
     # **alinea los campos con espacios** (`start=     3614720`), así que el patrón sin espacios no