Erase everything and install Arch Linux from scratch. Every step explained for beginners.
This path wipes everything on the selected disk and installs Arch Linux from scratch. Use this for a brand-new computer, a virtual machine, or when you want to erase the entire OS and start fresh.
Download the Arch Linux ISO from the official website. Then write it to a USB drive (at least 2 GB).
Windows users: Use Rufus or Balena Etcher to write the ISO to your USB drive. Select the ISO, pick your USB, and click Start/Flash.
Linux users: Use dd to write the ISO:
# Download the latest Arch Linux ISO
curl -LO https://archlinux.org/releng/releases/2025.03.01/torrent/archlinux-2025.03.01-x86_64.iso.torrent
# Write the ISO to your USB drive (replace /dev/sdX with your USB device!)
sudo dd if=archlinux-2025.03.01-x86_64.iso of=/dev/sdX bs=4M status=progress && sync
# Reboot and boot from the USB, then verify UEFI mode
ls /sys/firmware/efi/efivars # Should list files (UEFI mode)
Beginner tip: If the terminal feels scary, use Balena Etcher (Windows/macOS/Linux) or Rufus (Windows) — they have a nice GUI. When your computer starts, enter the BIOS (usually by pressing F2, F12, DEL, or ESC during boot) and make sure you boot in UEFI mode, not Legacy/CSM. If you see a black screen with archiso in the corner, you're good.
/dev/nvme0n1 = NVMe SSD, /dev/sda = SATA SSD or HDD, /dev/mmcblk0 = SD card. Always double-check with lsblk before writing!Arch Linux downloads packages during installation, so you need a working internet connection. Wired ethernet usually works automatically.
# Test if you already have a connection
ping -c 3 archlinux.org
# If you see replies, you're online — skip to Step 3!
# For WiFi (replace wlan0 with your interface name)
iwctl
[iwd]# device list # Shows your WiFi adapter name
[iwd]# station wlan0 scan
[iwd]# station wlan0 get-networks # Lists available WiFi networks
[iwd]# station wlan0 connect "Your Network Name"
[iwd]# exit
# Verify again
ping -c 3 archlinux.org
Beginner tip: WiFi network names are case-sensitive. If your WiFi has a space in the name, put it in quotes. If you don't see any devices in iwctl device list, your WiFi card might need additional firmware — try sudo modprobe brcmfmac for Broadcom cards, or use a USB tether from your phone as a backup.
Arch Linux includes an official guided installer called archinstall. It replaces steps 3–8 below with a simple menu. If you want to do things manually, skip to Step 3.
# After connecting to the internet, simply run:
archinstall
# Follow the interactive prompts:
1. Keyboard layout: us (or your layout)
2. Mirror region: your country (for faster downloads)
3. Disk config: "Best-effort default" wipes the whole disk for you
4. Filesystem: ext4 or btrfs (ext4 is simpler for beginners)
5. Root password: set a strong one
6. User account: create your daily-driver user
7. Profile: "desktop" → "Hyprland" (or skip, install later)
8. Audio: pipewire (best choice)
9. Network: NetworkManager
10. bootloader: GRUB
After archinstall finishes, type reboot, remove the USB, log in, connect to WiFi with nmcli, then skip ahead to Step 9 (GPU Drivers) and Step 10 (Dotfiles).
Why use archinstall? It handles partitioning, filesystem creation, base package installation, locale setup, and bootloader configuration automatically. It's the fastest way to get a working base system.
Since we're wiping the entire disk, we'll create a fresh GPT partition table with three partitions: EFI (for the bootloader), optional swap, and root (everything else).
# List all disks to find yours
lsblk
# Example output:
# NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
# nvme0n1 259:0 0 476.9G 0 disk
# ├─nvme0n1p1 259:1 0 512M 0 part
# └─nvme0n1p2 259:2 0 476.4G 0 part
# Start partitioning (replace nvme0n1 with YOUR disk)
gdisk /dev/nvme0n1
# Inside gdisk, type these commands in order:
x → enter expert mode
z → zap (wipe) the partition table
y → confirm yes
y → confirm MBR wipe
# Then create partitions:
gdisk /dev/nvme0n1
o → create new GPT partition table
n → new partition
Partition 1: +1G → hex code ef00 (EFI System)
n → new partition
Partition 2: +8G → hex code 8200 (Linux swap, optional)
n → new partition
Partition 3: [Enter] → hex code 8300 (Linux filesystem, rest of disk)
w → write changes and exit
y → confirm
lsblk that you selected the right disk. If you have a laptop with an NVMe drive, the name will be something like nvme0n1. Desktops with SATA SSDs will show as sda, sdb, etc.Do I need swap? If you have 8 GB or less RAM, add a swap partition (+8G). If you have 16 GB or more, skip it — the system will use a swap file if needed. Swap lets your computer use disk space as extra "memory" when RAM runs out.
Simpler alternative: Use parted instead of gdisk:
parted /dev/nvme0n1 -- mklabel gpt
parted /dev/nvme0n1 -- mkpart ESP fat32 1MiB 1GiB
parted /dev/nvme0n1 -- set 1 esp on
parted /dev/nvme0n1 -- mkpart primary linux-swap 1GiB 9GiB # skip if no swap
parted /dev/nvme0n1 -- mkpart primary 9GiB 100% # or 1GiB 100% if no swap
Now we format the partitions we just created with the appropriate filesystems.
# Format the EFI partition (must be FAT32)
mkfs.fat -F32 /dev/nvme0n1p1
# Format the root partition (ext4 is simple and reliable)
mkfs.ext4 /dev/nvme0n1p3
# Only if you created a swap partition:
mkswap /dev/nvme0n1p2 && swapon /dev/nvme0n1p2
# Mount root to /mnt
mount /dev/nvme0n1p3 /mnt
# Mount EFI to /mnt/boot
mount --mkdir /dev/nvme0n1p1 /mnt/boot
Beginner note: If you have an NVMe drive, partitions are named nvme0n1p1, nvme0n1p2, etc. For SATA drives, they're sda1, sda2, etc. Adjust the commands above to match your hardware. The EFI partition is always the first one (+1G), and the root partition is the last one (everything else).
This downloads and installs the core Arch Linux packages. The download speed depends on your internet and mirror server.
# Optional: Update mirror list for faster downloads (replace "US" with your country)
reflector --country US --age 6 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
# Install base system + essential packages
pacstrap -K /mnt base base-devel linux linux-firmware linux-headers
pacstrap /mnt networkmanager vim sudo git
# Generate fstab (tells Linux how to mount disks at boot)
genfstab -U /mnt >> /mnt/etc/fstab
# Verify fstab
cat /mnt/etc/fstab
What these packages do: base = the minimal Arch system, base-devel = tools for building packages (needed for AUR later), linux = the kernel, linux-firmware = drivers for WiFi, GPU, and other hardware, networkmanager = handles internet connections, vim = text editor, sudo = lets your user run admin commands, git = needed for downloading dotfiles and AUR packages.
Beginner tip: If you're on a slow connection or limited data, you can skip base-devel (it's about 200 MB extra). Install only what you need and add the rest later.
Now we enter the newly installed system (chroot) and set up timezone, language, hostname, and passwords.
# Enter the new system
arch-chroot /mnt
# Set timezone (find yours with: ls /usr/share/zoneinfo/)
ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
hwclock --systohc
# Generate locale (language settings)
echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
# Set hostname (your computer's name on the network)
echo "myhostname" > /etc/hostname
# Map hostname to localhost
cat > /etc/hosts << 'EOF'
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
EOF
# Set root password (type it twice, nothing will show as you type)
passwd
# Enable NetworkManager to start automatically at boot
systemctl enable NetworkManager
Beginner tips: Replace America/New_York with your timezone — browse options with ls /usr/share/zoneinfo/ then ls /usr/share/zoneinfo/America/ (or your continent). Replace myhostname with a name like arch-pc or my-laptop (no spaces, lowercase). When typing passwords in Linux, the screen stays blank — that's normal, just type and press Enter.
GRUB is the boot menu that appears when you turn on your computer. We install it to the EFI partition so your motherboard can find it.
# Install GRUB and EFI boot manager
pacman -S grub efibootmgr
# Install GRUB to the EFI partition
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
# Generate GRUB configuration file
grub-mkconfig -o /boot/grub/grub.cfg
What just happened: grub-install puts the bootloader files on your EFI partition. grub-mkconfig scans for operating systems and creates the menu you see at boot. If everything worked, you'll see "Installation finished. No error reported."
Note for this section: Since this is a full wipe (single OS), there's no need for os-prober. If you later add another OS, you can re-run os-prober then.
Using the root account for everyday tasks is dangerous. Create a regular user with sudo privileges instead.
# Create user (replace 'username' with your desired username)
useradd -m -G wheel,audio,video,storage,power,adbusers username
# Set password for your new user
passwd username
# Give your user sudo (admin) access
EDITOR=vim visudo
# Uncomment (remove the #) from this line:
# %wheel ALL=(ALL:ALL) ALL
# Exit chroot, unmount, and reboot
exit
umount -R /mnt
reboot
Beginner tip: visudo opens a file in vim. Press the arrow keys to move down to the line # %wheel ALL=(ALL:ALL) ALL, press x to delete the #, then type :wq and press Enter to save and quit. Remove the live USB when the computer restarts. If you see a GRUB menu with "Arch Linux", congratulations — you installed Arch!
After reboot: Log in with your new username and password. Connect to WiFi with sudo nmcli device wifi connect "Your WiFi" password "yourpassword". Then continue to Step 9.
After your first boot into the new system, you need graphics drivers for your specific GPU. The WifeRice dotfiles installer configures them automatically, but you need them installed first.
# Connect to WiFi after reboot
sudo nmcli device wifi connect "Your WiFi" password "yourpassword"
# For wired ethernet: just plug in, NetworkManager handles it
# NVIDIA GPUs (desktop & laptop with dedicated NVIDIA)
sudo pacman -S nvidia nvidia-utils nvidia-settings lib32-nvidia-utils
# AMD GPUs
sudo pacman -S mesa lib32-mesa xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon
# Intel GPUs (integrated graphics)
sudo pacman -S mesa lib32-mesa vulkan-intel lib32-vulkan-intel
# Install yay (AUR helper) — needed by the dotfiles installer
sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git /tmp/yay
cd /tmp/yay && makepkg -si
rm -rf /tmp/yay
Which GPU do I have? Run lspci | grep -E "VGA|3D" to see your graphics hardware. If you have an NVIDIA Optimus laptop (both Intel + NVIDIA), the WifeRice installer handles GPU switching. For AMD + Intel hybrid laptops, the open-source drivers work out of the box.
Beginner tip: makepkg -si might take a while to compile yay from source. This is normal. If you get errors about missing dependencies, install them with sudo pacman -S <package-name>.
This is the final step. The one-liner below installs Hyprland (the window manager), QuickShell (the dashboard), all widgets, wallpapers, the SDDM login theme, applications, and configures your entire desktop.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/eprahemi/WifeRice/main/install.sh)"The installer will ask you what to preserve, then:
After the installer finishes: systemctl reboot. When it comes back, you'll see the SDDM login screen. Log in and press Super+W to open the wallpaper picker, Super+H for the keybinding guide.