# archiso-valhalla Creates `.iso` files or PXE boot assets for setting up Arch Linux. `.iso` files created using this project will contain a copy of this repository including the current uncommitted or untracked changes. When booting the resulting `.iso` file, the Arch Linux setup will automatically start using the `scripts/Arch/OS/setup.fish` script in this repository. ## Usage This project is meant to be used on Arch Linux. However, configuration files are provided to use it on any Linux system (or WSL) with [Nix] installed. ### Requirements #### Arch Linux If you are using Arch Linux, make sure that the `archiso` package is installed on your system: ```sh sudo pacman -Syu archiso ``` #### Nix On any other Linux system with Nix installed, use `nix` to automatically set up a development shell with the necessary tools installed: ```sh nix develop ``` ### Creating a `.iso` To create a `.iso` file for installing Arch Linux, run the following command: ```sh ./scripts/build.fish ``` The script accepts all additional arguments which are accepted by the `mkarchiso` command. Running this script will generate a `.iso` file in a new folder called `out`. This `.iso` file can be used for installing Arch Linux. ### Updating This project also contains scripts for updating the files in case Arch Linux's `releng` template (the `archiso` template used by this project) changed. Said scripts are described briefly in the following chapters. #### Show Diff Show the differences between this `archiso` configuration and Arch Linux's `releng` template by running the following command: ```sh ./scripts/show-diff.fish ``` #### Update the Patch To update the patch containing the differences between Arch Linux's `releng` template and this `archiso` configuration, run this command: ```sh ./scripts/update-patch.fish ``` #### Update the Project In case Arch Linux did major changes to the `releng` template, it might make sense to replicate these in this `archiso` configuration. The following command will try to do so using the patch located at `./scripts/valhalla.patch`: ```sh ./scripts/update.fish ``` ### Booting the `.iso` File The `.iso` file can be booted like any other `.iso` file (by writing it on a USB stick, burning it on a DVD or attaching it to a VM). Most notably, `.iso` files created using this project will also work with USB thumbsticks with Ventoy installed. [Nix]: https://nixos.org