This guide provides a comprehensive, step-by-step walkthrough for installing Arch Linux on standard PC hardware. It specifically covers dual-booting alongside Windows 10/11 using UEFI mode, as well as a clean single-boot installation.
Before flashing your USB or rebooting, prepare your system and Windows installation.
To dual-boot, free up unallocated disk space for Arch Linux.
- Right-click the Windows Start menu and select Disk Management.
- Locate your Windows operating system partition (typically
C:). - Right-click it and choose Shrink Volume.
- Enter the amount of space to shrink (at least 40 GB / 40000 MB is highly recommended).
- Leave the shrunk space as Unallocated—do not format it.
Windows "Fast Startup" locks your drives, preventing Linux from safely reading or writing to them.
- Open Control Panel > Power Options > Choose what the power buttons do.
- Click Change settings that are currently unavailable (requires administrator privileges).
- Uncheck Turn on fast startup and click Save changes.
Reboot your PC and enter your BIOS/UEFI settings utility (usually by pressing F2, F12, Del, or Esc during startup).
- Boot Mode: Must be set to UEFI only. (Disable Legacy/CSM support).
- SATA Controller Mode: Switch from IDE/RAID/RST to AHCI (otherwise the Linux installer might not see your SSD).
- Secure Boot: Disable Secure Boot (some distributions support it, but it adds unnecessary hurdles during pure Arch installations).
- Insert your flashed Arch Linux USB drive.
- Restart your PC and tap the boot menu key (e.g.,
F12on Dell/Gigabyte,F11on MSI,F8on ASUS,Enter/F12on Lenovo). - Select Arch Linux install medium (UEFI).
- You will be greeted by the Arch Linux console prompt:
root@archiso ~ #.
Confirm you are in UEFI mode:
ls /sys/firmware/efi/efivarsIf directory contents are printed without error, your system is in UEFI mode.
The default keyboard layout is US. To select a different one (e.g., UK, German):
# Example for UK layout:
loadkeys uk- Ethernet: Plug in the cable; internet should automatically configure via DHCP.
- Wi-Fi: Use the built-in tool
iwctl:iwctl # Inside the iwd prompt: device list # Note your wi-fi device name (usually wlan0) station wlan0 scan # Scan for networks station wlan0 get-networks # List available networks station wlan0 connect SSID # Enter network password when prompted exit
- Verify connection:
ping -c 3 archlinux.org
Enable Network Time Protocol (NTP) to ensure exact local timing:
timedatectl set-ntp true
timedatectl statusWe need to partition our unallocated space. Identify your drives:
lsblkYour main drive is likely /dev/nvme0n1 (NVMe SSD) or /dev/sda (SATA SSD/HDD). Note down this name.
# Replace /dev/sdX with your actual drive (e.g., /dev/nvme0n1 or /dev/sda)
cfdisk /dev/sdX- Locate the existing Windows EFI System Partition (usually labeled
EFI system partition, size ~100MB to 500MB). Keep it! We will mount it as/bootwithout formatting it. - Scroll down to the Free Space you shrank in Windows.
- Create a Swap Partition (optional, recommended if you have low RAM or want Hibernation):
- Select Free Space > New > Size:
4G(or matching your RAM size). - Change Type to
Linux swap.
- Select Free Space > New > Size:
- Create the Root Partition (
/):- Select remaining Free Space > New > Use all remaining size.
- Ensure Type is set to
Linux filesystem.
- Select Write, type
yes, and then Quit.
- Select your drive, choose gpt label layout.
- EFI Partition: New > Size
512M> TypeEFI System. - Swap Partition: New > Size
4G> TypeLinux swap. - Root Partition: New > Remaining Size > Type
Linux filesystem. - Select Write, type
yes, then Quit.
Assume /dev/sdX1 is EFI (single boot only), /dev/sdX2 is swap, and /dev/sdX3 is root.
- Root Partition (ext4):
mkfs.ext4 /dev/sdX3
- Swap Partition:
mkswap /dev/sdX2 swapon /dev/sdX2
- EFI Partition (ONLY format this if you did a Single-Boot clean install! Never format your Windows EFI partition!):
# Run ONLY on a single-boot clean setup: mkfs.vfat -F 32 /dev/sdX1
Mount root:
mount /dev/sdX3 /mntCreate the /boot folder and mount the EFI partition (For dual-boot, this is your existing Windows EFI partition; for single-boot, this is the EFI you formatted):
mkdir -p /mnt/boot
mount /dev/sdX1 /mnt/bootRun pacstrap to install the core operating system package set:
pacstrap -K /mnt base linux linux-firmware nano vim networkmanager sudoCreate the filesystem table file:
genfstab -U /mnt >> /mnt/etc/fstab
# Verify fstab contents look clean:
cat /mnt/etc/fstabLog in as the root user inside your new Arch Linux environment:
arch-chroot /mntSet your local time zone (replace Region/City with your own, e.g., Europe/London or America/New_York):
ln -sf /usr/share/zoneinfo/Asia/Dhaka /etc/localtime
hwclock --systohc- Edit the locale generator file:
nano /etc/locale.gen
- Uncomment
en_US.UTF-8 UTF-8(and any other desired locales). Save and exit (Ctrl+O,Enter,Ctrl+X). - Generate the locales:
locale-gen
- Set the system locale environment variable:
echo "LANG=en_US.UTF-8" > /etc/locale.conf
- Set your custom hostname (replace
myarchwith your preferred machine name):echo "myarch" > /etc/hostname
- Configure local hosts:
Add the following lines:
nano /etc/hosts
127.0.0.1 localhost ::1 localhost 127.0.1.1 myarch.localdomain myarch - Enable NetworkManager so you have internet connectivity upon reboot:
systemctl enable NetworkManager
Set the administrative root password:
passwdCreate a personal user account (replace username with your chosen handle) and grant them administrative sudo privileges:
useradd -m -G wheel,storage,power -s /bin/bash username
passwd usernameAllow the wheel group to use sudo:
EDITOR=nano visudoScroll down and uncomment this line by removing the # symbol:
%wheel ALL=(ALL:ALL) ALL
Save and exit.
GRUB is ideal for dual-booting as it detects Windows easily.
pacman -S grub efibootmgr os-prober mtools dosfstoolsIf you are dual-booting with Windows, you must tell GRUB to look for other systems using os-prober.
- Open the GRUB configuration file:
nano /etc/default/grub
- Scroll to the very bottom and add (or uncomment) the following line:
GRUB_DISABLE_OS_PROBER=false - Save and exit.
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfgVerify that the output displays: Found Windows Boot Manager on... (if dual booting).
Exiting chroot and booting into your shiny new Arch Linux system:
exit # Exit the chroot console
umount -R /mnt # Recursively unmount partitions
reboot # Reboot system, remove USB installer!Upon startup, the GRUB menu will allow you to select Arch Linux or Windows Boot Manager. Log in with your new user and proceed to desktop environment setup!