Resumen/X Linux (distro)
Construir el ISO
Esta guía explica cómo construir el ISO en vivo de X desde este repositorio con
xbuild.sh y resume los scripts separados de construcción de rootfs para WSL.
Prerrequisitos
- Un entorno Linux con las herramientas de ArchISO disponibles (Arch Linux o una distribución compatible).
- Acceso
sudo. - El paquete
archiso. - Suficiente espacio en disco (varios GB) y acceso a red para descargar paquetes.
Instala la dependencia:
sudo pacman -S archiso
Comando de construcción
Ejecuta desde la raíz del repositorio:
./xbuild.sh
Qué hace xbuild.sh
- Comprueba que
pacman.confyprofiledef.shexisten en el directorio actual. - Intenta un desmontaje lazy de los puntos de montaje obsoletos bajo
work/x86_64/airootfs(evita errores de "target is busy" de ejecuciones anteriores). - Elimina los directorios previos
work/yout/. - Ejecuta
sudo mkarchiso -C pacman.conf -v -w ./work -o ./out ., volcando toda la salida a un archivo de log con marca de tiempo. - Verifica que se haya producido al menos un ISO e imprime la ruta y el tamaño del artefacto; si no, imprime un mensaje y sale con estado distinto de cero.
Existe un equivalente minimalista en una línea, x.sh, que ejecuta el mismo
mkarchiso pero sin los pasos de limpieza ni verificación. xbuild.sh es el
punto de entrada recomendado.
Salidas
- Artefacto ISO:
out/x-YYYY.MM.DD-x86_64.iso(la fecha de versión viene deprofiledef.sh). - Log de construcción:
build-YYYYMMDD-HHMM.logen la raíz del repositorio.
Tanto work/ como out/ se recrean en cada construcción y están en
.gitignore, al igual que los archivos build-*.log.
Datos del perfil
profiledef.sh define los metadatos del ISO que usa mkarchiso:
iso_name:xiso_version:YYYY.MM.DD(basado en la fecha)iso_label:x_YYYYMMiso_publisher:Xscriptor <https://xscriptor.io/x>iso_application:X Live/Rescue DVD- Modos de arranque:
bios.syslinuxyuefi.grub - Imagen del sistema de archivos raíz: squashfs, comprimida con xz
- Permisos de archivo para ficheros sensibles/del entorno en vivo (por
ejemplo
/etc/shadow, los scripts deairootfs/rooty las utilidades de/usr/local/bin, incluidaxinstall).
Paquetes y repositorios usados por la construcción
-
packages.x86_64es el manifiesto completo de paquetes del ISO en vivo. Incluye el sistema base más tooling de rescate/en vivo, fuentes, un navegador (Firefox), los paquetes de Xx-releaseyx-dev(del repositorio[x]) ygum(usado por la interfaz del instalador de texto). -
bootstrap_packages.x86_64es el conjunto mínimo (base,arch-install-scripts) que archiso usa para el root de arranque. -
pacman.confañade el repositorio propio:[x] SigLevel = Optional TrustAll Server = https://xlnux.github.io/x-repo/repo/x86_64SigLevel = Optional TrustAlles una conveniencia de desarrollo y debería revisarse para flujos de release endurecidos. -
El payload de aprovisionamiento (
x-scripts) se incluye offline dentro del ISO enairootfs/root/x-installer/packages/x-scripts-*.pkg.tar.zst, de modo que el instalador no necesita descargarlo de la red durante la instalación.
Solución de problemas
- Si no se genera ningún ISO, inspecciona primero el log de construcción
(
build-*.log). - Causas de fallo habituales:
- espacio en disco insuficiente;
- errores en la lógica de personalización del perfil;
- configuración de perfil inválida en
profiledef.sh; - montajes obsoletos bajo
work/x86_64/airootfs(el script intenta limpiarlos; si hace falta, desmonta consudo umount -R work/x86_64/airootfs).
Construcciones WSL (scripts separados)
Los tarballs de sistema de archivos raíz para WSL se construyen con sus
propios scripts, no con xbuild.sh:
| Script | Salida |
|---|---|
sudo ./xbuildwsl.sh | out-wsl/x-YYYY.MM.DD.tar.gz (gzip) |
sudo ./xbuildwslc.sh | out-wsl/x-YYYY.MM.DD.tar.zst (zstd; requiere zstd) |
Ambos scripts arrancan un rootfs bajo work-wsl/rootfs con pacstrap,
copian el overlay de airootfs, aplican los permisos declarados en
profiledef.sh, ejecutan el paso de personalización en arch-chroot, limpian
la caché de pacman y crean el tarball. Requieren un entorno tipo Arch con
pacstrap/arch-chroot y sudo.
Notas:
- WSL no puede importar archivos
.tar.zstdirectamente; descomprime primero (zstd -d) para obtener un.tary ejecuta despuéswsl --import. xbuildwslc.shexcluye los scripts auxiliares solo-en-vivo (.automated_script.sh,x-postinstall.sh) del archivo.- Consulta
docs/build-wsl.mdpara el flujo WSL canónico yWSL_GUIDE.mdpara un recorrido más largo y antiguo.