Jump to content

Drive Order


NATO

Recommended Posts

My old computer broke down, got me a 'new' one and will have Win XP and Win 7 on each their own hard disk. Keeping both drives connected, am I right in assuming that I then can install XP first, then Win7, and the multiboot I want will have been taken care of with nothing left for me to bother with?

 

Will either system drive appear as a C: volume when booted?

Well, if you install first XP, the volume on which you install it (let's say the first primary partition of first hard disk) will get drive letter C:.

When you install the Windows 7 that volume will remain C: and the volume (let's say first primary partition of second disk) will get a "later" drive letter.

 

The booting until you have only the XP installed will go:

BIOS->First Disk MBR->Active Primary partition PBR (this will be C:\)->NTLDR->BOOT.INI->Windows XP

once you will have installed the 7 it will go either:

BIOS->First Disk MBR->Active Primary partition PBR (this will be C:\)->BOOTMGR->\boot\BCD->XP choice->NTLDR->BOOT.INI->Windows XP

or:

BIOS->First Disk MBR->Active Primary partition PBR (this will be C:\)->BOOTMGR->\boot\BCD->7 choice->Winload.exe (on second disk partition, possibly D:\)->Windows 7

 

If you have only one primary partition on the first disk that will be C: under both OS, whilst the first primary partition on second disk will be D:, again on both OS.

 

As always, using a few tricks and/or a third party bootmanager this can be changed if this is not the expected result.

 

jaclaz 

Link to comment
Share on other sites


OTOH, by installing XP on one disk, with the other disconnected, then disconnecting the XP disk, connecting the other one and installing 7, this will result in both having the letter C: when booted, but assuming another letter (which is configurable) when the other one is booted... and some minor adjusting for setting that up as a double boot, IMO, preferably, by using grub4DOS...

Link to comment
Share on other sites

OTOH, by installing XP on one disk, with the other disconnected, then disconnecting the XP disk, connecting the other one and installing 7, this will result in both having the letter C: when booted, but assuming another letter (which is configurable) when the other one is booted...

Sure, and to change boot one would need to change drive order in BIOS, which brings us back where it all began, i.e. here:

http://www.msfn.org/board/topic/156859-drive-order/?p=1005033

which, starting from here:

http://www.msfn.org/board/topic/156859-drive-order/?p=1005435

details the grub4dos usage to have each OS "independent".

jaclaz

Edited by jaclaz
Link to comment
Share on other sites

ETA:: I didn't see your msg before I wrote this:

 

I have been working hard to try and manage as much as possible on my own, and I am almost tere, but a strange problem has snuck in:

 

As said, I have two similar system disks, one for XP and the other for Win7.

 

When set as first boot drive in BIOS, both of them work 100% fine, with drive letter C and everything else looking just fine.

 

But with XP as first drive and selecting the Win 7 entry in the boot.ini file, I get an error message like this:

 

Windows Root > \system32\ntoskrnl.exe is missing or corrupt.

 

The file is there, ntoskrnl.exe 54341KB, 21.11.2010

 

I know ntoskrnl problems are not uncommon but it beats me why the multiboot path to booting should cause a problem.

 

My two setups:

 

Disk 0 Win XP root files:

boot.ini:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional"
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows Ultimate"
C:\Windows7.bin="Windows 7 disk"

IO.SYS
MSDOS.SYS
NTDETECT.SYS
ntldr
pagefile.sys


Disk 1 Win7 root files:
AUPOX
bootmgr
hiberfile.sys
pagefile.sys
swapfile.sys
 

....

 

It would be nice to have grub4dos too, but  I don't know if I can fix that all by myself.

 

What has made everything so difficult for me is that my old machine didn't just break down; I was having all kinds of problems that I tried to fix. Reinstalling OS's, utilities, only to run into more problems, CD/DVD disks getting corrupted and finally, out of the blue i got a message about data written to an address that should not be written to, and after that my SSD drive with the XP and Win7 partitions was dead and beyond resurrection.

 

So much of what I thought I had saved from my installation got lost during my struggle to repair the system.

Edited by Roffen
Link to comment
Share on other sites

Well, you cannot use NTLDR to boot Windows 7, which is what you are attempting to do with this line:

multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows Ultimate"

Now, be nice :).

Start again.

You want this BOOT.INI:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional"

C:\grldr="Grub4dos to Windows 7"

and add to the first disk (together with boot.ini), this menu.lst:

timeout 30

title Grldr Loading BOOTMGR

find --set-root /bootmgr

chainloader /bootmgr

title Grldr loading second disk

chainloader (hd1)+1

title Grldr loading second disk and exchange

map (hd0) (hd1)

map (hd1) (hd0)

map --hook

chainloader (hd0)+1

title Grldr loading first part on 2nd disk

root (hd1,0)

chainloader +1

title Grldr loading first part on 2nd disk and exchange

map (hd0) (hd1)

map (hd1) (hd0)

map --hook

root (hd0,0)

chainloader +1

and of course a grldr file, you can get it from the latest 0.4.5c version:

http://grub4dos.chenall.net/downloads/grub4dos-0.4.5c-2015-04-08/

http://dl.grub4dos.chenall.net/grub4dos-0.4.5c-2015-04-08.7z

 

Theory of operation:

Bios boots the MBR of first disk.

The MBR code loads the PBR of the Active partition on first disk.

The PBR code loads the NTLDR (residing on the active partition on first disk)

The NTLDR loads the BOOT.INI choices.

You choose "Grub4dos to Windows 7".

The NTLDR chainloads the grldr file (grub4dos).

The grldr loads the menu.lst choices.

You choose the "Grldr Loading BOOTMGR" choice.

The grldr looks in all volumes on all disks if he can find in the root a file "BOOTMGR".

Then it chainloads the found BOOTMGR.

The other entries (that should all work) are other variations with the same final goal of chainloading BOOTMGR on the first partition of second disk.

The BOOTMGR loads the choices in \boot\BCD (possibly just one in your case)

You choose to boot to Windows 7 (or wait until the timeout in \boot\BCD) and BOOTMGR chainloads WINLOAD.EXE (which is what actually boots the Windows 7).

If you prefer, when you boot and choose the "Windows XP", you are using NTLDR as both primary boot manager and bootloader, when you boot and choose "Grub4dos to Windows 7" NTLDR is used only as primary boot manager, grub4dos becomes the secondary boot manager and BOOTMGR becomes tertiary boot manager and boot loader.

I know it is confusing :), but you should have no issues in following the above with some patience.

