A Digital Age Deserves A Digital Leader

Fixing VistaBootPRO 2.1 Index Count Error

Forum rules
This forum is meant for support of PRO Software only. PROnetworks reserves the right to edit any topic title to better explain the contents of a post. We also may move your post to a more suitable forum if necessary.

It may take our support staff up to 24 hours to respond to your problem. We appreciate your patience.

Fixing VistaBootPRO 2.1 Index Count Error

Postby jbullard » Mon Sep 11, 2006 10:50 pm

Fixing VistaBootPRO 2.1 Index Count Error


NOTE: This has been fixed in subsequent versions of VistaBootPRO

This is something that has been a long time coming. We have seen numerous cases where inidividuals may have trouble installing Windows Vista and have to uninstall it. Although, PROnetworks recommends specific guidelines to follow when uninstalling, not everyone got the chance to read before taking that leap. With this, we have seen an influx in VistaBootPRO 2.1 errors regarding "Index count."

Alot, are probably wondering "What exactly is this?" This error is nothing more than a minor glitch in the BCD Store which will cause VistaBootPRO 2.1 not to run; making the user have to rely on the bcdedt command line options. The reason for this error is most likely a bad install/uninstall of either Vista or XP which causes "rogue" entries in the BCD Store. So far, we have seen more rogue entries with the BCD ID or {ntldr} than that of Vista. Is this something that has to deal with XP more than Vista? Well, I can't answer that as I don't know. But, in the end it comes down to; Vista controls your boot options now and you need a fast, secure, and easy way to work with the new Bootloader.

The Fix

I am going to take an example out of one of the threads here.

If you are running VistaBootPRO 2.1 under Windows XP then you need to follow some pre-fix steps.

Windows XP
- Goto the VistaBootPRO program directory and copy bcdedit.exe and bootsect.exe to your XP System32 directory



Step 1
- Open the command prompt by going to "Programs"->"Accessories" and then right click on Command prompt and select 'Run As Administrator', if running Vista; or on the Start Menu in XP, click on "Run", type in cmd and press enter


Step 2
- Type in the following command: bcdedit /enum ALL

Once you have done this you should get something that looks like this:


Windows Boot Manager
--------------------
identifier {4e1dafdf-e6c5-11da-8b13-bfd5e21a3b31}
device unknown
path \EFI\Microsoft\Boot\bootmgfw.efi
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {cbd971bf-b7b8-4885-951a-fa03044f5d71}
timeout 30


Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=D:
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {ntldr}
resumeobject {4e1dafe3-e6c5-11da-8b13-bfd5e21a3b31}
displayorder {ntldr}
{current}
toolsdisplayorder {memdiag}
timeout 30

Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Microsoft Windows Vista
locale en-US
inherit {bootloadersettings}
osdevice partition=C:
systemroot \Windows
resumeobject {0e741046-41b9-11db-a104-e1ac2e363c70}
nx OptIn

Resume from Hibernate
---------------------
identifier {0e741046-41b9-11db-a104-e1ac2e363c70}
device partition=C:
path \Windows\system32\winresume.exe
description Windows Resume Application
locale en-US
inherit {resumeloadersettings}
filepath \hiberfil.sys
pae Yes
debugoptionenabled No


Windows Memory Tester
---------------------
identifier {4e1dafe0-e6c5-11da-8b13-bfd5e21a3b31}
device unknown
path \boot\memtest.exe
description Windows Memory Diagnostic
locale en-US
inherit {globalsettings}
badmemoryaccess Yes


Windows Memory Tester
---------------------
identifier {memdiag}
device partition=D:
path \boot\memtest.exe
description Windows Memory Diagnostic
locale en-US
inherit {globalsettings}
badmemoryaccess Yes


Windows Legacy OS Loader
------------------------
identifier {ntldr}
device unknown
path \ntldr
description Earlier version of Windows



Windows Legacy OS Loader
------------------------
identifier {4e1dafe1-e6c5-11da-8b13-bfd5e21a3b31}
device unknown
path \ntldr
description Earlier version of Windows


EMS Settings
------------
identifier {emssettings}
bootems Yes

Debugger Settings
-----------------
identifier {dbgsettings}
debugtype Serial
debugport 1
baudrate 115200

RAM Defects
-----------
identifier {badmemory}

Global Settings
---------------
identifier {globalsettings}
inherit {dbgsettings}
{emssettings}
{badmemory}

Boot Loader Settings
--------------------
identifier {bootloadersettings}
inherit {globalsettings}

Resume Loader Settings
----------------------
identifier {resumeloadersettings}
inherit {globalsettings}



If you look at the above entries I have highlighted the rogue entries in this individuals BCD Store. How can you tell they are rogue? If you take a look at a normal entry for a Legacy OS (below):

Windows Legacy OS Loader
------------------------
identifier {4e1dafe1-e6c5-11da-8b13-bfd5e21a3b31}
device partition=D:
path \ntldr
description Earlier version of Windows


