Categoría: Desarrollo

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

Penguins’ Eggs: La herramienta detrás de la magia de Quirinux

Al iniciar la ISO live de Quirinux quizás te hayas preguntado por el significado de ese ícono con dos huevos sobre un nido…

Penguins' Eggs Tool, from Piero Prioetti, in distro Linux Quirinux

Si haces clic sobre él, se abrirá la página de Penguins’ Eggs, una herramienta increíble desarrollada por Piero Proietti que ha sido fundamental para el desarrollo de Quirinux. Sin Penguins’ Eggs, instalar y redistribuir nuestro sistema sería una tarea mucho más compleja.

¿Qué es Penguins’ Eggs y cómo funciona?

Penguins’ Eggs es una herramienta de consola diseñada para remasterizar un sistema Linux, creando imágenes en vivo (live ISO) listas para usar en USBs o incluso en entornos de red a través de PXE. Es el alma técnica que nos permite ofrecer una experiencia live tan fluida como la que ves al probar Quirinux antes de instalarlo.

Inspirada en proyectos como Remastersys y Systemback, Penguins’ Eggs sobresale por su versatilidad y simplicidad. Su capacidad para generar imágenes ISO personalizadas no solo es útil para desarrolladores, sino también para usuarios avanzados que deseen hacer un backup de sus sistemas que además guarde todas sus configuraciones de temas, controladores, etc.

Compatibilidad y flexibilidad

Uno de los aspectos más asombrosos de Penguins’ Eggs es su amplia compatibilidad. Funciona en distribuciones basadas en Debian, Ubuntu, Devuan, Arch, Manjaro y sus derivados, y soporta múltiples arquitecturas como amd64, i386 y arm64. Esto significa que también puedes usarla en sistemas ARM como las populares Raspberry Pi.

En el caso de Quirinux, Penguins’ Eggs no solo es el puente que conecta la experiencia live con la instalación, sino también el motor que nos permite redistribuir nuestro sistema con facilidad.

Funciones clave que debes conocer

Penguins’ Eggs incluye varias funcionalidades que vale la pena destacar:

  • Clonación del sistema
    Gracias a la opción –clone, es posible crear una copia exacta del sistema, incluyendo configuraciones, datos de usuario y cuentas. Si quieres mayor seguridad, puedes optar por –cryptedclone, que cifra los datos del usuario con LUKS.
  • Instalación simple y eficiente
    La herramienta genera un sistema en vivo que puedes instalar utilizando el instalador gráfico Calamares o el instalador interno Krill, accesible desde la línea de comandos. ¿Quieres automatizarlo? Usa –unattended para instalaciones desatendidas, ideal en escenarios masivos o personalizados.
  • Personalización avanzada
    Con la función Wardrobe, puedes alternar entre configuraciones del sistema mediante scripts. Esto facilita transformar un entorno minimalista en uno gráfico completo o adaptarlo para servidores.

El corazón de Quirinux

Cuando diseñamos Quirinux, queríamos un sistema fácil de usar, pero que a la vez mantuviera la filosofía de personalización que caracteriza a Linux. Penguins’ Eggs ha sido esencial para lograr este balance. Nos permitió preparar una ISO en vivo funcional, ofrecer una instalación sencilla y garantizar que cada usuario tenga una experiencia única y personalizable.

Así que, la próxima vez que veas ese ícono en el escritorio de la versión live de Quirinux, recuerda que es mucho más que un par de huevos en un nido: es el símbolo de una herramienta poderosa, creada con dedicación por Piero Proietti, que hace posible nuestra distribución.

Para más información sobre Penguins’ Eggs, visita su sitio oficial. Y, por supuesto, sigue disfrutando de Quirinux, un sistema que no existiría sin las contribuciones de la comunidad.

Updated: 19 de enero de 2025 — 19:34