Windows detected that the EFI system partition was formatted as NTFS

fat32ntfspartitioninguefiwindows 10

Current Setup

• /dev/sda – Secondary internal disk (despite the a).
• /dev/sda1 – Old ESP, not actually used.
• /dev/sda2 – An unused Linux, for backup purposes.
• /dev/sda3 – Swap partition.
• /dev/sda4 – Windows 10 installer (NTFS formatted, copied from an ISO, due to a lack of a spare USB that could fit it).
• /dev/sdb – Primary internal disk (despite the b).
• /dev/sdb1 – The actual ESP in use, with rEFInd on it.
• /dev/sdb2 – Debian. My home ❤.
• /dev/sdb3 – A cleanly formatted NTFS partition, prepared just for Windows.
• /dev/sdb4 – Shared FAT32 partition for data storage.

Problem

I want to install Windows 10 onto /dev/sdb3, so I made a temporary partition on /dev/sda4 to hold the Windows installer files, because I lack a sufficiently large USB to act as an installer disk. Once that was done, I booted into the installer via rEFInd, and began installation. However, I could not get past the beginning of the phase where it begins to copy files. It complains that the EFI partition (the ESP) is incorrectly formatted as NTFS, even though it is clearly FAT32. The target partition for Windows itself is NTFS, as is the installer disk.

Question

Is Windows supposed to be this hard to install? 😣

My current guess is that Windows searches all partitions on all fixed disks to find one that looks like an EFI System Partition, ignoring the partition type GUID. (This is probably for auto-repair reasons, since a wrong partition type GUID wouldn't actually prevent UEFI from booting from that partition, but I'm guessing Windows wants to correct it anyway.)

As a result it's probably misdetecting its own "installer" partition as the EFI System Partition due to it having an \EFI directory.

Possible workarounds:

• Rename the \EFI directory on the NTFS partition to something like \NotEFI. You should still be able to start the bootloader, either through rEFInd or through the EFI Shell.

• Delete (or rename) the \EFI directory from the NTFS partition as soon as the Windows installer has finished booting, by using the ShiftF10 terminal window. This should prevent the installer from picking it up as an EFI System Partition.

• Boot the installer from a small USB stick, and place only the Install.wim file on the temporary NTFS partition (at the root of the filesystem). This should be supported for the last few Win10 releases, according to WinPE documentation.

• Instead of using the standard installer, open the Shift+F10 terminal window and manually install Windows using dism /apply-image and bcdboot.