- new helper overlay/usr/share/veilor-os/scripts/persist-install-logs.sh
detects boot USB (BOOT=/findfs, /run/install/repo, /sys/block removable),
copies /tmp/anaconda.log + program/storage/packaging/dnf/syslog/X +
journalctl -b + dmesg + lsblk/blkid/mount + /proc/cmdline into
/veilor-install-logs/<UTC-ts>/ on the stick; mirrors backup into
/mnt/sysroot/var/log/veilor-install-logs/ so logs survive even on RO
USB or detect failure
- toggle: kernel cmdline veilor.install_logs=on|off (default ON until
v1.0 final); never fails install on log persistence error
- kickstart/install-ostreecontainer-installer.ks: add %post --nochroot
block calling helper with toggle-aware inline fallback if helper
missing
- .github/workflows/build-installer-iso.yml: switch bib config from
[customizations.user] to [customizations.installer.kickstart] so our
new %post --nochroot actually lands in the produced ISO; admin user
now created by ks user directive (locked + chage 0); ostreecontainer
line stripped (bib auto-appends it); kernel-cmdline-default
limitation documented (osbuild/bootc-image-builder#899)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
livemedia-creator needs the kickstart to specify packages for the
LIVE BOOT environment (the squashfs that runs Anaconda); ostreecontainer
populates the target system. The two are independent. Add minimal
package set: anaconda-tui + dracut-live + ostree/rpm-ostree/bootupd
+ grub2 + shim + xorriso.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add livemedia-creator --make-iso pipeline that produces a small
Anaconda installer ISO consuming a CI-buildable variant of the
runtime ostreecontainer kickstart. Disk/LUKS/user blocks dropped
from the CI ks (Anaconda interactive handles them); ostreecontainer
URL pinned to ghcr.io/veilor-org/veilor-os:43. Output split into
1900M chunks; published to Forgejo installer-latest rolling tag.