If you have Windows 7 or Windows Vista operating system installed on your computer and then you install an earlier version like Windows XP on it, then you would not be able to boot to Windows Vista or Windows 7. On installing Windows XP on a computer which already has Windows Vista and Windows XP in a dual boot environment then again your Windows Vista Operating system will not boot and will result in the following error: “Disk Read Error Has Occurred”. This problem occurs because of the difference in the start up process of Windows Vista and that of earlier operating systems. Earlier a file named Boot.ini was used for specifying the operating system’s location during the start up process but since Windows Vista the file has changed. In Windows Vista and later operating systems a store named BCD (Boot Configuration Database) is used for letting the start up process know the location of all operating systems installed on the hard drive. BCD stores the location of all Operating systems and it provides backward compatibility for Windows XP and other earlier Operating systems as well.

Till Windows XP following boot process was followed for booting up the computer:
1. Process starts with Execution of BIOS commands which used to check the hardware/devices and then load the MBR
2. MBR had a code to search for the active partition and pass the control to the Boot Sector of the Active partition.
3. Boot Sector loaded the NTLDR file which used to fetch the Operating System’s location for Boot.ini file and further initiate the loading process.
In Windows Vista or Windows 7 the following boot process takes place during start up:
1. Process starts with Execution of BIOS commands which checks the hardware/devices and then load the MBR
2. MBR loads the Boot Sector which has the Boot Code.
3. Boot Code loads the Boot Manager Program (BootMGR) which then reads the Boot Configuration Database.
4. Boot Configuration Database has information of all the Operating systems and it gives user a list to choice the operating system
5. Control is passed to the NTLDR of the operating system which is selected by user from the list of choices.
Installation of earlier operating system on a computer where booting process is controlled by BootMGR then the MBR gets over-written along with the Boot Code, Boot Sector’s, and Boot Files. Since Boot.ini doesn’t understand what Windows Vista is or what Windows7 is, it results in the errors mentioned above.

To resolve this problem follow the given steps:
1. Boot to the command prompt
2. Execute the command on the prompt “drive:\boot\bootsect.exe /NT60 All” (Drive is the drive letter for drive where Windows Vista installation is located. It would be the DVD Drive)
3. Execute the following command
  • Drive:\Windows\System32\BCDEdit /create {ntldr} /d “Name of earlier Operating System” (here Drive is drive where earlier Operating System is installed)
  • Drive:\Windows\System32\BCDEdit /set {ntldr} device partition=x: (here x: is the drive letter for Active partition)
  • Drive:\Windows\system32\Bcdedit /set {ntldr} path \ntldr
  • Drive:\Windows\system32\Bcdedit /displayorder {ntldr} /addlast
4. Reboot the computer
The steps given above will fix the problem for you by making BootMGR the in-charge of booting process which will read the entries from Boot Configuration Database.