jaclaz

Link to comment
Share on other sites

After installing grub4dos I can boot Win 7 without any problems. I don't understand why it doesn't work from the 'normal' entry.

Must run, will check your post later. I have a wife that needs some attention, it is stressing.

Link to comment
Share on other sites

"Well, you cannot use NTLDR to boot Windows 7, which is what you are attempting to do with this line:

Quote

multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows Ultimate"

OMG, now I see!

 

I take it that means a dual boot with both system drives as C: is impossible without grub4dos or something like that?

Was a revelation to me.

 
 

Link to comment
Share on other sites

OMG, now I see!

 

I take it that means a dual boot with both system drives as C: is impossible without grub4dos or something like that?

Was a revelation to me.

Yes and no. :w00t:

It is important to understand the difference between a boot manager and a boot loader, and since most of the tools are at the same time BOTH, it is easy to get confused.

A boot manager is something that can chainload (or pass control to) a boot loader.

A boot loader is something that directly loads an Operating System.

The default boot manager for NT through Server 2003 is NTLDR.

NTLDR is also the one and ONLY boot loader for NT through Server 2003.

The default boot manager for Vista and later is BOOTMGR.

BOOTMGR is also the one and ONLY boot loader for Vista and later.

NTLDR is at the same time a boot manager and a boot loader FOR NT/2K/XP/2003 ONLY.

