/arch-install

A simple shell script to automate Arch Linux's convoluted installation.

Primary LanguageShellGNU General Public License v3.0GPL-3.0

This install script intends to streamline the installation process of Arch
Linux; it will automate file editing and creation, and some system-wide
configurations. It intends to be POSIX-compliant and follow the Installation
Guide [1] whenever possible.

It can be run with the following one-liner on Arch Linux's installation media
shell. One cannot pipe `curl` to `sh`, since the script needs a lot of user
input.

    # sh <(curl -Ls git.io/vzWco)

Some caveats about the installation:

  * when using old installation media, the script will fail to parse
    names of countries correctly from the mirrorlist, and pacman's
    keyring may be outdated, preventing package installation. As such,
    these need to be updated before the script is executed:

    # pacman-key --refresh-keys
    # curl -o /etc/pacman.d/mirrorlist https://archlinux.org/mirrorlist/all/

  * to change the mount folder, use the following command:

    # sh <(curl -Ls git.io/vzWco | sed "s|/mnt|$MOUNTPOINT|g")

  * to change the EFI system partition size, use the following command
    for installation and input valid `parted` units [2]:

    # sh <(curl -Ls git.io/vzWco | sed "s/100M/$BOOTSIZE/g")

  * likewise, to change the `home` partition size, use:

    # sh <(curl -Ls git.io/vzWco | sed "s/100%/$HOMESIZE/")

  * the `base` group was converted into a metapackage and many arguably useful
    packages are not installed by default. To pass extra packages to
    `pacstrap`, use:

    # EXTRA_PKG="vim" sh <(curl -Ls git.io/vzWco)

One can save the script locally and customize other aspects of the
installation if needed.

[1] https://wiki.archlinux.org/index.php/Installation_guide
[2] http://www.gnu.org/software/parted/manual/parted.html#unit