Multi-Boot Alphabet Soup \#*%@&/ Please Help!

#1
System:

I have Win98, Win2k and WinXP booting from my first drive, a PATA;
My second drive is also a PATA being used only for backup and storage;
I have Win7 and Linux Debian 5 installed on my third drive, a SATA.

All was well here until Debian 5, my last installation, somehow must have added SATA drivers somewhere on my main drive and my BIOS/DOS/Win98 could then suddenly see the FAT32 partition at the end of my third drive. At that point, Win98 could not boot because its partition had just been bumped from “E” to “F”.

Note: I had used Debian’s installer to add LiLo to Debian’s “/boot” on my third drive, and then I had used EasyBCD to add Debian to Win7’s BCD ... and all of the above (except for Win98) was working well until this:

To resolve Win98’s boot problem after its drive letter had been bumped, I re-installed Win98 back onto its own partition as “F” (where it used to be “E”) ...

... and now the “boot.ini” loader on “C” (for Win98/2k/XP) offers the only boot menu I ever get to see:

[boot loader]
timeout=8
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Windows XP Pro" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows 2K Pro" /FASTDETECT
C:\ = "Windows 98 se"
Win7’s “repair startup” on its original DVD does not find that “boot.ini” on “C”, and neither can Win7’s “repair startup” make Win7 show up at startup even by itself ... and neither does EasyBCD 2.0 make Win7’s BCD show up at startup.

----> Notice: In my pictures, “C” and “R” have been switched between Win7 and Debian, and that makes me suspect Win7 and Debian now think (after Debian’s installation) they are on the first drive rather than the third. That makes no difference for running since they are each still right where they were when installed, but I suspect Win7 and Easy BCD are now not looking at “C” because they think they are already on it.

What should I do?!

I thank you.
 

Attachments

Last edited:

mqudsi

Mostly Harmless
Staff member
#2
Hi,

Try EasyBCD -> Bootloader Setup -> "Write MBR" (with the default radio button selected)
 
#3
Maybe you already caught this, but just to be sure: EasyBCD is seeing my third drive as "0", and it is seeing my boot drive as "2". Also, I do not know what you mean by "default radio button". I have not yet done anything ...
 

Attachments

mqudsi

Mostly Harmless
Staff member
#4
OK, go to Useful Utilities -> Power Console

Type in
Code:
bootsect.exe all /force /mbr
bootsect.exe all /force
And then restart to test.
 
#5
How can I learn about what that will do before I do it? I cannot risk making this machine unbootable. Debian has somehow altered my MBR on my true "0", which EasyBCD believes is "1", and Debian also actually even made my MBR on "0" larger (by adding the SATA drivers, I believe). So, telling EasyBCD to "force" a write is going to do what, and where?

See, my machine sees the SATA drive as third, but I believe Debian's installer put something at the beginning of the SATA drive to make it now appear to be "0" (when an OS is running) as well as writing to the MBR and adding SATA drivers on my true "0" the machine looks at for booting. So at this point in time, I suspect EasyBCD (running in XP on my true "0") is going to search and possibly find everything, but then write to "2" because it is incorrectly seeing "2" as "0" and the true "0" as "1".
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#6
What it will do is replace the boot code on ALL disks to search for BOOTMGR (the Windows 7 bootloader) and run it.

Right now, your PC is calling the Debian bootloader instead of the Windows one. And Debian is linked to the old boot.ini menu, but not the Windows 7 one.

EasyBCD will bring the Windows 7 bootloader back, and then you can add an entry to Debian to it with EasyBCD.

Don't worry about your PC not booting - if your PC worked before installing Debian, this is perfectly safe. Should your PC fail to boot, the instructions to get it working again are really easy and can be found here:
Recovering the Vista Bootloader from the DVD - NeoSmart Technologies Wiki
 
#7
Right now, your PC is calling the Debian bootloader instead of the Windows one. And Debian is linked to the old boot.ini menu, but not the Windows 7 one.
No. My machine is calling XP's "boot.ini" because I had to "repair" XP to get "boot.ini" working again after I had re-installed Win98 ... and at that point Win7's "repair startup" should have fixed everything ... but it did not because the Debian installer has made my "2" now appear to Win7's "repair startup" as "0".

Also, Debian's loader has *never* been called by this machine. LiLo was added to Debian's "/boot" partiton on 2, but only EasyBCD has ever gone there (as sent by me) looking for it.

At the moment, Win7 and Debian are both simply sitting out on "2" and not appearing in any boot menu, and it is going to take a manual edit on Win7's BCD to correct Win7's location in its own BCD. Debian's boot info is fine just as it is, but even EasyBCD believes Win7's and Debian's "2" drive is actually "0" and that Win7 and Debian are on "0".

But for now, I will certainly go back and read the remainder of your post and do some more looking and learning ...
 
Last edited:

mqudsi

Mostly Harmless
Staff member
#8
Regardless. Something other than the Windows Vista/7 bootloader is installed to the MBR. Do what I told you, and you'll get the Windows 7 bootloader back. After that, it's just a matter of adding the other OSes to EasyBCD.
 

Terry60

Knows where his towel is.
Staff member
#9
Did you disconnect any HDDs at some point ?
It sounds as though the BIOS boot sequence has changed and your Disk 0 /1/2 assignments are now different. (As a rule they follow the BIOS sequence)
If you disconnect and reconnect drives during a sequence of boots, the BIOS will reset that order without your knowledge.
 