BOOTMGR is at the same time a boot manager and a boot loader for Vista :ph34r:, 7 and later BUT among it's boot manager features it has the capability to chainload the NTLDR, using it as a boot loader.

See here (that includes a nice set of graphics):

http://www.multibooters.co.uk/multiboot.html

Simplified, right now to boot XP you use only NTLDR, and since NTLDR by itself cannot chainload BOOTMGR, we use grub4dos as a "man in the middle" (as an intermediate boot manager).

If you change the primary boot manager from NTLDR to BOOTMGR you can get rid of grub4dos, since BOOTMGR can chainload NTLDR "directly".

In order to do this you will need to have a copy of the BOOTMGR and of the \boot\BCD on your first disk and change the PBR on the Active partition of it to load BOOTMGR instead of NTLDR, then add to the \boot\BCD a choice to load the NTLDR (if - by any chance - you use Bitlocker it will be needed to change also the MBR code).

The MS tools to do the above are bootsect.exe and bcdedit.exe, as they are a bit complex to use, ask before attempting to use them and if needed I will provide you with the exact procedure :).

jaclaz

Link to comment
Share on other sites

That's very nice of you but I think you already have done much more than anyone could expect on any forum. I am very grateful for that. I now I have a functioning system that I don't want to mess up for anything in the world. Besides, it is about time I get all all of this settled for good, I want to spent the rest of my spare time using a computer and forget all about what's inside.

 

I am now trying to streamline the process by removing things from the boot.ini and menu.lst files.  With only two options in boot.ini, would it be possible to have grub4dos automatically select and execute the only option besides XP that I need in my menu.lst  - booting of the Win7 disk?

 

I might decide to use WIin 7 as my main OS and just keep XP as a standby in case of compatibility problems. That would be the v6 of Outlook Express, and MusicMatch. I have not looked into whether Win7 Ultimate might have a solution for that.

 

I wouldn't mind getting rid of XP altogether!

 

But for the time being, what I care most about is whether I now can use disk management to designate all my drives and volumes to use the same drive letters regardless for which system is booted except for the two system drives that of course always would be C or D.

 

That would make mapping of everything else look identical regardless of system in use.

Link to comment
Share on other sites

With only two options in boot.ini, would it be possible to have grub4dos automatically select and execute the only option besides XP that I need in my menu.lst  - booting of the Win7 disk?

Yes, of course.

Right now you have 5 options in your menu.lst

  • title Grldr Loading BOOTMGR
  • title Grldr loading second disk
  • title Grldr loading second disk and exchange
  • title Grldr loading first part on 2nd disk
  • title Grldr loading first part on 2nd disk and exchange
AFAICT all of them should lead to successfully boot the Windows 7 on the second disk, but you have to check that, then you choose just one, let's say the first one.

You can then have a very simple menu.lst like:

default 0

timeout 1

title Grldr Loading BOOTMGR

find --set-root /bootmgr

chainloader /bootmgr

 

Which should simply boot to the Windows 7, which can be even simplified to:

find --set-root /bootmgr

chainloader /bootmgr

or maybe :unsure: a "boot" command is needed in this last case, i.e.:

find --set-root /bootmgr

chainloader /bootmgr

boot

 

 

And yes, sure, exception made for C: and D: you can use disk manager to change drive letters of all other volumes the way you wish, of course you will need to do it twice, once in XP's Disk Manager and once in t the 7's Disk Manager. (drive letter assignment is stored in the Registry of each OS)

 

jaclaz

Edited by jaclaz
Link to comment
Share on other sites

  • 1 month later...

I got a special problem today. The XP disk(0) has been ok for a long time, but I had to reinstall my Win7 Home Premium on disk(1).

 

Afterwards It all semed to work as before and I was in the proces of reinstalling my usual applications.

 

