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 patiencely 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. Arch Linux Install File System BTRFS
  5. Arch Linux Install File System Ext4
  6. 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

    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.

  7. 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
  8. Change root to point to the new system (chroot).
    # arch-chroot /mnt/root /bin/bash
  9. Set pacman settings by uncommenting Color and TotalDownload.
    # nano /etc/pacman.conf
  10. 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
  11. Add hostname to
    # nano /etc/hosts localhost
  12. 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
  13. Add user account.
    # useradd -m -G users,sudo,adm,sys,plugdev -s /bin/bash username-here
  14. Set user's password.
    # passwd username-here
  15. Lock root account.
    # passwd -l root
  16. Enable GDM service.
    # systemctl enable gdm.service
  17. 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
  18. Set Time Zone.
    # ln -sf /usr/share/zoneinfo/America/Regina /etc/localtime
  19. Generate /etc/adjtime.
    # hwclock --systohc --utc
  20. Set time synchronization.
    # timedatectl set-ntp true
  21. Arch Linux Install EFI Stub
  22. Exit chroot.
    # exit
  23. 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
  24. Reboot the system.
    # systemctl reboot
  25. 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


Last update: August 9, 2020