WinXP on second partition: boot.ini not acessible

#1
Hello!

Here I'm back ...
I have Vista Business on the first partition (C:smile: and installed WinXP on a second partition (D:smile: with help of EASYBCD.

I'm using the Dual Boot Option.
Everything went and works very well.

But now I'm facing a problem...

After installation I found that XP named all harddisks and partitions new, different to those under Vista.
That means that WinXP- OS is working now on "K:".... (which is "D:" under Vista)
On C: I found the Vista System unprotected from XP. That caused some trouble at Installation of some hard- and software....
So I hided C: under WinXP and also did the same on Vista (hiding D: from Vista) to prevent to snafu the OS each other...

Still everything OK so far....

But trying to look into the system recovery option I recognized that no information is available.
There is coming up a message that c:\boot.ini is not found.
So I'm afraid an system recovery from previous versions won't be possible....

That sounds logical to me, as boot.ini should be on "K:"...
But the system is searching for it on C: which is not available of course....

My question:

How can I redirect the access to boot.ini to K: ???
I aleady looked up in the registry but did't find any respective entries...

Or:
How can I cheat the naming of the partitions that they are the same as under Vista...
AFAIR with Win98 (I used Partition Magic and the respective Bootmanager) it was possible to boot several OS ... The boot manager made the active partion visble (always C:smile: and kept all other data -drive and -partition letters...

Thanx a lot in advance for your help,

Regards

Wolfgang
 

Terry60

Knows where his towel is.
Staff member
#2
Wolfgang,
disk letters are entries in the registry of the running system (that's why they're different on all systems).
They don't exist until the system has finished booting. The boot manager (no matter which one you use) doesn't affect the disk letters.
When you hide Vista from XP (a wise thing to do both to protect its restore points and because it's called C:/, which can cause problems with 3rd party apps), then you will be unable to see the copy of boot.ini on C: which Vista uses to boot XP.
Why do you want to see it ? It's just a copy of the one on K:\
What are you wanting to do ?

(btw you don't need to hide XP from Vista, just hide Vista from XP)
 
#3
disk letters are entries in the registry of the running system (that's why they're different on all systems).
Yes... AFAIR on my old computer (I had a choice of 4 OS), all of them were Win98SE, each OS recognized all partitions under the identical disk letter.... it was managed bei BootMagic.
Here I have the situation that I have 2 different OS (Vista and WinXP), maybe that's the reason that all drive letters are different... I have additional disc drives (one with two data-partitions) and another external Backup drive.

But I still do not understand this completly...

They don't exist until the system has finished booting. The boot manager (no matter which one you use) doesn't affect the disk letters.
So it should make no difference which (data-) drive letters are used. But if I try to adapt them under XP to the drive letters I am used to under Vista, the system refuses it.
It seems as if the OS do not recognize that a specific partition should be used by both OS, so it gives a different letter to ist... that's actually a different problem which I'm trying to solve...

When you hide Vista from XP (a wise thing to do both to protect its restore points and because it's called C:/, which can cause problems with 3rd party apps), then you will be unable to see the copy of boot.ini on C: which Vista uses to boot XP.
That's exactly what happens..

Here a copy of the boot info:

######################

There are a total of 2 entries listed in the bootloader:

Default: Microsoft Windows Vista
Timeout: 5 seconds.
Boot Drive: C:\

Entry #1
Name: Microsoft Windows Vista
BCD ID: {current}
Drive: C:\
Bootloader Path: \Windows\system32\winload.exe

Entry #2
Name: Microsoft Windows XP
BCD ID: {60f531a1-c2e5-11de-ae90-0019995f3cf2}
Drive: C:\
Bootloader Path: \NTLDR

###################

The bootloader for XP is also on C:, not on D: where I supposed it should be...

The restore points may not be mixed up I guess... So the XP restore points should be stored with the XP-system, but I do not know whether it does or not, in any case I'm not able to access them because of the non-presence of boot.ini on K:

Why do you want to see it ? It's just a copy of the one on K:\
What are you wanting to do ?
.. Use a suitable restore point in case the XP crashes for some reason (e.g. malfunction of SW-installation...)
I just wanted to see my restore points of XP (and restore the system if necessary)

(btw you don't need to hide XP from Vista, just hide Vista from XP)
That's right, but I do not want to mess the XP accidentally... So I also protected also D:

Wolfgang
 

Terry60

Knows where his towel is.
Staff member
#4
Windows, up until WME assigned disk letters dynamically as the system booted
A - first floppy
B - 2nd floppy
C - 1st partition, 1st HDD
then remaining letters in alphabetical sequence to
1st partition of each additional HDD
remaining partitions on all partitions of each HDD in turn
optical drives
other connected devices as detected in the BIOS depending on their relative positions on the different PC BUSes.
Provided you never opened up the case and shuffled things around, or didn't add additional HDDs, then everything always appeared to be the same.
None of those systems was natively dual-bootable, so you had to use a 3rd party boot-manager to multi-boot them. Various 3rd party managers do non-standard things to the partition table on the HDD to make the booted OS "see" a configuration which doesn't really exist. All of those early Windows had to be on the 1st partition of the 1st HDD, so any 3rd party manager had to lie to them to make them think they were. That's why they all looked the same
With XP the boot manager/loader NTLDR provided native dual-boot using boot.ini to describe the location of each OS, and XP also provided the user with the ability to override the HDD partition letters, which it still allocated dynamically at boot time, but not in the same order as on previous Windows OSs.
Vista changed to bootmgr from NTLDR, and bootmgr uses the BCD, not boot.ini to locate its OSs.
If you boot XP from Vista/7, bootmgr will chain to NTLDR to load XP, not load it itself.
Since boot.ini contains the information about where XP is, the BCD does not know where XP is, so it chains to a copy of NTLDR in its own partition, which uses a copy of boot.ini to boot XP.

None of the MS boot managers modify the partition table the way 3rd party managers can do, so each OS is aware of the other OSs, and their relative positions to each other, and since the OS no longer has to be on the 1st primary, the detection algorithms will make them all detect each other in different orders, and therefore with different letter patterns.
These letters are stored in the registry on each system, and you can alter them using Disk Management (with the exception of the "system" "boot" or "page" partitions, which won't allow alteration, to stop the OS from being made unbootable)

That entry in your BCD for XP is correctly pointing at the copy of NTLDR in the "system" partition.

None of this has anything to do with system recovery or system restore.
I still don't know what you're trying to do which has anything to do with boot.ini ?
That only gets used to boot XP for the first few seconds after you turn on your PC, and is never used again.
 
#5
Thanks a lot for the comprehensive explanation of the boot process.
Now I'm beginning to understand that it works totaly different to former systems...

None of those systems was natively dual-bootable, so you had to use a 3rd party boot-manager to multi-boot them. Various 3rd party managers do non-standard things to the partition table on the HDD to make the booted OS "see" a configuration which doesn't really exist. All of those early Windows had to be on the 1st partition of the 1st HDD, so any 3rd party manager had to lie to them to make them think they were. That's why they all looked the same
I think BootMagic worked like this... It was very comfortable, one could just choose a OS according to his needs and all other drive letters were the same as usual....
And for service reasons, you could also "unhide" the hidden OS (but there was a warning to do this). The only limitation I guess was to use the same file system. Nevertheless, it worked perfectly...

If you boot XP from Vista/7, bootmgr will chain to NTLDR to load XP, not load it itself.
Since boot.ini contains the information about where XP is, the BCD does not know where XP is, so it chains to a copy of NTLDR in its own partition, which uses a copy of boot.ini to boot XP.
Now I remeber the reasons why I hided the Vista partition...
1) As already meant, to prevent messing Vista with XP- HW & SW installations
2) To workaround the effekt, that start of WinXP deletes all OS restore points of Vista (KB926185)
Now it is clear to me why WinXP cannot access restore points.... I was'nt quite aware of that...

None of the MS boot managers modify the partition table the way 3rd party managers can do, so each OS is aware of the other OSs, and their relative positions to each other, and since the OS no longer has to be on the 1st primary, the detection algorithms will make them all detect each other in different orders, and therefore with different letter patterns.
Would you reccommend to use a 3rd party Bootmananger under these conditions?

These letters are stored in the registry on each system, and you can alter them using Disk Management (with the exception of the "system" "boot" or "page" partitions, which won't allow alteration, to stop the OS from being made unbootable)
Obviously not, I cannot use letters alredy used in th other OS...

I still don't know what you're trying to do which has anything to do with boot.ini ?
That only gets used to boot XP for the first few seconds after you turn on your PC, and is never used again.
As already mentioned, I'd like to keep restore points for both, Vista and WinXP simultaneously for emergency recovery. But with the current solution of DualBoot this does not work, always the restore points of the non-active OS are deleted.... If I try to access restore points for XP (to my knowledge there aren't any, aw they are always stored in the 1. partition) I get the message that that boot.ini cannot be located. Obviously XP needs boot.ini to access restore points, but the 1. partition is hidden to WinXP cannot find it...

Regards,

Wolfgang
 
Last edited:

Terry60

Knows where his towel is.
Staff member
#6
Use this registry hack in XP to stop it seeing Vista/7.
You do not need to stop Vista seeing XP. It does no damage to XP.
In each OS, turn on system restore for that OS partition, and any partition containing apps for that OS. Turn it off for all other drives. It must not be turned on for any partition visible from both OSs.
You cannot change a disk letter for an installed OS after installation. You can affect what letter it installs as by the way you install it.
It doesn't matter that XP isn't C:
Mine has been D: in a multi-boot for several years. There's no problem as long as it can't see a C:\
 
#7
It doesn't matter that XP isn't C:
Mine has been D: in a multi-boot for several years. There's no problem as long as it can't see a C:\
Correction: It doesn't matter IF you don't care that some apps will try to install their files to C: without allowing adjustment to where their files go. I'm curious to know though what happens when there is no C: to install to...? can most programs still be installed? im guessing they probably can't be (at least not if the files normally installed to C: are essential to the program).
 

JustinW

Super Moderator
Staff member
#8
Most programs get the program directory for the system dynamically (they can do that w/ %programfiles% variable or by other means), so its not a fixed path and doesn't need to be located on c:\. That problem only exists in older applications. Most apps don't write out to the other partitions either, it just depends on the nature of the program or how poorly written it is.
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#9
While some old programs hard code the "\Program Files\" path instead of using the Win32 API equivalent of %ProgramFiles%, almost no software hard-codes the C:\ part of it. Of course, there's always the odd software that will, though.
 

Terry60

Knows where his towel is.
Staff member
#10
It's not wrong Jake.
Adobe are guilty.
I don't know how they code it, but they will use C:\Program files\Common files if there is one, otherwise they use the proper version on the D: disk even when the bulk of the app goes into my H:\Adobe folder on the apps partition.
I haven't come across anything yet that won't run properly on XP without a C: disk, though no doubt there are some ancient apps out there that might hard code C:, I doubt that they'd run anyway on anything later than W95.

(Subject of course to the proviso that Adobe haven't bucked-up their ideas since I last installed an OS on notC:\, some years ago now.)
 
Last edited:
#11
...I was off a couple of days...

Use this registry hack in XP to stop it seeing Vista/7
That's exactly the way I hided Vista to XP (as mentioned in my first posting).
But actually my problem was that XP does not create restore points (for XP recovery...)

I understand that this im my configuration (dual boot) won't work because Vista- and XP restore information is incompatible, right? So an attempt to set a restore point under XP kills my restore points under Vista.

The only way to prevent this ist to hide C: to XP, what I did using the registry hack....

And a side effect is, that odd software could not be installed anymore... And some hardware installations too. Could be good to prevent messing my Vista installation by XP, as I experienced.

Furthermore I hided also XP to Vista to not messing XP accidentally...

From my point of view under these conditions only a bootmanager which is able to start both systems independently (not using the C: partition) is the solution...
Bootmanagers I found in the internet (e.g. BootUS)
Boot-Manager Boot-US: Welcome
seem to use the MBR to locate info for the system to be started....

After starting the respective system it will be always C: and I won't have problems, as also my data drives keep ther letters as normal. And System restore points would be generated independently without interfering each other...
The only issue could be that I have to "repair" XP because there are a couple of hidden references to Vista ....

What could happen if I did it like this?

Thanks,

Wolfgang
 
Last edited: