How to Dual Boot Windows 11 and Arch Linux
Dual booting Windows 11 and Arch Linux gives you the best of both worlds: Windows for gaming, Adobe apps, or work software, and Arch Linux for a fast, minimal, fully customizable development environment. Installing Arch alongside Windows is safe when you do it in the right order — this guide walks you through the entire dual boot process, preparing Windows, partitioning your drive without losing data, installing Arch Linux, configuring a bootloader that recognizes both operating systems, and fixing the common issues (like the clock being off by a few hours) that trip most people up.
Everything here applies to a standard UEFI system with either a single NVMe/SSD or a separate drive for each OS. If you're on legacy BIOS/MBR, the bootloader section differs — the rest is the same idea.
Prerequisites
Before starting, make sure you have:
- A PC with UEFI firmware (any machine that runs Windows 11 does) and ideally a 64-bit CPU
- At least 60–80 GB of free space for Arch Linux — 40 GB minimum if you plan to keep it lean
- A USB flash drive with at least 2 GB of storage
- A stable internet connection (wired is easiest; Arch's ISO includes
iwdfor Wi-Fi) - Roughly 1–2 hours of uninterrupted time
- A backup of anything important — you will be resizing partitions, and mistakes at that stage are permanent
Step 1: Back Up Your Data
Resizing the Windows partition touches the disk layout, so treat this step as mandatory, not optional:
- Copy personal files to an external drive or cloud storage
- Note any BitLocker recovery key before you begin (go to account.microsoft.com/devices/recoverykey while signed in). Windows 11 enables BitLocker device encryption by default, and if the recovery screen appears after partition changes, this key is the only way back in
- Optionally create a Windows System Restore point and a recovery USB
Step 2: Prepare Windows for Dual Boot
A few Windows settings make the dual boot process dramatically smoother.
Disable Fast Startup
Fast Startup leaves Windows in a hybrid hibernation state, which keeps the NTFS partition mounted and can cause filesystem corruption when you write to it from Linux.
Open Control Panel → Hardware and Sound → Power Options → Choose what the power buttons do, click Change settings that are currently unavailable, and uncheck Turn on fast startup. Or run this in an admin Command Prompt:
powercfg /h offThis disables hibernation entirely, which also frees disk space used by hiberfil.sys.
Shrink the Windows Partition
Free up space for Arch without deleting Windows:
- Press
Win + Xand open Disk Management - Right-click your main partition (usually
C:) and choose Shrink Volume - Enter the amount to shrink in MB — 102400 gives you 100 GB for Arch
- Click Shrink
Leave the freed space unallocated — don't format it. Arch will partition it during installation. Shrinking from Windows is safer than resizing NTFS from Linux.
Note Your Partition Layout (Optional but Useful)
In an admin Command Prompt, list your disks so you know what you're working with later:
diskpart
list disk
list partition
exitOn a default Windows 11 UEFI install you'll see three small partitions: EFI (~100 MB, FAT32), Microsoft Reserved (16 MB), and your main C: drive. Do not delete the EFI partition — both operating systems need it.
Step 3: Create a Bootable Arch Linux USB
Download the latest ISO from the official Arch Linux download page and verify its checksum. Then write it to your USB drive:
On Windows — use Rufus (select GPT partition scheme and UEFI (non CSM) target) or Ventoy:
On Linux — identify your USB device with lsblk, then:
sudo dd bs=4M if=archlinux-x86_64.iso of=/dev/sdX status=progress oflag=syncReplace
/dev/sdXwith your actual USB device — not a partition likesdX1, and definitely not your internal drive. Double-check withlsblkfirst.
Step 4: Boot from the USB and Verify UEFI Mode
Restart and press your firmware's boot key (F2, F10, F12, Del — depends on the manufacturer) to open the boot menu, then select your USB drive.
Once you reach the Arch shell, confirm you booted in UEFI mode — this is essential for sharing Windows' EFI partition:
cat /sys/firmware/efi/fw_platform_size64means you're in UEFI mode ✅No such file or directorymeans you booted via legacy CSM — reboot and disable CSM/Legacy Boot in firmware settings
Also connect to the internet now:
iwctl # for Wi-Fi
station wlan0 scan
station wlan0 get-networks
station wlan0 connect "YourNetwork"
exit
ping -c 3 archlinux.orgStep 5: Partition the Free Space
Find your disk and confirm the unallocated space from Step 2:
lsblkTypical single-drive layout (your device is likely /dev/nvme0n1 for NVMe or /dev/sda for SATA):
nvme0n1p1 300M EFI System Partition (Windows)
nvme0n1p2 16M Microsoft Reserved
nvme0n1p3 ~200G Windows (C:)
(unallocated ~100G) ← Arch goes hereStart the interactive partitioner against your disk:
cfdisk /dev/nvme0n1Select gpt if asked, then create these partitions in the free space:
| Mount point | Size | Type |
|---|---|---|
/ (root) |
Remaining free space minus swap | Linux filesystem |
[SWAP] |
8–16 GB (or RAM size if you want hibernation) | Linux swap |
You don't need a new EFI partition — you'll reuse Windows' existing ESP, which keeps the firmware boot menu clean. Just don't format it.
Write the changes, quit cfdisk, and format:
mkfs.ext4 /dev/nvme0n1p4 # your new root partition
mkswap /dev/nvme0n1p5 # your new swap partitionThe partition numbers depend on your layout —
cfdiskprints them as you create each one. Uselsblkto confirm before formatting, since formatting the wrong partition destroys Windows.
Step 6: Install the Base System
Mount everything, including Windows' existing EFI partition:
mount /dev/nvme0n1p4 /mnt
mount --mkdir /dev/nvme0n1p5 /mnt/swap
swapon /dev/nvme0n1p5
mount --mkdir /dev/nvme0n1p1 /mnt/bootThe ESP now lives at /mnt/boot so the bootloader installs directly into it.
Tip: if you want to read your Windows files from Arch, also mount the Windows partition somewhere like
/mnt/mnt/windowsfor now, and add it to/etc/fstablater with thentfs3driver.
Run the speed test mirror sync and install the base system:
reflector --save /etc/pacman.d/mirrorlist --country US --protocol https --latest 5
pacstrap -K /mnt base linux linux-firmware sudo nano vim networkmanagerSwap linux for linux-lts if you want a more conservative kernel. Generate the filesystem table:
genfstab -U /mnt >> /mnt/etc/fstabStep 7: Configure the New System
Enter your installation:
arch-chroot /mntSet the essentials:
ln -sf /usr/share/zoneinfo/Region/City /etc/localtime # e.g. Asia/Kolkata
hwclock --systohc
nano /etc/locale.gen # uncomment your locale, e.g. en_US.UTF-8 UTF-8
locale-gen
echo "LANG=en_US.UTF-8" > /etc/locale.conf
echo "arch" > /etc/hostname
passwd # set the root passwordCreate your user and enable the network:
useradd -m -G wheel yourname
passwd yourname
EDITOR=nano visudo # uncomment %wheel ALL=(ALL:ALL) ALL
systemctl enable NetworkManagerRegenerate the initramfs so it can find your root partition:
mkinitcpio -PStep 8: Install a Bootloader That Finds Windows
This is the step that makes it a true dual boot — you need a boot menu offering both Arch and Windows. Two solid options:
Option A: GRUB (Recommended for Dual Boot)
GRUB with os-prober automatically detects Windows:
pacman -S grub os-prober ntfs-3g
nano /etc/default/grub # add: GRUB_DISABLE_OS_PROBER=false
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfgThe config generation output should include Found Windows Boot Manager — that's your Windows entry being added. If it isn't detected, make sure the EFI partition is mounted at /boot and that os-prober is installed before running grub-mkconfig.
Option B: systemd-boot (Simpler, Native to Arch)
bootctl installsystemd-boot doesn't auto-detect other systems, so create the Windows entry manually:
cat > /boot/loader/entries/windows.conf << 'EOF'
title Windows 11
efi /EFI/Microsoft/Boot/bootmgfw.efi
EOFAnd create an Arch entry (adjust the PARTUUID to your root partition from blkid):
cat > /boot/loader/entries/arch.conf << 'EOF'
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw
EOFThen exit, unmount, and reboot:
exit
umount -R /mnt
rebootRemove the USB drive. You should now see a boot menu with both Arch Linux and Windows. Boot into Arch and log in with the user you created.
Step 9: Install a Desktop Environment (Optional)
For a usable GUI, install a desktop or window manager. KDE Plasma is the most complete out-of-the-box experience:
sudo pacman -S plasma sddm konsole dolphin firefox
sudo systemctl enable sddm
rebootOr keep it minimal with a tiling window manager like Hyprland or i3 once the base system boots. Either way, the dual boot setup itself is complete at this point.
Fix the Dual Boot Clock Problem (Windows and Linux Show Different Times)
This catches almost everyone: after dual booting, Windows shows the wrong time by exactly your UTC offset. Windows reads the hardware clock as local time, while Arch sets it to UTC.
The clean fix is to make Windows use UTC too. While booted into Windows, open regedit and create this value in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation:
- Name:
RealTimeIsUniversal - Type:
DWORD (32-bit) - Value:
1
Or run this in an admin PowerShell:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /t REG_DWORD /d 1 /fAlternatively, keep Windows as-is and tell Arch to use local time (sudo nano /etc/adjtime containing 0.0 localtime), but UTC is the technically correct setting and plays better with dual boot setups.
Troubleshooting Common Dual Boot Issues
Windows doesn't appear in the GRUB menu. Confirm the EFI partition is mounted at /boot, os-prober is installed, and GRUB_DISABLE_OS_PROBER=false is set, then re-run grub-mkconfig -o /boot/grub/grub.cfg from inside Arch.
Arch doesn't appear in the Windows boot menu. Your firmware may be booting straight into Windows. Enter firmware setup and move GRUB or Linux Boot Manager above Windows Boot Manager in the boot order. From Windows you can also run bcdedit /set {bootmgr} path \EFI\GRUB\grubx64.efi (use \EFI\systemd\systemd-bootx64.efi for systemd-boot).
BitLocker recovery screen after install. Enter your recovery key from Step 1, boot into Windows, and suspend BitLocker with manage-bde -protectors -disable C: while making further partition changes.
Missing boot entries entirely. Boot from the Arch USB again, run arch-chroot into your mounted system, and reinstall the bootloader — grub-install + grub-mkconfig for GRUB, or bootctl install for systemd-boot. Your installed system is untouched; only the boot files needed fixing.
grub-install fails with "efi variables not supported". You booted the USB in legacy mode. Reboot into UEFI mode (Step 4) and rerun the commands.
Frequently Asked Questions
Is dual booting Windows and Arch Linux safe? Yes, as long as you shrink Windows' partition from within Windows, never format the EFI partition, and back up first. Most horror stories come from formatting the wrong partition or hibernating Windows instead of shutting it down.
How much space do I need for Arch Linux? A base Arch install needs about 5–10 GB, but budget 60–100 GB for a desktop environment, development tools, and project files to grow comfortably.
Can Windows updates break the dual boot? Rarely. Major Windows feature updates occasionally rewrite boot entries or re-enable Fast Startup. If GRUB disappears after a Windows update, restore it from a live USB, and re-check the Fast Startup setting.
Can I access Windows files from Arch Linux?
Yes — mount the NTFS partition with the in-kernel ntfs3 driver (mount -t ntfs3 /dev/nvme0n1p3 /mnt/windows) or install ntfs-3g for the FUSE-based driver. Windows must be fully shut down, not hibernated, or the filesystem will be mounted read-only or refused.
GRUB vs systemd-boot for dual boot — which should I choose? GRUB auto-detects Windows via os-prober and supports themes, which makes it the easier dual boot choice. systemd-boot is faster and simpler but requires manually creating the Windows entry.
Wrapping Up
You now have a Windows 11 and Arch Linux dual boot sharing one EFI partition: Windows handles gaming and Windows-only software, and Arch gives you a clean, rolling-release system you control completely. Keep both OSes shut down fully (not hibernated) before switching, re-run grub-mkconfig after kernel changes if you use GRUB, and enjoy having Arch's pacman and the AUR one boot away from Windows.
Related Reads
- How to Install PostgreSQL on Arch Linux with Pacman — once Arch is running, set up your first database server
- What Happens When You Type a URL in Your Browser — if the DNS and UEFI steps in this guide made you curious about what's underneath