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.
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 inbuild/
.clobber
removes both build artifacts inbuild/
as well as ISOs inbin/
.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 inscripts/
to the ISOsroot/
.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 tobin/
.test
launches the ISO using qemu virtualization.
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
.
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.