Skip to content

Arch Linux Operating System Installation

Instruction Order


These instructions are intended for a workstation installation.

  1. Create install media by choosing one of the following:

  2. Install operating system.

  3. Configuration

How to Create a Bootable USB Flash Drive

Using A GNU/Linux System

  1. Download the latest Arch Linux.

    cURL download example, ISO and hashsum files.

    $ curl -JLO
    $ curl -JLO

  2. Verify the download was successful.

    $ sha1sum -c sha1sums.txt
    archlinux-2020.08.01-x86_64.iso: OK
    sha1sum: archlinux-bootstrap-2020.08.01-x86_64.tar.gz: No such file or directory
    archlinux-bootstrap-2020.08.01-x86_64.tar.gz: FAILED open or read
    sha1sum: WARNING: 1 listed file could not be read


    The warning message can be ignore since it refers to a file that was not downloaded.

  3. Plug-in the USB flash drive.

  4. Verify the USB device is not mounted and find the device name using one of the following commands.

    $ mount
    $ lsblk

  5. Write the image to the USB drive. Replace image name (archlinux-2020.08.01-x86_64.iso) and device name (/dev/sdg) with applicable values.

    $ sudo dd bs=4M if=archlinux-2020.08.01-x86_64.iso of=/dev/sdg
  6. Run the following command to ensure everything has been completed.

    $ sudo sync


    Wait patiently until the prompt returns.

  7. You are can now safely remove the USB flash drive.

Install via USB Flash Drive

  1. Plug the USB flash drive into the system.
    1. Boot off the USB flash drive using UEFI.
    2. Select "Arch Linux archiso x86_64 UEFI CD" within the boot menu.
  2. Update the system clock.
    # timedatectl set-ntp true
  3. Follow the desired file system instructions.
  4. Install packages.

    # pacstrap -i /mnt/root base base-devel dhcpcd evince file-roller gedit gdm gnome-calculator gnome-control-center gnome-keyring gnome-screenshot gnome-shell gnome-terminal gnome-tweaks linux linux-firmware linux-headers man-db man-pages mousetweaks nano nautilus nvidia-dkms nvidia-settings sushi
    -i Prompt for package confirmation when needed (run interactively).

    1. Enter a selection (default=all: (press enter)
    2. Enter a selection (default=all: (press enter)
    3. Choose which libx264
    4. Enter a number (default=1): (press enter)
    5. Proceed with installation? y


    Add the package "efibootmgr" if you are using an EFISTUB.


    Add the package "btrfs-progs" if you are using BTRFS.

  5. Generate and config fstab.

    1. Generate fstab.
      # genfstab -U /mnt/root >> /mnt/root/etc/fstab
    2. Edit "/mnt/root/etc/fstab" and change the "2" at the end of entry for "/dev/sda1" to "0".
      # nano /mnt/root/etc/fstab
      /dev/sda1    /boot    vfat    rw  0 2
      /dev/sda1    /boot    vfat    rw  0 0
  6. Change root to point to the new system (chroot).
    # arch-chroot /mnt/root /bin/bash
  7. Set pacman settings by uncommenting Color.
    # nano /etc/pacman.conf
  8. Enable the DHCP service.
    1. Find out NIC device name.
      # ip addr
    2. Enable DHCP, replace "interface" with NIC device name.
      # systemctl enable dhcpcd@interface.service
    3. Set the desired workstation (host) name.
      # nano /etc/hostname
  9. Add hostname to
    # nano /etc/hosts localhost
  10. Add sudo access.
    1. Set nano as the editor.
      # export EDITOR=nano
    2. Create sudo group access rights.
      # visudo -f /etc/sudoers.d/sudo
      %sudo ALL=(ALL) ALL
    3. Create the sudo group.
      # groupadd -r sudo
  11. Add user account.
    # useradd -m -G users,sudo,adm,sys,plugdev -s /bin/bash username-here
  12. Set user's password.
    # passwd username-here
  13. Lock root account.
    # passwd -l root
  14. Enable GDM service.
    # systemctl enable gdm.service
  15. Set Locale.
    1. Uncomment en_US.UTF-8 UTF-8.
      # nano /etc/locale.gen
    2. Generate locale files.
      # locale-gen
    3. Set the locale LANG variable.
      # nano /etc/locale.conf
  16. Set Time Zone.
    # ln -sf /usr/share/zoneinfo/America/Regina /etc/localtime
  17. Generate /etc/adjtime.
    # hwclock --systohc --utc
  18. Set time synchronization.
    # timedatectl set-ntp true
  19. Arch Linux Install EFI Stub
  20. Exit chroot.
    # exit
  21. Unmount drive partitions.
    1. Change to the root directory.
      # cd /
    2. Umount boot partition.
      # umount /mnt/root/boot
    3. Unmount root partition.
      # umount /mnt/root
  22. Reboot the system.
    # systemctl reboot
  23. Remove the USB flash drive.

Post-Install Configuration


  1. Enable periodic TRIM.

    Solid State Drive

  2. Enable automatic cleaning of package cache.

    Arch Linux Pacman - Clearing Package Cache

  3. Enable automatic BTRFS scrub. BTRFS scrub is an online file system checking tool. Scrub will determine if data is corrupted and repair corrupted data using duplicate data in RAID storage and checksums.


    This step is only applicable if using the file system BTRFS.

  4. Install required package.

    # pacman -Sy btrfs-progs

  5. Enable Systemd unit timer per BTRFS subvolume (defaults to run monthly).
    # systemctl enable btrfs-scrub@HOME.timer
    # systemctl enable btrfs-scrub@SRV.timer
    # systemctl enable btrfs-scrub@ROOT.timer