Arch Linux Installation Guide - ryzendew/Linux-Tips-and-Tricks GitHub Wiki
Arch Linux Installation Guide
Complete beginner-friendly step-by-step guide for installing Arch Linux, including partitioning, base system installation, and bootloader configuration.
Table of Contents
- Pre-Installation Checklist
- Booting the Installation Media
- Verifying Boot Mode
- Connecting to the Internet
- Updating System Clock
- Partitioning the Disk
- Formatting Partitions
- Mounting the Filesystems
- Installing Essential Packages
- Configuring the System
- Installing Bootloader
- Rebooting
- Post-Installation
Pre-Installation Checklist
What You Need
Before starting:
- Bootable USB drive with Arch Linux ISO (November 2025 or later recommended)
- Internet connection (wired recommended)
- Backup of important data
- Hardware specifications noted
- At least 1-2 hours available
- ArchWiki open for reference
Installation Methods
Two ways to install Arch Linux:
- Archinstall (Recommended for beginners)
- Interactive installer (Archinstall 3.0.12 in November 2025 ISO)
- Guided setup process
- Easier for new users
- Manual Installation (This guide)
- Full control over installation
- Learn how Arch works
- More customization
Important Notes
Read before proceeding:
- This will erase your disk (unless dual-booting)
- Backup everything important
- Have ArchWiki open: https://wiki.archlinux.org/title/Installation_guide
- Take your time - don't rush
- 2025 Update: November 2025 ISO includes Linux 6.17 kernel and Archinstall 3.0.12
Booting the Installation Media
Boot from USB
Steps:
- Insert USB drive with Arch Linux ISO
- Power on computer
- Access boot menu
- Press
F12,F8,F10, orEsc(varies by manufacturer) - Or set USB as first boot in BIOS/UEFI
- Select USB drive from boot menu
- Wait for boot - You'll see Arch Linux boot messages
Boot Menu Options
What you'll see:
- Arch Linux install medium (x86_64, UEFI)
- Arch Linux install medium (x86_64, BIOS)
- Archinstall (if using November 2025+ ISO)
Using Archinstall (Easier Method)
For beginners, use Archinstall:
# After booting, run:
archinstall
# Follow interactive prompts:
# - Language
# - Keyboard layout
# - Disk partitioning
# - Desktop environment
# - User account
# - Bootloader
Note: Archinstall 3.0.12 (November 2025) includes improved reliability and security features.
Choose based on your system:
- UEFI: Modern systems (2012+)
- BIOS: Older systems
After Boot
You'll see:
root@archiso ~ #
This is the live environment - a temporary system running from USB.
Verifying Boot Mode
Check Boot Mode
Verify UEFI or BIOS:
# Check if UEFI
ls /sys/firmware/efi
Results:
- Directory exists: UEFI mode
- No such file or directory: BIOS mode
Why it matters:
- UEFI: Use
EFI System Partition(ESP) - BIOS: Use
MBRpartition table
Connecting to the Internet
Check Connection
Verify internet access:
# Check network interfaces
ip link
# Shows network interfaces (eth0, wlan0, etc.)
# Test connection
ping -c 3 archlinux.org
Expected output:
PING archlinux.org (95.217.163.246) 56(84) bytes of data.
64 bytes from 95.217.163.246: icmp_seq=1 ttl=54 time=45.2 ms
64 bytes from 95.217.163.246: icmp_seq=2 ttl=54 time=44.8 ms
64 bytes from 95.217.163.246: icmp_seq=3 ttl=54 time=45.1 ms
Wired Connection (Ethernet)
Usually works automatically:
# Check if connected
ip link show
# Look for "state UP"
# If not connected, try:
dhcpcd
# Requests IP address via DHCP
Wireless Connection (WiFi)
Connect to WiFi:
# Scan for networks
iwctl station wlan0 scan
iwctl station wlan0 get-networks
# Connect to network
iwctl station wlan0 connect "NetworkName"
# Enter password when prompted
# Check connection
ping -c 3 archlinux.org
Explanation:
iwctl: Interactive WiFi control toolstation wlan0: WiFi interfacescan: Scan for networksget-networks: List available networksconnect: Connect to network
⏰ Updating System Clock
Set System Time
Update system clock:
# Update system clock
timedatectl set-ntp true
# Verify
timedatectl status
Expected output:
Local time: Mon 2024-01-15 10:30:00 UTC
Universal time: Mon 2024-01-15 10:30:00 UTC
RTC time: Mon 2024-01-15 10:30:00
Time zone: UTC (UTC, +0000)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
Explanation:
timedatectl set-ntp true: Enables NTP synchronizationtimedatectl status: Shows current time settings
Partitioning the Disk
Identify Disks
List available disks:
# List block devices
lsblk
Expected output:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 512M 0 part
└─sda2 8:2 0 499.5G 0 part
Explanation:
sda: First disksda1,sda2: Partitions on diskSIZE: Disk/partition size
Partitioning Schemes
UEFI with GPT (Recommended):
| Partition | Size | Type | Mount Point |
|---|---|---|---|
| EFI System Partition | 512 MB | EFI System | /boot/efi |
| Root | Remaining | Linux filesystem | / |
| Swap | 2-8 GB (optional) | Linux swap | (swap) |
BIOS with MBR:
| Partition | Size | Type | Mount Point |
|---|---|---|---|
| Root | Remaining | Linux filesystem | / |
| Swap | 2-8 GB (optional) | Linux swap | (swap) |
Using fdisk (Recommended)
Partition disk:
# Replace /dev/sda with your disk
fdisk /dev/sda
fdisk commands:
Command (m for help): g # Create new GPT partition table
Command (m for help): n # Create new partition
Partition number (1-128, default 1): 1
First sector (2048-104857566, default 2048): [Enter]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-104857566, default 104857566): +512M
Command (m for help): t # Change partition type
Selected partition 1
Hex code or alias (type L to list all): EF00 # EFI System
Command (m for help): n # Create root partition
Partition number (2-128, default 2): 2
First sector (1050624-104857566, default 1050624): [Enter]
Last sector, +/-sectors or +/-size{K,M,G,T,P} (default 104857566): [Enter]
Command (m for help): w # Write changes and exit
Explanation:
g: Creates GPT partition table (UEFI)n: Creates new partitiont: Changes partition typeEF00: EFI System partition typew: Writes changes to disk
** Warning**: This will erase all data on the disk!
Using cfdisk (Easier)
Graphical partitioner:
cfdisk /dev/sda
Steps:
- Select partition table type (GPT for UEFI)
- Create partitions using menu
- Set partition types
- Write changes
Formatting Partitions
Format EFI Partition (UEFI)
Format EFI System Partition:
# Replace /dev/sda1 with your EFI partition
mkfs.fat -F32 /dev/sda1
Explanation:
mkfs.fat: Creates FAT32 filesystem-F32: FAT32 format- Required for UEFI boot
Format Root Partition
Format root partition:
# Replace /dev/sda2 with your root partition
mkfs.ext4 /dev/sda2
Alternative filesystems:
# Btrfs (with snapshots)
mkfs.btrfs /dev/sda2
# XFS
mkfs.xfs /dev/sda2
Explanation:
mkfs.ext4: Creates ext4 filesystem (most common)mkfs.btrfs: Creates btrfs filesystem (snapshots, compression)mkfs.xfs: Creates XFS filesystem (high performance)
Create Swap (Optional)
Create swap partition:
# Replace /dev/sda3 with your swap partition
mkswap /dev/sda3
swapon /dev/sda3
Or use swap file (alternative):
# Create swap file after mounting root
fallocate -l 4G /mnt/swapfile
chmod 600 /mnt/swapfile
mkswap /mnt/swapfile
swapon /mnt/swapfile
Explanation:
mkswap: Formats partition as swapswapon: Activates swapfallocate: Creates file of specified sizechmod 600: Sets secure permissions
Mounting the Filesystems
Mount Root Partition
Mount root filesystem:
# Replace /dev/sda2 with your root partition
mount /dev/sda2 /mnt
Mount EFI Partition (UEFI)
Mount EFI System Partition:
# Create mount point
mkdir -p /mnt/boot/efi
# Mount EFI partition
mount /dev/sda1 /mnt/boot/efi
Verify Mounts
Check mounted filesystems:
# List mounted filesystems
lsblk
Expected output:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
├─sda1 8:1 0 512M 0 part /mnt/boot/efi
└─sda2 8:2 0 499.5G 0 part /mnt
Installing Essential Packages
Install Base System
Install base packages and kernel:
# Install base system
pacstrap /mnt base linux linux-firmware
# For LTS kernel (more stable)
pacstrap /mnt base linux-lts linux-firmware
# For both kernels
pacstrap /mnt base linux linux-lts linux-firmware
Explanation:
pacstrap: Installs packages to mounted filesystembase: Essential Arch Linux packageslinux: Latest kernellinux-lts: Long-term support kernellinux-firmware: Hardware firmware
Install Additional Packages (Optional)
Useful packages:
# Text editor
pacstrap /mnt vim nano
# Network tools
pacstrap /mnt networkmanager
# Bootloader
pacstrap /mnt grub efibootmgr # For UEFI
pacstrap /mnt grub # For BIOS
Configuring the System
Generate fstab
Generate filesystem table:
# Generate fstab
genfstab -U /mnt >> /mnt/etc/fstab
# Verify
cat /mnt/etc/fstab
Expected output:
# /dev/sda2
UUID=xxxx-xxxx-xxxx / ext4 rw,relatime 0 1
# /dev/sda1
UUID=XXXX-XXXX /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 2
Explanation:
genfstab: Generates filesystem table-U: Uses UUIDs (recommended)fstab: Defines mount points at boot
Chroot into System
Enter installed system:
# Chroot into new system
arch-chroot /mnt
Prompt changes to:
[root@archiso /]#
Set Timezone
Set system timezone:
# List timezones
timedatectl list-timezones
# Set timezone (example: America/New_York)
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
# Or use timedatectl
timedatectl set-timezone America/New_York
# Generate /etc/adjtime
hwclock --systohc
Set Locale
Configure locale:
# Edit locale file
vim /etc/locale.gen
# Or
nano /etc/locale.gen
Uncomment desired locale:
# Uncomment (remove #):
en_US.UTF-8 UTF-8
Generate locale:
locale-gen
Set locale:
echo "LANG=en_US.UTF-8" > /etc/locale.conf
Set Hostname
Set computer name:
# Set hostname
echo "myhostname" > /etc/hostname
# Add to hosts file
vim /etc/hosts
Add to /etc/hosts:
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
Set Root Password
Set root password:
passwd
# Enter password twice
** Important**: Remember this password!
Create User Account
Create regular user:
# Create user
useradd -m -G wheel username
# Set password
passwd username
# Install sudo
pacman -S sudo
# Edit sudoers
EDITOR=vim visudo
Uncomment this line:
%wheel ALL=(ALL) ALL
Explanation:
useradd -m: Creates user with home directory-G wheel: Adds to wheel group (sudo access)visudo: Safely edits sudoers file
Install Additional Software
Useful packages:
# Network manager
pacman -S networkmanager
# Text editors
pacman -S vim nano
# Documentation
pacman -S man-db man-pages texinfo
Installing Bootloader
GRUB (Recommended)
For UEFI systems:
# Install GRUB
pacman -S grub efibootmgr
# Install to EFI partition
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
# Generate GRUB config
grub-mkconfig -o /boot/grub/grub.cfg
For BIOS systems:
# Install GRUB
pacman -S grub
# Install to disk
grub-install --target=i386-pc /dev/sda
# Generate GRUB config
grub-mkconfig -o /boot/grub/grub.cfg
Explanation:
grub-install: Installs GRUB bootloader--target=x86_64-efi: UEFI target--efi-directory: EFI partition mount pointgrub-mkconfig: Generates boot menu configuration
systemd-boot (Alternative)
For UEFI only:
# Install systemd-boot
bootctl install
# Create boot entry
bootctl --path=/boot/efi install
Rebooting
Exit and Reboot
Exit chroot and reboot:
# Exit chroot
exit
# Unmount filesystems
umount -R /mnt
# Reboot
reboot
Remove USB when system reboots.
Post-Installation
First Boot
After reboot:
- Login as root or your user
- Enable NetworkManager (if installed):
sudo systemctl enable --now NetworkManager - Connect to network:
nmtui # Text-based network manager - Update system:
pacman -Syu
Essential Next Steps
Complete setup:
- Install desktop environment (if desired)
- Install graphics drivers
- Configure audio
- Install additional software
- Set up firewall
- Configure user account
Summary
This guide covered:
- Booting installation media - Starting from USB
- Partitioning - Creating disk partitions
- Formatting - Creating filesystems
- Mounting - Mounting filesystems
- Installing packages - Base system installation
- Configuration - System setup
- Bootloader - GRUB installation
- Rebooting - First boot
Key Takeaways:
- Follow steps carefully
- Have ArchWiki open for reference
- Take your time
- Backup everything first
- Verify each step before proceeding
Next Steps
- Arch Linux Post-Installation - Essential steps after installation
- Arch Linux Package Management - Using pacman and AUR
- Arch Linux System Configuration - System setup and services
- ArchWiki Installation Guide: https://wiki.archlinux.org/title/Installation_guide
This guide is based on the ArchWiki Installation Guide. For the most up-to-date information, always refer to the official ArchWiki.