Skip to content

Instantly share code, notes, and snippets.

@subrezon
Created September 23, 2022 16:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save subrezon/b0446ae18cf544127e61eebb2e17ebd8 to your computer and use it in GitHub Desktop.
Save subrezon/b0446ae18cf544127e61eebb2e17ebd8 to your computer and use it in GitHub Desktop.
Dual boot Pop!OS + Windows 10/11 (very easy)

This tutorial will illustrate how to set up a dual boot Pop!OS + Windows 10/11 system very easily, without losing much disk space or installing not officially supported alternative boot loaders like GRUB or rEFInd.

The main issue with dual booting Pop!OS and Windows is that unlike most other distributions, Pop!OS uses the systemd-boot bootloader, which in its default configuration does not support loading kernels from partitions other than the EFI partition. Thus, Pop!OS requires the EFI partition to be at least 500 MiB in size, whereas the size of the EFI partition created during the installation of Windows is just 100 MiB. This would suffice for GRUB or rEFInd, since these bootloaders are able to load the kernel from the root partition, but not for systemd-boot. In this guide, we will perform a customized Windows installation with an enlarged EFI partition, and use that for a 100% default Pop!OS installation.

WARNING : this will not work on already existing installations of Windows or Pop!OS, you will have to install both from scratch.

  1. Start a regular Windows install. Once you get to the screen where you choose between "Recommended" and "Custom" install, press Shift + F10 to enter command prompt. Start the diskpart utility. WARNING: the usual Linux disk utilities don't write any changes to disk until you've finished setting it up. diskpart writes every command to disk immediately. Be very careful while using diskpart, you can very easily lose data:
diskpart

List the connected drives:

list disk

Find the drive you want to use as boot drive and select it:

select disk N

Create the enlarged EFI partition:

create partition efi size=500

Create a regular MSR partition:

create partition msr size=16

Finally, create a primary partition of desired size (in MiB, not MB):

create partition primary size=XXXXX

Exit the utility and the command prompt:

exit
exit

Continue the installation by selecting the "Custom" option, then select the primary partition you just created. The Windows installation will continue normally. Finish installing Windows.

  1. Boot into the Pop!OS installer. When you get to the choice between a "Recommended" and "Custom" installation, select "Custom".

Create an appropriately sized swap partition (same size as your system's RAM) and a root partition with a filesystem of your choice.

After creating the partitions, select the Windows EFI partition and mount it at /boot. Select the swap partition. Then select the root partition and mount it at /. Continue the installation normally.

  1. After booting into Pop!OS, edit the /boot/efi/loader/loader.conf file and make it look like this:
default Pop_OS-current
timeout 5
console-mode max
editor no
  1. Reboot. Now, at boot you will have 5 seconds to choose to boot into Windows instead of Pop!OS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment