How to Dual Boot Windows 11 and Arch Linux (Without Breaking Windows)

Today

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 iwd for 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 off

This disables hibernation entirely, which also frees disk space used by hiberfil.sys.

Shrink the Windows Partition

Free up space for Arch without deleting Windows:

  1. Press Win + X and open Disk Management
  2. Right-click your main partition (usually C:) and choose Shrink Volume
  3. Enter the amount to shrink in MB — 102400 gives you 100 GB for Arch
  4. 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
exit

On 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=sync

Replace /dev/sdX with your actual USB device — not a partition like sdX1, and definitely not your internal drive. Double-check with lsblk first.

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_size
  • 64 means you're in UEFI mode ✅
  • No such file or directory means 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.org

Step 5: Partition the Free Space

Find your disk and confirm the unallocated space from Step 2:

lsblk

Typical 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 here

Start the interactive partitioner against your disk:

cfdisk /dev/nvme0n1

Select 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 partition

The partition numbers depend on your layout — cfdisk prints them as you create each one. Use lsblk to 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/boot

The 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/windows for now, and add it to /etc/fstab later with the ntfs3 driver.

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 networkmanager

Swap linux for linux-lts if you want a more conservative kernel. Generate the filesystem table:

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

Step 7: Configure the New System

Enter your installation:

arch-chroot /mnt

Set 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 password

Create your user and enable the network:

useradd -m -G wheel yourname
passwd yourname
EDITOR=nano visudo          # uncomment %wheel ALL=(ALL:ALL) ALL
systemctl enable NetworkManager

Regenerate the initramfs so it can find your root partition:

mkinitcpio -P

Step 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.cfg

The 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 install

systemd-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
EOF

And 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
EOF

Then exit, unmount, and reboot:

exit
umount -R /mnt
reboot

Remove 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
reboot

Or 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 /f

Alternatively, 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