However, take a look at this Windows Boot Manager and look where it says displayorder. There is no entry for the above Legacy OS Loader. Even though an entry is listed like the {ntldr}, then it will most likely just be the unknown device that is causing the error. We will still refer to this as a "rogue" entry as it is not a proper one.


Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=D:
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {ntldr}
resumeobject {4e1dafe3-e6c5-11da-8b13-bfd5e21a3b31}
displayorder {ntldr}
{current}
toolsdisplayorder {memdiag}
timeout 30




The above is just an example of a Legacy OS entry. As you can see the device here is now set to partition=D: where as the other rogue entries were set to unknown. So, all we need to do now is remove these two entries.


Step 3
- Still have the command prompt open, correct?
- Let's delete these entries with the following command:
bcdedit /delete {ntldr} /f /cleanup
bcdedit /delete {4e1dafe1-e6c5-11da-8b13-bfd5e21a3b31} /f /cleanup
bcdedit /delete {4e1dafdf-e6c5-11da-8b13-bfd5e21a3b31} /f /cleanup
bcdedit /delete {4e1dafe0-e6c5-11da-8b13-bfd5e21a3b31} /f /cleanup


Well, you might want to add your Legacy Entry back by going into Manage OS Entries and add the correct entries back.

Now you can open up VistaBootPRO 2.1 and work happily ever after.


Now you have entries in your BCD Store that don't have the device set as "unknown" or on a partition. Well, this is the true case of the rogue entry. Somehow, an entry has been inserted into your BCD Store without following through with all the correct commands. When working with the BCD Store using bcdedit.exe commands, it is best to have a working knowledge of how the BCD commands work and the order they must be typed to achieve the specific task.

When a rogue entry is created where you have something that looks like this:


Windows Legacy OS Loader
------------------------
identifier {4e1dafe1-e6c5-11da-8b13-bfd5e21a3b31}
path \ntldr
description Earlier version of Windows



And the above Does NOT show in your VistaBootPRO 2.1 Bcd Entries, then you simply need to open up the command prompt as stated before and delete it: bcdedit /delete {4e1dafe1-e6c5-11da-8b13-bfd5e21a3b31} /f /cleaup.

Now that you have the rogue entry out of your BCD Store, you may need to add the correct entry using VistaBootPRO 2.1.



Some Food for thought
I personally like having my BCD Store very clean and proper. Although, GUID's are a very nice way to present the ID of the entry I find that if I am only working with two OS's (Vista and XP), why then do I get these GUID's under my only Legacy OS Entry[/b]. The answer is that in your BCD Store, you have a rogue {ntldr} entry. Simply find it, delete it, delete your current entry, open up VistaBootPRO and add it back. This time you should get the {ntldr} as your BCD ID for your XP Entry.

Here is an example of what my BCD Store currently looks like.

Windows Boot Manager
--------------------
identifier {bootmgr}
device partition=D:
description Windows Boot Manager
locale en-US
inherit {globalsettings}
default {ntldr}
resumeobject {4e1dafe3-e6c5-11da-8b13-bfd5e21a3b31}
displayorder {ntldr}
{current}
toolsdisplayorder {memdiag}
timeout 30

Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Microsoft Windows Vista Ultimate Edition
locale en-US
inherit {bootloadersettings}
osdevice partition=C:
systemroot \Windows
resumeobject {0e741046-41b9-11db-a104-e1ac2e363c70}
nx OptIn

Windows Legacy OS Loader
------------------------
identifier {ntldr}
device partition=D:
path \ntldr
description Microsoft Windows XP



I hope that you have somewhat learned a little about managing your BCD Store and if you have any questions please feel free to post them.

HTH,
Jason
VP - Software
User avatar
Posts: 3653
Joined: Sun Jun 06, 2004 10:17 pm
Location: Utah
Real Name: Jason Bullard

Postby jrfree1 » Mon Sep 11, 2006 10:57 pm

Great job on this How To, this will certainly help a lot of people with this type of error in their BCD stores. ^*^

This thread will be locked. If you have a specific issue, or problem executing any of the above commands, please start a new thread with a description of the problem in the PROnet Developed Software forum and one of our experts will help you out.
[html]<a href="http://vistamania.org" target="_blank"><img src="http://img116.imageshack.us/img116/1784/sig1pa4.jpg" alt="VistaMaNiA" border="0">[/html]
Image
PROfessional Member
User avatar
Posts: 3779
Joined: Mon Aug 30, 2004 4:24 pm
Location: Florida

Postby gries818 » Mon Sep 18, 2006 2:23 am

Thanks for your hard work!
Image

Mac OS 10.6.7 - Personal
Ubuntu Server 11.04 - Server
Software Development
User avatar
Posts: 3991
Joined: Wed Jul 07, 2004 6:28 pm

Return to PRO Software

Who is online

Users browsing this forum: No registered users and 0 guests