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_ENTRY
s - 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>