Bootloader and partition changes can render a system unbootable. Keep a live USB handy and verify changes before rebooting production machines.
What you will achieve
Windows and Linux on one machine with a working GRUB menu, separate EFI partitions handled correctly, and Fast Startup disabled so NTFS and boot entries stay sane.
1) Prepare Windows first
- In Windows: Disk Management → shrink the C: volume to free unallocated space (50 GB minimum for Linux; more for games or dev work).
- Disable Fast Startup (Control Panel → Power Options → Choose what power buttons do).
- Disable BitLocker temporarily if it blocks partition changes, or know your recovery key.
2) Install Linux into free space
Boot a Linux installer USB. Choose Install alongside Windows if offered (Ubuntu) or manual partitioning:
- UEFI systems: reuse the existing EFI System Partition (ESP), usually 100–500 MB, mount at
/boot/efi— do not format if Windows still needs it. - Create
/(ext4 or btrfs) and optional/homein the unallocated space. - Install GRUB to the ESP; the installer should detect Windows and add an os-prober entry.
3) Fix missing Windows entry (if needed)
sudo apt install os-prober
sudo os-prober
sudo update-grub
On Fedora: sudo grub2-mkconfig -o /boot/grub2/grub.cfg (BIOS) or /boot/efi/EFI/fedora/grub.cfg (UEFI).
4) Time zone and RTC
timedatectl set-local-rtc 0
Linux expects UTC in the hardware clock; Windows can cope when this is set, reducing dual-boot clock drift.
Verify
Reboot twice. GRUB should list both OS entries. Boot each once. In Linux: efibootmgr -v shows firmware boot order.
5) BitLocker and Linux access to NTFS
If Windows uses BitLocker, Linux cannot mount the encrypted NTFS partition without the recovery key. For shared data, create an exFAT partition both OSes can read without encryption, or use cloud sync.
Disable Fast Startup before mounting NTFS from Linux — otherwise Windows leaves the filesystem dirty and Linux mounts read-only.
6) UEFI boot order
sudo efibootmgr -v
sudo efibootmgr -o 0002,0001
Some firmware "helpfully" resets boot order after Windows updates. Re-add Ubuntu/Fedora entry if GRUB vanishes.
7) Repair GRUB from live USB
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
sudo grub-install --boot-directory=/mnt/boot --efi-directory=/mnt/boot/efi
sudo update-grub
Adjust partition numbers to match lsblk on your machine.
When not to dual-boot
Consider a VM for Linux on a Windows desktop (Hyper-V, VirtualBox) if you lack spare partitions or firmware makes boot entries unreliable. Full dual-boot shines when you need bare-metal GPU performance for Linux workloads.