Skip to content
Simple bash script to install Arch Linux.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

arch-install - Simple Arch Linux Install Script

This is just a simple shell script I use to install my own personal systems with Arch Linux, with some options to customize the install a bit.

This hasn't been extensively tested (yet), and is tailored to the particular setup I prefer, which might not necessarily be what you prefer, so please read through the script (the whole thing!) before installing.

If you improve this script in any way, or have any suggestions, please don't hesitate to let me know. Though, I'm not trying to turn this into a universal Arch installer, just something to install a very specific (desktop system targetted) setup.



  2. READ THE WHOLE SCRIPT. In particular, the install_packages() function. Make sure to set the variables at the top of the script to what you want.

  3. Download an Arch Linux installer ISO and boot it on the system you want to install.

  4. Copy the script to the live system.

    With ssh, start the ssh daemon first:

    systemctl start sshd.service
  5. Make the script executable.

    chmod +x
  6. Run the script.

  7. If there were no errors, reboot and enjoy!


By default, the script will create two physical partitions, a 100MB /boot partition, and the rest a LUKS encrypted partition with LVM on top of that, and root and swap on top of that. Encryption can be disabled, but it has pretty minimal overhead, so I'd use it on a system like a laptop or something.

After partitioning, the base and base-devel package groups are installed, along with a bunch of other useful packages that I usually end up installing. This is done in the install_packages() function, so please read it to see what packages will be installed. Feel free to remove any you won't use, or add any you need.

After installing packages, the script sets up all the common configuration files based on the values of the variables at the top of the script. You should also at least browse through the config files here to make sure they are what you want to do.

By default, no desktop environment or login manager is installed (although X and a bunch of other graphical programs are). So once you reboot into your running system, you'll need to pick one. The Arch wiki has articles on a lot of them.


Something went wrong in the script and I need to start over!

First, see if you can figure out what went wrong, then either send me a mail or (preferably), create an issue on the GitHub project page (and maybe attach a patch?).

Then, when you want to re-run the install script, do this in the live system:

umount /mnt/boot
umount /mnt
swapoff /dev/vg00/swap
vgchange -an
vgremove vg00

Now, you should be able to re-run the install script cleanly.

I can't seem to override the ZSH config!

Uninstall the grml-zsh-config package, it installs a global ZSH config.

pacman -Rsc grml-zsh-config
You can’t perform that action at this time.