- Download Windows 10 ISO 64-bit version from Microsoft: https://www.microsoft.com/en-us/software-download/windows10ISO
- Unpack the ISO file, then separate it into two folders: one for the FAT32 boot partition and another one for the NTFS data partition. More on this later.
- (Optional) Add an autounattend.xml file to the boot partition.
- Insert a USB flash drive, delete all partitions on it, re-initialize the partition table with GPT, then make two partitions: the first one has to be a FAT32 partition at least 600MB in size, and the second one as an NTFS partition with at least 4.8GB in size. We can do this even in Linux, there is no need to install any boot loader.
- Copy the files we prepared earlier accordingly, the contents of each folder copied into the corresponding partitions.
- Reboot, enter the BIOS/EFI, enable EFI boot, and choose the USB flash drive as the boot media. Then save your settings and reboot again.
Now, about the two folders for the two separate partitions:
- First, extract the ISO file.
- Make two directories, let's name them 1-fat32 and 2-ntfs.
- Move the sources/ folder into 2-ntfs.
- Move everything else into 1-fat32.
- Make a new folder sources/ inside 1-fat32, and move sources/boot.wim from 2-ntfs into this newly created folder.
- EFI can boot from a USB flash drive without a dedicated boot loader.
- EFI cannot boot from an NTFS partition. However, the file sources/install.wim is too large for a FAT32 partition.
- Therefore, the solution is to create a FAT32 partition and put all the boot files in it. Then create an NTFS partition and put all the installation files in it.
- Boot files include, at least these files: bootmgr, bootmgr.efi, everything inside boot/ and efi/, setup.exe for installation, everything inside support/, and also sources/boot.wim (that's why we need to move it).
- Installation files include everything inside sources/ except for the file named boot.wim.