In our lab, we have a few dozens of dual-boot computers installed with Windows 10 and Ubuntu, using either legacy (CSM) or UEFI boot depending on the machine. In both cases, GRUB2 is used as a bootloader. All the machines have a custom partitioning scheme without a Windows recovery partition, as the latter is not needed for Windows to properly boot/work. If a machine has issues, we rather reimage it from the network (using a PXE booted Linux).
Now the problem comes with Windows feature updates, the latest being version 2004 (EDIT: at the time this question was written, but the problem continues with more recent updates like 21H1). When one of these updates installs, it somewhat shrinks the Windows system partition to add back the recovery partition. Given its reduced size it would be fine to leave it alone, but this operation breaks GRUB as the Linux partition changes number, and the first stage of GRUB doesn't understand partition labels to find its second stage (even on UEFI machines). If a machine is hanged on a GRUB rescue
prompt, there's no way to remotely correct the issue... sometimes leaving offline for hours (if not more) machines that must remain remotely accessible.
As we don't have any use for the recovery partition, the question is how to prevent the updates from creating it in the first point? Of course we could have it there when imaging the machines, but given that we don't actually want it, it seems just a waste of disk space.
EDIT for clarity: (a) The partition I'm mentioning is not the FAT32 formatted UEFI system partition (ESP), without which Windows could not even boot on UEFI setups. It is NTFS formatted and has a size of 400-500 MB. We don't have any reasons of getting rid of ESP on UEFI systems, it is also required by UEFI-GRUB by the way... (b) I've observed a few cases where the recovery partition doesn't get created, while the update succeeds. It might be related to the available space on the system partition, or from the number of primary partitions on MBR systems (4 being the maximum—if there are already 4, Windows could not add another one so easily). (c) Mainly looking at how to prevent this on currently installed systems. For future installations, we can include a precreated recovery partition to prevent updates from changing the partition scheme.
EDIT: after observation of the issue on several machines for several months, it appears that (a) the update process properly works without the recovery partition, and (b) the partition is never created on MBR-formatted disks that already have 4 primary partition and no extended one. One solution could therefore be to have the PXE-loaded code running pre-boot to create placeholder partitions to fill the MBR table... but modifying the MBR can always be source of trouble. On UEFI machines though, I don't see a clear solution as the GPT always has enough entries for the recovery partition to be created.
Windows 10 requires the system partition to function properly. One of the reasons is the upgrade process which requires it.
Rather then fight against how the system works you should repartition your disks. As you are deploying centrally from the server, this shouldn’t be an issue.
Source: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/configure-uefigpt-based-hard-drive-partitions