#!/usr/bin/env bash set -euo pipefail # ========================================== # EspOS OpenRC RootFS Builder # Debian 13 Trixie + EspOS unstable # # Genera: # espos-openrc-rootfs.tar.xz # # No incluye: # - live user # - escritorio # - instalador # - configuración ISO # ========================================== ARCH="amd64" DEBIAN_SUITE="trixie" DEBIAN_MIRROR="http://deb.debian.org/debian" ESPOS_REPO="https://repo.elordenador.org" ESPOS_SUITE="espos-unstable" ROOTFS="$(pwd)/rootfs" OUTPUT="espos-openrc-rootfs.tar.xz" # Paquete keyring generado previamente KEYRING_PACKAGE="espos-archive-keyring" # Nombre del keyring instalado por el paquete KEYRING_PATH="/usr/share/keyrings/espos-archive-keyring.gpg" BASE_PACKAGES=" bash coreutils sudo ca-certificates locales tzdata curl wget openssh-server openrc dbus elogind " ESPOS_PACKAGES=" base-files " cleanup() { echo "[+] Desmontando sistemas virtuales" umount -lf "$ROOTFS/dev/pts" 2>/dev/null || true umount -lf "$ROOTFS/dev" 2>/dev/null || true umount -lf "$ROOTFS/proc" 2>/dev/null || true umount -lf "$ROOTFS/sys" 2>/dev/null || true } trap cleanup EXIT echo "[+] Eliminando rootfs anterior" rm -rf "$ROOTFS" echo "[+] Creando Debian ${DEBIAN_SUITE}" debootstrap \ --arch="$ARCH" \ "$DEBIAN_SUITE" \ "$ROOTFS" \ "$DEBIAN_MIRROR" echo "[+] Copiando resolv.conf" cp /etc/resolv.conf "$ROOTFS/etc/resolv.conf" echo "[+] Montando pseudo filesystems" mount --bind /dev "$ROOTFS/dev" mount --bind /dev/pts "$ROOTFS/dev/pts" mount -t proc proc "$ROOTFS/proc" mount -t sysfs sys "$ROOTFS/sys" echo "[+] Preparando repo EspOS temporal" cat > "$ROOTFS/etc/apt/sources.list.d/espos.list" < "$ROOTFS/etc/apt/sources.list.d/espos.list" </dev/null || true echo "[+] Configurando hostname" echo "espos" > "$ROOTFS/etc/hostname" echo "[+] Configurando locales" chroot "$ROOTFS" bash -c " echo 'en_US.UTF-8 UTF-8' > /etc/locale.gen locale-gen " echo "[+] Habilitando servicios base OpenRC" chroot "$ROOTFS" rc-update add devfs sysinit || true chroot "$ROOTFS" rc-update add procfs boot || true chroot "$ROOTFS" rc-update add sysfs boot || true echo "[+] Limpiando APT" chroot "$ROOTFS" apt clean rm -rf "$ROOTFS/var/lib/apt/lists/*" rm -rf "$ROOTFS/tmp/*" echo "[+] Creando rootfs comprimido" tar \ --numeric-owner \ -C "$ROOTFS" \ -cJf "$OUTPUT" . echo echo "======================================" echo " EspOS OpenRC rootfs creado" echo echo " $OUTPUT" echo "======================================"