This repository defines a custom Arch Linux live ISO profile (weirdcore) based on ArchISO, with custom live-root content and a Python-based interactive installer copied into the ISO root filesystem.
Primary source directories:
releng/: ArchISO profile consumed bymkarchisoreleng/airootfs/: files copied into the live environment root (/)
Run from repository root unless noted otherwise.
-
Build ISO (current project script):
sudo ./rebuild.sh- Script behavior: deletes
releng/iso-out/then runsmkarchiso -v -r -w ./releng/archiso-work -o ./releng/iso-out ./releng
-
Build ISO (manual equivalent):
sudo mkarchiso -v -r -w ./releng/archiso-work -o ./releng/iso-out ./releng
-
Run installer in live environment (inside booted ISO session):
python /root/install.py
-
Run a single installer module manually (debugging in live environment):
python /root/scripts/selectdisk/select_disk.py
-
Tests / lint:
- No automated test suite or lint command is currently configured in this repository.
- There is no “run a single test” command at this time.
Key files:
releng/profiledef.sh: ISO identity (iso_name, label/version), boot modes, permissions, build behaviorreleng/packages.x86_64: package set baked into the live ISOreleng/pacman.conf: pacman repo configuration used during buildreleng/efiboot,releng/grub,releng/syslinux: bootloader assets/configs
mkarchiso reads this profile and produces output under releng/iso-out/ using releng/archiso-work/ as workspace.
Everything under releng/airootfs/ is copied into the live system root. Important customizations include:
- system configuration under
etc/(hostname, locale, systemd units, pacman hooks, skel files) - installer and helper scripts under
root/ - local helper binaries/docs under
usr/local/bin/
Main orchestration happens in releng/airootfs/root/install.py:
- Select target block device via
scripts/selectdisk/select_disk.py - Partition/format/mount target via
scripts/mountdisk/mountdisk.py - Generate fstab + base install (
genfstab,pacstrap) - Install additional packages via
scripts/installpackages/installpackages.py - Apply system/user/bootloader config via
scripts/systemsetting/systemsetting.py
All shell commands are funneled through scripts/run/run.py::run(...), which centralizes command execution/logging.
mountdisk.pycreates GPT with EFI + root partitions and sets up Btrfs subvolumes (@,@home)systemsetting.pywrites/mnt/root/setup.shand executes it viaarch-chroot- chroot script sets locale/hostname/users/sudoers, installs GRUB/network packages, enables services, and writes
/etc/os-releaseand GRUB defaults