#10
Did you disconnect any HDDs at some point ?
It sounds as though the BIOS boot sequence has changed and your Disk 0 /1/2 assignments are now different. (As a rule they follow the BIOS sequence)
If you disconnect and reconnect drives during a sequence of boots, the BIOS will reset that order without your knowledge.
I do not know the details of how all of that kind of thing happens and works, but I do know my machine's BIOS sometimes seems to have "a mind of its own", so to speak, yet that has never caused any real problem. But to answer your question:

Yes, and no. A couple of weeks ago I had a flaky power connection and my first drive was not being recognized, but I have not had that problem since taking care of that loose connector. Then to deal with the matter of Win98 now being able to see my SATA drive (2) after Debian's installer did whatever it did, I did go into my BIOS and disable SATA for a short while. But overall, Win2k and XP and Win7 have not all been seeing (in "Disk Management") all my drives in the same order until just now (recently) after Debian wrote whatever it did to "0" as well as to "2", as I believe, and now even Win2k's "Disk Management" is listing the SATA (2) as first in line. Prior to Debian being installed on that drive, I think it was only Win7 that listed the SATA drive first in "Disk Management".

I know you know what you are doing, and I know EasyBCD can be trusted, but I also know I have a non-standard "mess" as far as booting is concerned and that it will nevertheless continue to work just fine if these things can be accomplished:

1) Make an accurate Win7 BCD that ignores whatever drive order Debian or anything else wrote anywhere;
(Note: There would still be one of those if I had not used EasyBCD in XP to delete all entries so I could then use Win7's "startup repair" to make the new one I now know is incorrect since the Win7 DVD thought Win7 is on "C" rather than on "2")

2) Fix my MBR on my true (as my BIOS sees things for booting) "0" to invoke the new BCD rather than XP's "boot.ini", but do that without messing up anything Debian has placed there.

Dilemma: I presently have no way to boot into Win7 where I am quite sure EasyBCD could quickly take care of all of this.
 

mqudsi

Mostly Harmless
Staff member
#11
The bootsect commands I spelled out above should do that.
 

Terry60

Knows where his towel is.
Staff member
#13
btw
Disk letters are nothing to do with the MBR or anything else in the boot process.
The BCD doesn't contain letters, just UIDs. EasyBCD translates the UIDs into letters as seen from the running system for convenience.
The letters are registry entries in the running OS and are determined either from the user assignments set in Disk Management (XP and later systems) or by the PnP detection sequence at boot.
That's why they can change in XP/Vista/7 if you replug drives, and why they will change in legacy Windows 9x, which always allocates letters dynamically at boot.
 
#14
btw
Disk letters are nothing to do with the MBR or anything else in the boot process.
The BCD doesn't contain letters, just UIDs. EasyBCD translates the UIDs into letters as seen from the running system for convenience ...

That's why they can change in XP/Vista/7 if you replug drives, and why they will change in legacy Windows 9x, which always allocates letters dynamically at boot.
Yes, I understand, and that matter of "current-OS convenience" is my concern here. When I initially had EasyBCD running in Win7 in order to add Debian into the overall boot mix, it saw Win7 as being in hijacked "C" as it should have since that is where Win7 always at least *appears* (or claims) to be while running, and then it (EasyBCD running in Win7) simultaneously saw Debian as being in "R" (as previously assigned by me in "Disk Management") on the same drive ... and then everything after that worked perfectly: Win7's BCD pointed to either OS (or back to the other Wins) at the boot menu right after starting the machine. However, EasyBCD *in XP* sees those letter conveniences turned around, showing Win7 in "R" and Debian in "C" (and I cannot explain the "R" being common to two partitions). So overall, and as a rookie here, I am guessing EasyBCD running in XP will be able to make my MBR on "0" look for Win7's BCD, but where? Then, how will I get EasyBCD in XP to make a new Win7 BCD that looks like it would if EasyBCD was instead running in Win7?!

Just thinking out loud here, so you do not need to try to help me reolve all of that beforehand. In fact, my cloning operation has finished, so I will now switch back over there and begin doing as you suggested and come back here to report "live" as we go ... or something like that ... and I do thank you!
 

mqudsi

Mostly Harmless
Staff member
#15
Good luck. It would be awesome if all our users had the foresight to mirror their drives before experimenting!
 
#16
Yes, and the $40.00 I spent in order to do that with complete confidence is not even a drop in the bucket of time it would take me to go back to the beginning and put this system back together for the third time ...!!

Lemme go print this thread so I have everything right in front of me when I begin clicking ...
 
#18
Here is the drive order XP sees, and I suspect EasyBCD just wrote to the SATA, which is actually third in line when this machine is first started up.
 

Attachments

#19
The screen shots you show are telling you that the first parameter to bootsect.exe is not optional. The first parameter tells bootsect.exe whether to install boot code for NTLR (/nt52) or for BOOTMGR (/nt60).

Try:
Code:
bootsect.exe /nt60 ALL /force /mbr
bootsect.exe /nt60 ALL /force
 
#20
The screen shots you show are telling you that the first parameter to bootsect.exe is not optional. The first parameter tells bootsect.exe whether to install boot code for NTLR (/nt52) or for BOOTMGR (/nt60).

Try:
Code:
bootsect.exe /nt60 ALL /force /mbr
bootsect.exe /nt60 ALL /force
Done, and here is the last of 8 screen shots, and I have copied them all over to another machine just in case I cannot get back in here on this one after rebooting! I saw various reports of not being able to unmount a drive in order to write and of "access denied" at XP's currently-running partition, but I will be shocked if *nothing* has changed this time around ...

Back in a few ...
 

Attachments