[Solution] Workaround for UEFI NTFS driver problems with accessing \EFI folder

I have Asus P10S-WS motherboard (C236 chipset, similar to 1xx intel chipset series) and was experimenting with all-in-single-partition UEFI bootable Windows 10 installations.

The strange thing I noticed is that system BIOS detected UEFI bootloader on some but not all NTFS partitions. So It has an NTFS driver, but that driver is buggy.

I start digging the problem - the BIOS contains Flash-from-disk tool, and for bootable NTFS partitions it shows full listing of root directory, and for not-bootable only 1-2-3 first folders with names staring with $

I looked into differences between filesystems and found that they differ in $INDEX_ALLOCATION attribute. The problematic filesystem has some emptiness between actual NTFS_INDEX_FILE_NAME_ENTRYs - they were separated into several NTFS_INDEX_HEADER blocks each staring with INDX and some of them being completely empty (index[1] in the screenshot below was empty on expansion; Flash-from-disk tool showed only non-intrinsic-to-ntfs directories from index[0] part).

I tried running defrag.exe, but it doesn’t combine these arrays. So the ugly but very simple solution was found. Just create 5 empty folders in drive’s root with names starting with $ of maximal length:

$EFI_NTFS_DRIVER_FIX_FOLDER_WITH_LONGEST_POSSIBLE_NAME1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
$EFI_NTFS_DRIVER_FIX_FOLDER2WITH_LONGEST_POSSIBLE_NAME1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
$EFI_NTFS_DRIVER_FIX_FOLDER3WITH_LONGEST_POSSIBLE_NAME1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
$EFI_NTFS_DRIVER_FIX_FOLDER4WITH_LONGEST_POSSIBLE_NAME1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
$EFI_NTFS_DRIVER_FIX_FOLDER5WITH_LONGEST_POSSIBLE_NAME1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

Those names filled up the first index to the end, this lead to some restructurings and eventually the UEFI NTFS driver start seeing all folders on the BIOS - the windows10 successfully boots from \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI on NTFS partition (and all subfolders are listed in Flash-from-disk tool).

Additon after using such system for a 6 weeks
All works fine except the bcdedit command - by default it can’t find the BCD at C:\EFI\Microsoft\Boot\BCD. The workaround is explicitly specifying the store to operate on

bcdedit /store C:\EFI\Microsoft\Boot\BCD <any-bcdedit-subcommands-as-usual>
1 Like

Two months later I installed another windows on the same system with WinNTSetup utility specifying the same NTFS partition as “Boot” and “Installation” - and ran in the same issue again.
Now I investigated it a bit more.

According to UEFI Shell the problematic NTFS driver is an AMI NTFS Driver FvFile(768BEDFD-7B4B-4C9F-B2FF-6377E3387243)
However the version is unclear, since it is filled as 00010000. The containing BIOS itself is a P10S-WS-ASUS ver3801 https://dlcdnets.asus.com/pub/ASUS/mb/socket1151/P10S_WS/BIOS/P10S-WS-ASUS-3801.zip

The “create folders in root” fix described in the first message helped again. Now I also checked that removing them after creation is harmless. So I prepared create-and-delete those folders script as a batch file:fix-ntfs-root-for-buggy-uefi-v1.zip (943 Bytes)

If you think that your BIOS has a buggy NTFS driver and fails to run windows bootmgr.efi from NTFS partition - just unpack fix-ntfs-root-for-buggy-uefi-v1.bat in EFI folder and run it once (running it multiple times sometimes break the UEFI NTFS driver bug again).

@galkinvv, I solved this problem another.
I couldn’t see NTFS from EFI Shell.
I taked EFI module here
https://efi.akeo.ie/downloads/efifs-latest/x64/
then generated FFS with GenFfs.exe
and replaced NtfsDxe in BIOS with UEFItool.
new_ntfs.zip (44.0 KB)

1 Like