Step-by-Step Arch Linux Installation & Post-Setup

ZenvilaZenvila
3 min read

Complete Arch Linux Installation and Configuration Guide

Introduction

This guide provides a step-by-step process for installing Arch Linux and setting up essential configurations, including networking, user management, and software installation. This is a minimal setup guide without any graphical user interface (GUI) installation.


Step 1: Boot Into Arch Linux Live Environment

Boot from the Arch Linux installation media and verify the internet connection using:

ping -c 3 archlinux.org

If it fails, follow network setup steps below.


Step 2: Set Up Network Connection

List available network interfaces:

ip link

Connect to Wi-Fi using iwctl:

iwctl

Inside iwctl, run the following commands:

device list  # List wireless devices
station wlan0 scan  # Scan for available networks
station wlan0 get-networks  # Show available networks
station wlan0 connect "SSID"  # Connect to a network (replace SSID with actual network name)

Exit iwctl and verify the connection:

ping -c 3 archlinux.org

For NetworkManager users:

pacman -S networkmanager --noconfirm
systemctl enable --now NetworkManager

Verify connection again:

ping -c 3 archlinux.org

Step 3: Partition and Format the Disk

Check available disks:

fdisk -l

Partition the disk using:

cfdisk /dev/sdX  # Replace X with your drive letter

Create partitions and format them:

mkfs.ext4 /dev/sdX1  # Format root partition
mkfs.vfat -F32 /dev/sdX2  # Format EFI partition (if using UEFI)

Step 4: Mount and Install Arch Linux

mount /dev/sdX1 /mnt
pacstrap /mnt base linux linux-firmware

Generate fstab:

genfstab -U /mnt >> /mnt/etc/fstab

Step 5: System Configuration

Chroot into the new system:

arch-chroot /mnt

Set time zone:

ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
hwclock --systohc

Enable localization:

echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf

Set hostname:

echo "archlinux" > /etc/hostname

Step 6: Set Root Password and Create User

passwd

Create a new user:

useradd -m -G wheel -s /bin/bash dawood
passwd dawood

Grant sudo privileges:

EDITOR=nano visudo

Uncomment:

%dawood ALL=(ALL:ALL) ALL

Step 7: Install and Configure Bootloader

For systemd-boot (UEFI):

bootctl install
echo "title Arch Linux" > /boot/loader/entries/arch.conf
echo "linux /vmlinuz-linux" >> /boot/loader/entries/arch.conf
echo "initrd /initramfs-linux.img" >> /boot/loader/entries/arch.conf
echo "options root=/dev/sdX1 rw" >> /boot/loader/entries/arch.conf

For GRUB (BIOS/UEFI):

pacman -S grub os-prober --noconfirm
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB

Generate GRUB config:

grub-mkconfig -o /boot/grub/grub.cfg

Exit chroot and reboot:

exit
reboot

Step 8: Post-Installation Configurations

Login as the new user:

su - dawood

Enable networking:

systemctl enable --now NetworkManager

Check internet:

ping -c 3 archlinux.org

Step 9: Install Essential Packages

sudo pacman -Syu
sudo pacman -S base-devel neofetch git wget curl tree xdg-user-dirs --noconfirm

Set Neofetch to run on terminal start:

echo "neofetch" >> ~/.bashrc

Step 10: Utilities Installation

sudo pacman -S os-prober xdg-user-dirs tree ranger thunar wezterm dmenu nitrogen bluez bluez-utils --noconfirm

Install Yay for AUR package management:

git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Install Google Chrome and Visual Studio Code:

yay -S google-chrome visual-studio-code-bin --noconfirm

Verify Yay installation:

yay --version
yay -Syu

Step 11: Install and Configure SSH (Optional)

sudo pacman -S openssh --noconfirm
sudo systemctl enable --now sshd

Check SSH status:

systemctl status sshd

Connect via SSH:

ssh dawood@your-ip-address

Conclusion

With these steps, you've successfully installed Arch Linux, set up networking, created a user, installed X11, configured WezTerm, installed essential software, and enabled SSH for remote access.

Enjoy your minimal and efficient Arch Linux setup!


Haris
FAST (NUCES)
BS Computer Science | Class of 2027

๐Ÿ“Œ GitHub: https://github.com/Zenvila
๐Ÿ“Œ LinkedIn: https://www.linkedin.com/in/haris-shahzad-7b8746291/
๐Ÿ“Œ Member: COLAB (Research Lab)

0
Subscribe to my newsletter

Read articles from Zenvila directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Zenvila
Zenvila

I'm Haris aka Zen, currently in my 4th semester of Computer Science at FAST-NUCES and a member of COLAB (Research Lab) in Tier 3. I'm currently exploring AI/ML in its early stages, and also focusing on improving my problem-solving techniques. ๐Ÿง Proud user of Arch Linux | Command line is my playground. I'm interested in Automation & Robotics Automation enthusiast on a mission to innovate! ๐Ÿš€ Passionate about turning manual tasks into automated brilliance.