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>
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