This project builds a custom Arch Linux ISO that can install Arch fully offline, with or without a DualBoot setup alongside Windows.
Builds the ISO. It:
- Installs
archisoif missing, then copies therelengprofile as a base. - Downloads all packages and their dependencies into an offline repo (
/var/cache/offline-repo). - Embeds
install_arch.shinto the ISO so it runs automatically at boot ontty1. - Creates two
pacman.confvariants:- online — for the ISO live environment.
- offline — points at the bundled repo (
file:///var/cache/offline-repo/), used by the installer.
- Writes ISO metadata (
arch-offline-installer, labelARCH_OFFLINE). - Runs
mkarchisoand copies the resulting.isoto the project directory.
Automated installer that runs when booting the ISO. Steps:
- Mode selection — DualBoot (alongside an existing OS) or Full Wipe (erases the disk).
- Disk selection — Lists available disks, excludes the boot medium.
- Windows detection — Finds the Windows EFI partition for chainloading.
- Free space detection (DualBoot) — Finds the largest free region (min 10 GiB).
- User input — Hostname, username, password.
- Encryption — Optional LUKS2 root encryption.
- Partitioning — EFI (2 GiB, FAT32) + Btrfs root in free space or full disk.
- Filesystems — Btrfs with subvolumes (
@,@home,@snapshots,@log), mounts EFI at/boot, copies Windows bootloader for chainloading. - Installation —
pacstrapfrom the offline repo when available, else online. - Chroot configuration — Timezone, locale, hostname, user creation, sudo, mkinitcpio (btrfs + encrypt hooks), Limine bootloader, zram-generator, NetworkManager.
- Cleanup — Offers to reboot.
Uses Limine (UEFI). DualBoot adds a chainload entry for Windows.
The ISO carries a full package cache so the installation can run without internet.