Windows – Migrating Windows XP BOOT.INI Settings to Windows 7 Boot-loader

bootloadermigrationmulti-bootwindows 7windows xp

Two months ago my motherboard died, so I bought a used computer that came with Windows 7. I have since installed my old hard-drive, which had Windows XP on it, in this system.

What I am trying to do now is to figure out a way to migrate the settings from XP's BOOT.INI into 7's boot-loader.

Below is the BOOT.INI I used in XP (I have reduced the strings and updated the disks to point to the new location of the old HD. Oh and I am not clear on the drive letters. In XP, I could boot the recovery console or MS-DOS from a file in C:\ that contains the boot-sector. I am not sure what drive letter it would be called now—I had to manually change all the drive letters of the old partitions in Windows 7 because it auto-assigned them all wrong/differently).

[boot loader]
timeout=10
default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS

[operating systems]
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="XP" /fastdetect
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="XP (Safe)" /safeboot:network /sos /bootlog /noguiboot
C:\CMDCONS\BOOTSECT.DAT="Recovery Console" /cmdcons
C:\BOOTSECT.DOS="MS-DOS 7.10" /win95

I have looked around, and have only been able to find some bcdedit commands to add XP to the boot-loader, but none that include information on setting safe-mode for it (or changing any of the XP load options for that matter). Not surprisingly I suppose, I have not found anything on adding the XP recovery console or DOS to the Windows 7 boot-loader.

(Yes, I tried EasyBCD, but that did not help; it had no options for XP, and the best I managed was to get a choice of booting 7 or normal-mode XP—choosing XP didn't even give the old XP boot menu.)

Can anyone please tell me how to export the entries in XP's boot.ini to 7's boot-loader so that on boot, I can choose to load the following:

Windows 7
Windows 7 (Safe-mode)
(Windows 7 (The Win7 counterpart of the Recovery Console))
Windows XP
Windows XP (Safe-mode)
Windows XP (Recovery Console)
MS-DOS 7.10

Best Answer

First of all when dual booting Windows 7 and Windows XP it is Windows 7 boot manager(bootmgr) which must have control of the booting. Windows XP boot manager is ntldr.

There are 3 "must have" entities to boot either OS (XP or Win7)

  1. MBR code
  2. PBR code (PBR=partition boot record)
  3. a) ntldr (and ntdetect.com) and boot.ini file

OR 3. b) bootmgr with \boot folder (with BCD store there).

In a dual boot scenario (Win 7 with XP) you must have on FIRST disk ACTIVE partition:

  1. Windows MBR
  2. bootmgr with BCD having an additional entry for XP.
  3. ntldr and ntdetect.com
  4. boot.ini

When computer starts BIOS code is executed which does some tests and then loads MBR from FIRST disk. MBR code loads PBR from ACTIVE partition. Then PBR code loads bootmgr. bootmgr reads BCD data and displays boot menu.

When you select Windows 7 - control is transfered to winload.exe which loads Windows 7 proper. When you select XP boot menu entry control is transfered to ntldr (ntldr displays another boot menu based on entries in boot.ini)

For a complete display and editing of BCD contents you can use Visual BCD Editor.

For finding the exact ARC Path (multi(0)disk...partition() thing) of your XP installation and disks configuration you can use "ARC Paths" utility. You have to edit your old boot.ini replacing "old" ARC paths with the "new" ARC paths.

Hope this helps.

(Note: The active partition in Windows 7 can be the hidden "System Reserved" partition - to map it with a DOS drive letter use Windows Disk Management or some third party disk manager/editor.)

Related Question