Skip to content

michaelgilch/arch-maker

Repository files navigation

Arch-Maker

Arch-Maker is my custom Arch Linux installer built using ArchIso. While the installation scripts have been written to perform common tasks that I perform on my installs, I have tried to make it open enough to work for others as well.

Building an ISO

Simply running make will perform an entire build of a custom ISO, including dependency checking, adding packages and scripts, and generating a .iso in bin/.

The Makefile has each step in the build process broken down for troubleshooting purposes.

  • lint uses shellcheck to lint both the build scripts as well as any shell scripts placed in scripts/.
  • clean removes all build artifacts in build/.
  • clobber removes both build artifacts in build/ as well as ISOs in bin/.
  • depends checks for dependencies of the build process and testing process.
  • profile creates a copy of the releng profile for customization.
  • files copies all files in scripts/ to the ISOs root/.
  • packages installs additional packages to the ISO.
  • permissions makes sure the install scripts will all be executable once on the ISO. NOTE: As of 2021-03-18, this currently requires a custom build of mkarchiso (part of archiso package). A merge request has been submitted for issue #100 at gitlab - archiso.
  • iso builds the ISO to bin/.
  • test launches the ISO using qemu virtualization.

Running an Install

Default Installation

Upon booting into the Arch-Maker ISO, you simply need to run ./install.sh to launch the installer. This will install base linux linux-firmware to /dev/sda1. The only additional packages that would potentially be installed is intel-ucode if the installation detects an Intel CPU and non-virtual environment.

This installation method will use the configuration located at configs/default.conf. You will be prompted for a minimal amount of information along the way (hostname, username, password) if it is missing from the configuration file. You can edit the configuration for your default installation if desired. Most likely, you would want to change LOCALE and TIMEZONE.

Custom Installation

Rather than the default installation, you can also run a customized installation by providing the configuration name as an argument to ./install.sh. The following example will look for a configs/davinci.conf. I tend to name my configs based on the hostname of the installation.

./install.sh davinci

Customizations like hostname, usernames, etc will not be prompted for if they are listed in the conf file. Additional customizations such as packages installed, aur packages, etc can be set using the customized configuration.