Skip to content

Arch Linux Operating System Installation

Instruction Order

Note

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 https://mirror.csclub.uwaterloo.ca/archlinux/iso/latest/archlinux-2020.08.01-x86_64.iso
    
    $ curl -JLO http://mirror.csclub.uwaterloo.ca/archlinux/iso/latest/sha1sums.txt
    

  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
    

    Note

    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
    

    Note

    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

    Note

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

    Note

    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
    
    #Color
    
    Color
    
  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 127.0.0.1
    # nano /etc/hosts
    
    127.0.0.1 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
      
      LANG=en_US.UTF-8
      
  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

Required

  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.

    Note

    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
    

Optional