Here's some more data. If I delete the MacOS entry, and create a linux entry with the GRUB not installed checkbox checked, I can boot to my Linux partition. The GRUB menu that comes up after selecting NeoSmart Linux is fine, and everything works.
To me, this proves that the Linux install is OK, with the possible exception of the GRUB boot sector. No data on that yet.
My next experiment was to attempt to create a Linux entry (w/o the checkbox checked) while monitoring with sysinternals' procmon to see what was going on. Needle in a haystack, of course, and we're talking a big haystack. Still, I can see where the child process, bootgrabber, opens to \Device\HarddiskVolume4 and successfully reads 512 bytes. It then tries to create the aforementioned file in C:\NST, and the call to CreateFile fails with a "NAME INVALID" error. Not too surprising. But apparently, your code goes forward and creates the entry as if everything went just fine.
So where did bootgrabber get the bad file name from? Well, it appears that EasyBCD passed it on the command line:
Hope this helps.
Addendum:
And, if I execute
To me, this proves that the Linux install is OK, with the possible exception of the GRUB boot sector. No data on that yet.
My next experiment was to attempt to create a Linux entry (w/o the checkbox checked) while monitoring with sysinternals' procmon to see what was going on. Needle in a haystack, of course, and we're talking a big haystack. Still, I can see where the child process, bootgrabber, opens to \Device\HarddiskVolume4 and successfully reads 512 bytes. It then tries to create the aforementioned file in C:\NST, and the call to CreateFile fails with a "NAME INVALID" error. Not too surprising. But apparently, your code goes forward and creates the entry as if everything went just fine.
So where did bootgrabber get the bad file name from? Well, it appears that EasyBCD passed it on the command line:
So, the root of the problem would appear to be in EasyBCD where it's figuring out where it wants bootgrabber to store the retrieved boot sector.PID: 3108, Command line: "C:\Program Files\NeoSmart Technologies\EasyBCD\bin\bootgrabber.exe" /grab /d 0 /p 4 /file "C:\NST\nst_.mbr"
Hope this helps.
Addendum:
And, if I execute
instead, I get a 512 byte file with that name in c:\nst. No surprise there."C:\Program Files\NeoSmart Technologies\EasyBCD\bin\bootgrabber.exe" /grab /d 0 /p 4 /file "C:\NST\nst_1.mbr"
Last edited: