Windows 7 - partitions without letter not handled correctly

#1
STEPS TO REPRODUCE ERROR:
----------------------------------------
I'm having configuration with 4 primary partitions on SATA RAID volume:
3 partitions with windows 7 OS (all cloned) + 1 data partition (my documents etc).
So, partitions are:

0 - win7 "A"
1 - win7 "B"
2 - win7 "C"
3 - data

Initially all partitions have letter, and I used EasyBCD to build a boot menu - everything works fine.
Booting into each of 3 win7 os, go to windows disk management, and remove drive letter from other two OS partitions, so they are "invisible" to the file system. Repeat process for all 3 OS's, hiding other two partitions on each system, so you see e.g. partition win7A and data, or win7B and data partition. That way OS's are somewhat isolated from each other.
Still everything works fine.

I needed to make small chenge in easybcd, renaming a boot menu item - suddenly, BOOT MENU IS MESSED-UP: each boot item points to single, first OS that is currently visible like "C" drive. I cannot boot any more to other os's.

SOLUTION:
Do not rely on drive letters! They are not "fixed" thing to name a partition. They are very changeable, dynamic, like free space on disk. Not something to rely on.
I suggest you to use 1-based index of the partition inside a HDD, and user should also see partition name (if it is formatted and have it) and size, used space - that would help to identify a partition.
Without that, boot configuration is all messed-up because some partitions have no letters (they are hidden). Other reason is: windows 7 allways marks with "C" partition you boot from. So, on each boot, different partition becomes "C".
It would be nice to see that Easybcd does not corrupt boot menu when some partitions mentioned in it are hidden (drive letter removed by me or changed to "C" by win7 os)

Regards,

B.
 
Last edited:

Terry60

Knows where his towel is.
Staff member
#2
The BCD does not use drive letters, it uses UIDs.
EasyBCD translates these UIDs for your convenience into letters as seen by the running system.
If you want to prevent access to the other OSs. I suggest you set them offline instead of removing the drive letters.
EasyBCD is not the boot manager, it's a tool for managing your BCD.
If you've managed to screw your bootloader's understanding of where everything is by hiding stuff it needs to know, don't blame an innocent bystander.
 

mqudsi

Mostly Harmless
Staff member
#3
If you'll notice, renaming the boot menu is done in the same place as setting the boot drive. As Terry explained, EasyBCD uses the volume id to select drives and partitions, but in order to derive them, Windows goes through the drive letter.

I may put something to rename without changing the drive, we'll see.
 
#4
EasyBCD translates these UIDs for your convenience into letters as seen by the running system.
...
If you want to prevent access to the other OSs. I suggest you set them offline instead of removing the drive letters.
...and if system does not have letter assigned to that partition, easybcd will show that it has assigned letter "C", which is obviously not correct. There sould be "no letter", UID, HDD:tongueout:ARTITION index, or some other identifier.
This way, if I change enything using easybcd, it will mess my config in a way that all os entries in boot menu that pointed to hidden OS partitions will now point to partition I just booted from. So, all 3 os entryes now point to the same partition, while I just wanted to correct a typoo in boot entry name.

I'd love to set partition offline, but I hoped easybcd will save me from editing the registry. Also, don't know how it will prevent easybcd to falsy assign "C" to hidden/letterless partition (windows normally supports them), and mess my configuration.
 

mqudsi

Mostly Harmless
Staff member
#5
Everything's doable.. We'll see :smile:

I've added proper representation of drives to my to-do list for 2.0