I had  restarted the system several times and it worked like a charm, but suddenly, after installing ZoneAlarm on the Win7 disk and rebooting, I got this ugly message from disk(0):

 

Loading new partition.

 

Bootsector from C. H. Hochstätter.

 

And that was that, the system was like dead, nothing more happened.

 

The setup I've been using had boot XP as the default option, with grub4dos as the next alternative.

 

Disk(0) has

boot.ini

grldr

IO.sys

menu.lst

MSDOS.SYS

NTDETECT.COM

pagefiel.sys

Windows7.bin

ymjsetup.exe

 

Disk(1) (Win7) C:\ has

autoexec.bat

bootmgr

config.sys

hiberfil.sys

pagefile sys

 

Is there a simple fix for my problem?  I'd hate to have to reinstall  XP, it has been in use for some time so there is much that will need to be installed anew.

 

I could do without WIn7 except there are features of my bank access that will not work under XP.

Edited by Roffen
Link to comment
Share on other sites

The:

 

Loading new partition.
Bootsector from C. H. Hochstätter.

 

 

typically comes from a bootsector created (when a particular specific command line is used) by BOOTPART.

Still typically this bootsector is loaded by NTLDR from an entry in BOOT.INI.

What are the current contents of BOOT.INI on your disk 0?

Can you now boot to *something*?

If yes, HOW EXACTLY? (like booting to the Windows 7 changing BIOS drive order)?

 

jaclaz

Link to comment
Share on other sites

All root files in drive 0 have the Archive attribute, and the boot ini cannot be typed, edited, or have it's attribute changed. It seems 'someone' has been creating a mess here Maybe the problem is that I am working from Win7 and have no rights on the drive?

 

Maybe I'll try and see if I can obtain ownership, I can't see how else I can fix it. Or I surrender and install XP from scratch again.

 

I can handle my main 'business' from Win7 for the time being and work on the XP problem when I have time to spare.

 

Seems Win 7 is a strict mistress, there doesn't ssem to be anything I can do to get access.

 

What I will do is to take a XP disk from my old machine and put it in here, boot up and probably get access to the other XP disk and remove the A-ttribute. Maybe removing the Attribute is enough, but I think I will add the SHR attributes.

 

But that's for tomorrow, now it's off to bed.

Edited by Roffen
Link to comment
Share on other sites

This morning I feel much better. Found another XP parition on the machine, booted, removed the Archive attributes and added the SHR attributes. The files probably had been left without attributes after installation.

 

So now everything is back to where it should be.

 

But here are are the files I have:

 

BOOT.INI:

 

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional"

C:\grldr="grub4dos"

C:\Windows7.bin="Windows 7 disk"

 

 

MENU.LST:

 

color blue/green yellow/red white/magenta white/magenta

timeout 30

 

title Load Windows 7 from disk 1 part 0

root (hd1,0)

chainloader /BOOTMGR

 

title commandline

commandline

 

title reboot

reboot

 

title halt

halt

Link to comment
Share on other sites

But can you choose the entries in BOOT.INI?

It is likely that the thing that issues the message you reported is the "C:\Windows7.bin", which you really shouldn't need/want, as most probably by re-formatting/reinstalling you made some pointers in that file invalid (and should you need it, it needs to be recreated) but you already have the default:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS (which points to a windows on first partition of first disk)

and the grub4dos entry:

C:\grldr (that loads th grldr and than the menu.lst through which you can boot the Windows 7 on second disk, first partition)

 

Check the disk order in BIOS and verify that the Windows XP install is on first partition of first disk or (temporarily) add a few lines to the BOOT.INI to try non first partition, like here (this is for 2K, though the principles are the same):

http://www.msfn.org/board/topic/25365-bootini-and-different-hard-drive/?p=173823

or here (this is for XP)

http://www.911cd.net/forums//index.php?s=&showtopic=24649&view=findpost&p=170210

 

jaclaz

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...