EasyBCD 2.2 can't be prevented from picking (incorrect) drive letter for Linux boot

#1
I have Win7 on one drive, WinXP on another (not even attempting to boot that yet), and Ubuntu 12.04 on a 3rd.

"Add New Entry" selecting Linux/BSD and just about any type (though Grub2 would be the correct one) will fail. The reason is that, even though I can select "Partition 1 (Linux - 149GiB)" under the correct Drive in the Drive menu, this is then ignored, and no matter what I do, the actual boot menu entry created is always:

Code:
Real-mode Boot Sector
---------------------
identifier              {...}
device                  partition=E:
path                    \NST\AutoNeoGrub0.mbr
description             NeoSmart Linux
Needless to say, "E:" is not the device/partition I selected, nor can I prevent EasyBCD from selecting it for me. In this case, E: is the WinXP partition (for which I'm not even trying to add a menu item yet). The Linux partition has no drive letter, for obvious reasons.

Under "Advanced Settings" the Drive options include all the letter drives, and something called "BOOT" - which, when selected, results in a failed boot.

The system boots fine with Grub 2. However, if Windows does not control the boot sector, it cannot back itself up. :frowning:

Is there any way to get EasyBCD to boot the desired partition?

Addendum

Hmm... experimenting further, I have something working. When I rearrange the order in which the drives are connected to the motherboard, putting the Win7 drive first, and the Linux drive second, attempting to add a Linux boot menu entry now results in device being "partition=C:" - which is also incorrect, yet, selecting it at boot time results in a successful transition to grub 2.

Also, in this configuration, Windows 7 will back itself up.

Is the selection of the boot drive by Windows letter a limitation of Win7/BCD? Because it's definitely the wrong way to select a drive and partition within a bootloader.
 

Terry60

Knows where his towel is.
Staff member
#2
The BCD entry for non-Vista/7/8 OSs, does not point to the Os location.
It points to the "system" drive where the boot information must be located.
That entry on the "system" partition is what contains the location of the OS partition.
When you tell EasyBCD the location of the OS (or let it auto-detect), it puts that information in the data set which gets stored on the "system" drive (where it must be for Windows bootmgr to find it), and that acts as a bridge to the proper partition.
If you use advanced options to change the letter, you will cause the boot to fail.
See the red box at the bottom of
Windows XP - EasyBCD - NeoSmart Technologies Wiki
The same technique applies to Linux.