4

I've installed Windows 10 on my machine, and I am running into a real head scratcher. My entire installation is contained in a single C: partition on my SSD. I know for a fact that I am booting using UEFI, since when I run msinfo32 the BIOS Mode field is set to UEFI.

Also, my C: drive contains a folder called EFI with what looks like all the Windows boot files. I am very confused because I thought EFI needed its own FAT32 partition. How is it that it all lives on my NTFS C: drive? Below are some diagnostic screenshots.

Link to screenshots

I should also note that I used EasyBCD to change the boot drive from disk 0 to disk 2 (see screenshots). I then removed the system reserved partition from disk 0 and reformatted it.

Everything works, it just doesn't look anything like what I have read about online. Did EasyBCD perform some magic I am not understanding? If any Windows experts can explain this to me, it would be much appreciated. Thanks!

5
  • 2
    An EFI bootloader does not necessarily have to reside in a FAT32 partition. Your BIOS likely has a NTFS driver included with its EFI firmware, which would allow your BIOS to enumerate your filesystem and find the EFI bootloader file it's looking for.
    – Brian
    Commented Jul 26, 2017 at 2:09
  • Brilliant! I asked this on reddit as well and some people were saying the same thing. I was worried I would have to do a reinstall, but since everything boots fine I am just going to leave it alone and carry on. Thank you!
    – lucasc333
    Commented Jul 26, 2017 at 2:32
  • @Brian I forgot to tag you to say thanks! You've eased my worry about this.
    – lucasc333
    Commented Jul 26, 2017 at 2:44
  • 1
    I've never heard of an EFI with a built-in NTFS driver, and AFAIK the Windows installer insists on a FAT32 EFI System Partition (ESP) when installing. I don't trust the standard Windows partitioning tools as far as I could throw the Microsoft corporate HQ building, so my suspicion is that you have such an ESP that's not being shown in your screen shots. Using another tool might reveal it. OTOH, if the firmware does have an NTFS driver, it would be possible, at least theoretically, to boot from an NTFS partition, so Brian might be right.
    – Rod Smith
    Commented Jul 27, 2017 at 16:11
  • EFI does not have NTFS driver. Only EUFI has it. EFI is Apple thing. Again, as bcdedit says the bootloader can be in on C:. Just like Recovery can be in C:\Recovery see reagentc.exe command. Commented Dec 23, 2021 at 14:37

3 Answers 3

2

I didn't read everything here so sorry if I repeat something. As far as I understand it you don't have a problem: you are curious. So here it is:

  1. You CAN boot in UEFI mode from NTFS partition if 2 things are true: -you have the EFI directory in that NTFS partition with the right configuration -your pc hardware supports it. Older PCs can only boot from FAT32 but newer don't care. I actually am able to boot from exFAT, NTFS and maybe more.
  2. Just because you have EFI folder in C drive, doesn't mean your windows boots from there. Your PC still could have an EFI partition. You can see it in windows disk management tool or any other partition manager like Easeus partition master, Acronis disk director... not sure about the exact names but it doesn't matter.
  3. When I started to full around with windows to go, I found that Rufus (the program) makes a very interesting fat32 partition smaller than 1MB called UEFI:NTFS or something. I think you can download the files from their website or create them with the program... I forgot already. However if you make a small fat32 partition on your hard drive and put these files there your PC will find and boot from EFI directory on your C: drive even if it is NTFS and even if your PC doesn't support it. Hope that was interesting for you.
0

There's literally no way for this to occur without a disk/partition misconfiguration, as there is no way for the Windows installer to do this due to how Windows is installed. OP references:

I should also note that I used EasyBCD to change the boot drive from disk 0 to disk 2 (see screenshots). I then removed the system reserved partition from disk 0 and reformatted it.

