Boot.ini gets scrambled

Feb 23, 2007 17:26 GMT  ·  By

Is Windows Vista better than XP? You tell me. I won't disclose my personal opinion in this article. I just want to talk about the transitory period when both XP and Vista co-exist on our computers.

The migration from Windows XP to Windows Vista is a slow process, especially when the user is curious, but at the same time wavering. Not everybody is convinced that the new operating system from Microsoft has enough new features to offer in order to make the switch profitable.

To avoid unpredictable situations, during the first installations, these users prefer to keep a dual boot configuration: XP and Vista on the same computer. In case Vista does not satisfy them, they can always switch back to XP. Though it is a fair solution, some reported that after Vista has been installed, Windows XP stopped booting.

When choosing to boot from the XP partition (drive) the following error message is being displayed:

Windows could not start because the following file is missing or corrupt:

C:Windowssystem32 toskrnl.exe. Please re-install a copy of the above file.

It is true that not all Vista installations cause this odd situation. The main scenario that better describes this event is when installing Windows Vista on an unallocated space which happened to be located in front of the partition on which the current Windows XP is installed. When the user chooses to install Vista on that space, the installation guide will immediately create a new partition which inevitably will be placed in front of the already existing partition. Due to this change, the Boot.ini file gets confused, now pointing to an invalid partition.

How does Boot.ini work?

The hard disk on which Windows XP is installed is stamped as disk(0) and, because you have a partition created, it will be named partition(1). Therefore, boot.ini will point to disk(0)partition(1). Now, we said that there is an unallocated space placed in front of that partition. When you install Vista, a new partition will be created right before the already existing partition.

It means that the Windows XP partition now moved to a second position. The correct new string in boot.ini for Windows XP should be: disk(0)partition(2) but no changes have been made to boot.ini. Hence, boot.ini points to an invalid location: disk(0)partition(1) which is wrong, making it impossible to start the XP system.

Problem solving

To solve the problem, boot your Windows Vista and right click the Start button. Now select Explore and in the Organize menu, click Folder and Search Options. At the View tab, in the Advanced settings area, click Show hidden files and folders. Click to clear the Hide extensions for known file types check box, click to clear the Hide protected operating system files check box. Now click Yes to confirm by selecting OK.

Open the Windows Explorer and locate the drive by holding Windows XP. There you will find boot.ini. Right click on it and select Properties. Then go to Security tab > Advanced. Now click the Owner tab and go to Edit.

In the Change owner to list, click your alias or leave the default Administrators option selected, and then click OK four times. Now right-click boot.ini, and then click Edit. Here you need to modify the Advanced RISC Computing path to be in accordance with the Windows XP startup partition.

According to the scenario described above, the correct modification of ARC would be:

code
multi(0)disk(0)rdisk(0)partition(2)WINDOWS="Microsoft Windows XP Professional" /fastdetect
Now save changes and restart your system. When the dual boot option appears, select Windows XP. Now it should work properly.