This is a simple script I wrote to create Arch Linux images. I found myself creating images more than I expected, so I wrote this script to build them for me. I figured it was worth the time it would take to create the script, as it only takes a few minutes to run. Entering commands to build an image manually was rather tedius after a while. This script requires root privileges. You may or may not have luck using sudo to run this script. The build-*.sh scripts in the directory will build the image for you, when run as root. The build-all.sh script will build all available images. The scripts are named for what type of image they will build, bios, efi, hybrid (will boot from bios or efi), and linode (this builds an image designed for a Linode without a kernel, which is a single unformatted EXT4 device). All build scripts except build-all.sh can build an image on any device you choose to format, as well as build into a .img file, simply provide the device as an argument, such as: ./build-bios.sh /dev/sda You'll be warned that you are about to format the device and given the option to terminate if you do not wish to continue. The scripts folder will be copied over to /root for manual execution upon system boot. If you create a custom.sh script which is ignored by git, this script will be copied to /root and a systemd unit file will be created at /etc/systemd/system and enabled. Upon boot, this service will execute the /root/custom.sh script, and once execution completes, the /root/custom.sh script will be removed, the service file disabled and removed. All standard output and standard error will be piped to /dev/console so you can monitor what your script is doing upon first boot. Since the serial console ttyS0 is currently the default console as specified within the boot loader, this is where output should be directed. It is best to clone this repository, then copy the files within over to a new directory where you will build your images, unless I some day create a GitHub action to build images upon a manual run and publish them to a release. The compress.sh script will compress the built image. If you see a release, the downloaded images will likely be compressed in .gz format. I will only ever publish one release here at a time, all other releases will be deleted, so as to respect GitHub limits on the use of space.