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!

3 Answers3

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

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).

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
JW0914
  • 9,096