There are only a few ways in which this type of disk/partition misconfiguration could occur:
(lack of a WinRE partition implies dual-booting Windows or Windows hadn't been clean installed since Win 8)

  • Incorrect bcdboot syntax
  • OS was moved to a new HDD without properly configuring partitions before booting it
  • System was previously configured to dual-boot, the previously existing EFI partition was deleted, and it was never reconfigured on the remaining OS' HDD
    • Once the EFI partition on a different disk was deleted, either the OP or Windows' Startup Repair repaired the lack of boot files using BootRec or BcdBoot, with the boot files being placed on the only partition they could be without an EFI partition - the OS partition, which is an unsupported configuration (boot process)


To resolve:

  1. Download Windows 10 install media → install on another PC → Save ISO
  2. Create bootable USB with Rufus → Boot it → At GUI, Shift+F10 to open terminal
  3. If the partition table is not GPT, use mbr2gpt to convert it:
    1. Verify disk 2 is the correct disk via DiskPartlis diskexit
    2. mbr2gpt /convert /disk:2
      

  4. Create required UEFI-boot partitions on the OS HDD via DiskPart:
    1. DiskPartlis disksel dis # → Verify it's the OS disk: det disk
    2. WinRE:
      sel par 1 → Verify it's the OS partition: det par
      Shrink Desired=665 Minimum=650
      Cre Par Pri Size=665 Id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
      Format Quick Fs=NTFS Label=WinRE
      Gpt Attributes=0x8000000000000001
      
    3. EFI and MSR:
      sel par 2 → Verify it's the OS partition: det par
      Shrink Desired=388 Minimum=388
      Cre Par EFI Size=100
      Format Quick Fs=FAT32 Label=EFI
      Assign Letter=Y
      Cre Par Msr Size=16
      
    4. Get OS partition drive letter: lis volexit
      (C: is usually not the OS drive letter in WinPE/WinRE)

  5. Configure EFI boot:
    ::# Create EFI directories and enter:
        MkDir "Y:\EFI\Microsoft\Boot"
        Cd /d "Y:\EFI\Microsoft\Boot"
    
    ::# Create EFI boot structure:
        BootRec /Fixboot
    
    ::# If Access Denied error occurs (C: is OS partition):
        BcdBoot C:\Windows /s C: /f UEFI
    
    ::# Resolve any other boot issues:
        BootRec /FixMBR && BootRec /RebuildBCD
    
    Remove EFI mountpoint: DiskPartSel Vol YRemoveExit

  6. Reboot via wpeutil reboot, then configure WinRE once booted back to Windows:
    1. Open an Admin Terminal: WinKey+ROpen: powershellCTRL+SHIFT+OK
    2. Mount WinRE partition: DiskPart
      lis volsel vol # → Verify: det parAssign Letter=ZExit
    3. Extract WinRE.wim from the Windows install USB's sources\install.wim||.esd:
      # Get list of images [indexes] within the ESD/WIM:
        Dism /Get-ImageInfo /ImageFile:"E:\sources\install.wim"
      
      # Mount install.wim||.esd (usually index 1: Home | 6: Pro):
        MkDir "C:\Mount" ; Dism /Mount-Image /ImageFile:"E:\sources\install.wim" /Index:1 /MountDir:"C:\Mount" /ReadOnly
      
      # Copy WinRE.wim:
        Xcopy "C:\Mount\Windows\System32\Recovery\WindowsRE\WinRE.wim" "C:"
        # If hidden file: Xcopy /H
      
      # Unmount image, discard changes:
        Dism /Unmount-Image /MountDir:"C:\Mount" /Discard
      
    4. # Copy WinRE.wim:
        MkDir "Z:\Recovery\WindowsRE" ; Xcopy "C:\WinRE.wim" "Z:\Recovery\WindowsRE"
      
      # Disable WinRE:
        ReAgentC /Disable
      
      # Set Custom WinRE Path:
        ReAgentC /SetREimage /Path "Z:\Recovery\WindowsRE"
      
      # Enable WinRE and verify:
        ReAgentC /Enable ; ReAgentC /Info
      
      # Cleanup:
        Del "C:\WinRE.wim" ; RmDir "C:\Mount"
      
    5. Remove WinRE mount point: DiskPartSel Vol ZRemoveExit
7
  • It would very nice to describe how to delete duplicated recovery partitions due to a bug before windows 10 2004. Also, again, having only one partition is very much supported by the standards, that is how linux boots without bootloader. Commented Dec 22, 2021 at 0:17
  • @ВалерийЗаподовников Please see third bullet's sub-bullet - it is an unsupported configuration in Windows, regardless of what UEFI supports (please reference the linked to man pages). Windows is not Linux, with Linux having nothing to do with the OP's question or this answer. I'm unsure of what bug you're referring to, but any system partition can be deleted in DiskPart via del par override (OEM systems that haven't been clean installed will have two recovery partitions, one with WinRE, the other with OEM recovery scripts & images [.wim||.swm] for restoring to its factory state.)
    – JW0914
    Commented Dec 22, 2021 at 13:24
  • Cont'd... @ВалерийЗаподовников The fundamental reason why boot files [default since at least Win7] and WinRE/recovery files [default since Win8] should always be housed on their own separate partitions, independent of the OS partition, is it prevents boot issues should the OS partition become corrupted. In Windows, this allows WinRE to be booted to even if the OS partition is corrupted or system files are missing; however, if the boot files were stored on the OS partition and the OS partition became corrupted, it would be impossible to boot WinRE and one would need a bootable WinPE USB.
    – JW0914
    Commented Dec 22, 2021 at 13:38
  • Windows can boot using grub and grub can boot using Windows .efi. Are you saying that is unsupported config too? Hahaha. The bug is about winre.wim file growing bigger and bigger! In windows 10 it was only 200 MB and thus partition was in the very start and only 350 MiB. Now, in windows 2004 it was 300 MiB and partition was 505 MiB, now in windows 11 the .wim file is 535 MiB! And every time it is growing bigger and bigger, because newer MSVC 14.28 (that is visual studio 2019) used to compile that 💩 code of MS is worse and worse. So everytime a new partition is created, I fixed it yesterday. Commented Dec 23, 2021 at 14:52
  • And BTW .efi bootloader is also bigger and bigger. Oogh. Last update of windows 11 (.efi was signed 3 December 2021) is even bigger. EFI partition is still only 100 MiB and yet I am afraid at some point it will not be enough too. Commented Dec 23, 2021 at 14:58
0

An EFI/EUFI bootloader (and Recovery) can reside in a NTFS partition if there is a capsule driver for NTFS in EUFI. ONLY one partition at all, on all your PC. That is not a problem as was said correctly above. Moreover, you do not actually even need to GPT the drive (officially the UEFI 2.x spec requires support for both GPT and MBR partitions. Pages 324 (9.3.6.1), also 72, 113–115, 539, etc, see Do hard drives need a GUID partition table (GPT) to boot in UEFI mode?). Really... Sigh. So many false beliefs.

It should also be noted very importantly (!!!) that Windows is not like Linux that has FAT32 partition mounted (called linked in windows) in /boot/efi (/boot/efi is by itself an empty folder) on operating system drive

root@kali:~# mount
****
/dev/sda3 on /boot/efi type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)
****

But Windows has the bootloader duplicated (not mounted) in C:\WINDOWS\Boot, so that is why you managed to boot (even though you have another place for bootloader).

10
  • This answer contains multiple factual inaccuracies: (1) Windows only supports GPT with EFI boot, MBR with BIOS/CSM Mode boot; (2) EFI boot files residing on the OS partition is incorrect for Windows and is an unsupported configuration; (3) %WinDir%\Boot contains a backup of all boot files for all supported boot scenarios and is not involved in the Windows boot process
    – JW0914
    Commented Dec 18, 2021 at 15:57
  • Well, that backup is not mounted as I said. Are you saying Windows cannot use it to boot? Because that is what topic starter claims. Commented Dec 19, 2021 at 3:51
  • %WinDir%\Boot contains a backup of the boot files, less the BCD store [system-specific], which are used by BcdBoot and BootRec to rebuild the boot partition's files; however, these have nothing to do with booting the system, are not accessed during boot, nor can they be used, in and of themselves, to boot the OS. (%WinDir%\Boot is to the OS boot files as the Component Store [%WinDir%\WinSxS] is to %WinDir% - the Component Store maintains a backup of all system files, which is used by Dismand Sfc to fix corruption within %WinDir%)
    – JW0914
    Commented Dec 19, 2021 at 13:16
  • Oh, how is it possible to boot using only one NTFS partition in UEFI mode? Because BIOS code (the code was leaked for BIOSes when Intel was hacked) can search for bootloader even in NTFS! Anyway linux can boot using only kernel itself as a PE executable, without grub! Also linux can boot using whatever partition you wanna since it just mounts bootloader in /boot/efi afterwards! Commented Dec 20, 2021 at 14:13
  • None of which has anything to do with the OP's question; this answer has multiple factual inaccuracies and I've provided the applicable man page links for the inaccuracies. As for how is the system allowed to boot without an EFI partition, the OP deleted the EFI partition on a different disk and when the OP, or Windows' Startup Repair, repaired the lack of a boot files using 'BootRec or BcdBoot, the boot files were placed on the only partition they could be placed within without an EFI partition - the OS partition, which is not a supported configuration.
    – JW0914
    Commented Dec 20, 2021 at 23:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .