Solución al bug misterioso

Una de las razones por las que separé este blog de la página principal de Quirinux es porque está dirigido a quienes disfrutan del backstage del desarrollo: expertos en GNU/Linux, programación y sistemas en general. Dicho esto, pasemos a la anécdota.

Hoy resolvimos un bug que, aunque parecía un misterio, en realidad no lo era tanto… ¡y ni siquiera sabía que existía! Quirinux ha sido instalado en múltiples entornos, desde escuelas y productoras hasta ordenadores Mac, sin incidentes. Sin embargo, un usuario en particular no lograba iniciar sesión tras la instalación.

El Enigma

Este usuario tuvo muchísima paciencia y hasta me envió un video del problema. Primero pensé en Proxmox, pero resultó que el fallo ocurría en todas las máquinas virtuales: QEMU, VirtualBox… y solo le afectaba a él, un usuario avanzado. Intenté reproducir el error sin éxito hasta que se me ocurrió preguntarle si estaba eligiendo opciones diferentes en Calamares. ¡Eureka! Descubrimos que el problema ocurría cuando se configuraba manualmente la tabla de particiones.

El Origen del Problema

Nadie más había encontrado este bug porque nuestros usuarios suelen seguir el manual y dejar que la instalación se encargue del particionado. Pero al detectar el problema también en máquinas reales, quedó claro que no podía ignorarlo. En lugar de simplemente advertir «No configurar la tabla de particiones manualmente», lo correcto era encontrar una solución real.

La Investigación

Aquí es donde entra en escena Javier Obregón (¡feliz cumpleaños, por cierto! 🎂). Tras varias pruebas, descubrió que el archivo /etc/fstab estaba mal generado. En lugar de una lista completa, solo contenía un par de líneas vacías. Esto apuntaba a un fallo en la instalación con particionado manual.

Recordé que Calamares ejecuta un script basado en otro de Etertics, modificado por mí. Revisándolo, encontré el problema: una línea de código innecesaria que intentaba reemplazar los UUID por etiquetas. Un cambio que en su momento me pareció útil, pero que evidentemente no lo era:

chroot $CHROOT bash -c '
while read -r line; do
if echo "$line" | grep -q "UUID="; then
device=$(echo "$line" | awk "{print \$1}" | sed "s/UUID=//")
label=$(blkid -o value -s LABEL "/dev/disk/by-uuid/\$device")

if [ -n "\$label" ]; then
new_line=$(echo "$line" | sed "s|UUID=\$device|LABEL=\$label|")
sed -i "s|$line|\$new_line|" /etc/fstab
fi
fi
done < /etc/fstab'

La Solución

Simplemente eliminé este fragmento, generé un nuevo paquete de configuración para Calamares (eggs-quirinux-config), lo subí al repositorio y actualicé la ISO de Quirinux.

¿Resultado? El problema del /etc/fstab se resolvió y, con ello, también el bug de inicio de sesión. Gracias a la paciencia y curiosidad de un usuario avanzado, hoy Quirinux es un poco mejor. 😊

Actualización: Los usuarios que instalaron Quirinux con particionado automático no han reportado inconvenientes, por lo que no es necesaria una reinstalación.

Descargar Quirinux estable

 

Updated: 31 de enero de 2025 — 12:14

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *