I have never been able to successfully install VirtualKD on the target using the installer targetvminstall.exe, I always seemed to get “Error – cannot access boot configuration data”.
Tired of this failing on multiple versions, I decided to build and debug it myself rather than submitting a query. I have solved the problem, here I detail the bug(?) and solution:
In bootedit.cpp on line 546 is the following test:
if (!m_OSEntries.empty() && !m_Default.GetValue().empty() && !m_Timeout.GetValue().empty())
m_bValid = true;
This test was failing, leaving m_bValid false, causing the error. I narrowed it down to the return from m_Default.GetValue().empty(), and discovered this was erroneously returning that m_Default was empty.
In my boot.ini I noticed that the ‘default’ line begins with a forward slash (/default), I assume this is the case for everyone. I then noticed that line 536 had the test:
else if (!key.icompare(“default”))
and line 534 has:
Now the timeout line has no forward-slash, so without wanting to waste further time debugging the key.icompare function, I decided to try changing line 536 to:
else if (!key.icompare(“/default”))
This worked and fixed the installer for me, so I assume this function was failing because of the forward slash. I can’t fathom how it could have worked for other people (XP SP2 guest) but I can’t afford to spend any more time on this.
The forward slash seems to be your unique case (some third-party boot manager?). Anyway, I’ll add support for both “default” and “/default” in the future versions. Thanks for investigating the problem 😉