Jump to content











Photo
- - - - -

Dual Boot on Vista for Windows XP


  • Please log in to reply
18 replies to this topic

#1 kL0d3

kL0d3

    Newbie

  • Members
  • 21 posts
  •  
    Italy

Posted 08 August 2009 - 08:35 AM

Hi,
I've a new machine, 64bit architecture, for vista x64 Ultimate SP1!

I have installed Windows Vista Ultimate SP1 on a SATA disk (without any other disk plugged). All right!
I have also a PCI IDE Controller where I have mount an Hard Disk with Windows XP (previously installed). If I choose this Hard Disk for Boot from BIOS, this works fine.

So, I want to add this OS on the Multiboot of Windows Vista.

I have added this one with EasyBCD, and on the reboot, I have the list with Windows Vista and Windows XP. So, if I go to start windows XP, the machine reboot!

The configuration of EasyBCD is:

Name:  Microsoft Windows XP

BCD ID:  {f8b193a2-8037-11de-b6cb-0023543c76e4}

Drive:  G:\

Bootloader Path:  \NTLDR

I have tried to modifiy the string on boot.ini for thye ARC path of this disk, but this not work again. The path is:

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

I have edited the disk number, as shown on Disk Manager of Windows Vista. Partition(1) is for the first partition of the disk. Is this right???

Please, help me!!!

#2 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 08 August 2009 - 08:47 AM

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

I have edited the disk number, as shown on Disk Manager of Windows Vista. Partition(1) is for the first partition of the disk. Is this right???

Please, help me!!!


Partition(1) is allright, the problem is disk(1): it's wrong. :P

Try this:

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


Read here:
http://support.microsoft.com/kb/102873

in a multi(X)disk(Y)rdisk(Z)partition(W)\<winnt_dir>:

The MULTI() syntax indicates to Windows NT that it should rely on the computers BIOS to load system files. This means that the operating system will be using interrupt (INT) 13 BIOS calls to find and load NTOSKRNL.EXE and any other files needed to boot Windows NT.

The X, Y, Z, and W parameters have the following meaning:

X is the ordinal number of the adapter and should always be 0 (see the text below for the reason).
Y is always 0 (zero) if the ARC path starts with MULTI(), because MULTI() invokes the INT 13 call as described above and therefore does not need the DISK() parameter information.
Z is the ordinal for the disk on the adapter and is usually a number between 0 and 3.
W is the partition number. All partitions receive a number except for type 5 (MS-DOS Extended) and type 0 (unused) partitions, with primary partitions being numbered first and then logical drives. NOTE: The first valid number for W is 1, as opposed to X, Y, and Z which start at 0 (zero).


:idea:

jaclaz

#3 kL0d3

kL0d3

    Newbie

  • Members
  • 21 posts
  •  
    Italy

Posted 08 August 2009 - 09:19 AM

Thanks for your rapid post! :idea:

So, the solution is not again correct. I think I need to subsitute multi() with scsi(0):

scsi&#40;0&#41;disk&#40;0&#41;rdisk&#40;0&#41;partition&#40;1&#41;

because the Hard disk is not connect to the BIOS controller, but in another third-party IDE controller on a PCI Board. What do you think about?

#4 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 08 August 2009 - 10:45 AM

Thanks for your rapid post! :idea:

So, the solution is not again correct. I think I need to subsitute multi() with scsi(0):

scsi&#40;0&#41;disk&#40;0&#41;rdisk&#40;0&#41;partition&#40;1&#41;

because the Hard disk is not connect to the BIOS controller, but in another third-party IDE controller on a PCI Board. What do you think about?


It depends on the actual card, most bootable PCI cards will hook int 13h via BIOS extension.

I would try with multi() first, then with scsi() but then you would need ntbootdd.sys wouldn't you?

As a last resort, try the signature() syntax.

jaclaz

#5 kL0d3

kL0d3

    Newbie

  • Members
  • 21 posts
  •  
    Italy

Posted 09 August 2009 - 04:36 PM

I have a new evolution of the problem.

I have copied NTLDR, BOOT.INI and NTDETECT.COM into the Vista partition. Now it seems to start, but I get an error, it cannot find the file HAL.DLL.

What's wrong now? I think I have a problem about the BOOT.INI file... is this right?

#6 ktp

ktp

    Silver Member

  • Advanced user
  • 773 posts

Posted 09 August 2009 - 04:48 PM

You probably need to check the boot.ini for rdisk(x) and partition(y) values.

#7 kL0d3

kL0d3

    Newbie

  • Members
  • 21 posts
  •  
    Italy

Posted 12 August 2009 - 07:59 AM

ktp: I think you are right!

So, my situation is:
1 only IDE channel on-board (with 2 DVD-ROM RW drives)
6 SATA RAID ports on-board: in one of this channel, I have a SATA HDD with Windows Vista (shown as multi(0)disk(0)rdisk(0)partition(1) )
1 PCI IDE RAID Controller with 2 IDE HDD ( in the IDE0-Master I have an HDD with Windows XP)

Now, on the boot.ini, which ARC path I must to put for Windows XP???

Otherwise, is there a method to make the boot in verbose method for Windows XP, to check which kind of error I get before the message "hal.dll missing"???

#8 ktp

ktp

    Silver Member

  • Advanced user
  • 773 posts

Posted 12 August 2009 - 08:25 AM

Refer to jaclaz's link for documentation of ARC path:
http://support.microsoft.com/kb/102873

You can add /sos parameter for verbose messages.
You can try to add these entries (note the extra /sos parameters) to your boot.ini :
multi&#40;0&#41;disk&#40;0&#41;rdisk&#40;1&#41;partition&#40;1&#41;\WINDOWS=&#34;rdisk&#40;1&#41; Microsoft Windows XP Professional&#34; /sos /noexecute=optin /fastdetect

multi&#40;0&#41;disk&#40;0&#41;rdisk&#40;2&#41;partition&#40;1&#41;\WINDOWS=&#34;rdisk&#40;2&#41; Microsoft Windows XP Professional&#34; /sos /noexecute=optin /fastdetect

multi&#40;0&#41;disk&#40;0&#41;rdisk&#40;3&#41;partition&#40;1&#41;\WINDOWS=&#34;rdisk&#40;3&#41; Microsoft Windows XP Professional&#34; /sos /noexecute=optin /fastdetect

multi&#40;0&#41;disk&#40;0&#41;rdisk&#40;4&#41;partition&#40;1&#41;\WINDOWS=&#34;rdisk&#40;4&#41; Microsoft Windows XP Professional&#34; /sos /noexecute=optin /fastdetect

multi&#40;0&#41;disk&#40;0&#41;rdisk&#40;5&#41;partition&#40;1&#41;\WINDOWS=&#34;rdisk&#40;5&#41; Microsoft Windows XP Professional&#34; /sos /noexecute=optin /fastdetect


After testing each entry, you can determine the right entry and keep it (delete other newly added entries).
Change your default entry too to correct values found, and suppress if needed the /sos parameters.

#9 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 12 August 2009 - 08:54 AM

More simply, add a line:
C&#58;\grldr=&#34;Grub4dos&#34;
to your BOOT.INI

Add grldr to the root of your FIRST drive (the one where BOOT.INI is)

Get grub4dos 0.4.4 2009-06-20 here:
http://download.gna....-2009-06-20.zip

From the zip extract just grldr and copy it to the drive.

Choose grub4dos entry when booting.

In Command Line type:
find &#40;
and press [TAB]
it should give you a list of available drives, say:
&#40;fd0&#41; &#40;hd0&#41; &#40;hd1&#41; &#40;rd&#41; &#40;cd&#41;

Go on till:
find &#40;hd0,0&#41;/
and press [TAB]
WHICH files you see listed? Those of the Windows XP or those of the Vista Partition?

Try again with:
find &#40;hd1,0&#41;/
and press [TAB]
WHICH files you see listed? Those of the Windows XP or those of the Vista Partition?

Report.

jaclaz

#10 kL0d3

kL0d3

    Newbie

  • Members
  • 21 posts
  •  
    Italy

Posted 13 August 2009 - 06:58 AM

ktp: I've tried your solution, but I receive an error:
"There is problem running ..." and a long message... There is not error regarding files missing or something like this... Is an error like: "There is a problem on your hard disk!"

jaclaz: thanks for your supply. I'll try your test very very very soon :idea:

#11 kL0d3

kL0d3

    Newbie

  • Members
  • 21 posts
  •  
    Italy

Posted 13 August 2009 - 09:12 AM

jaclaz: A little question: I have 2 BOOT.INI, one into C:\ with Vista (within NTDETECT.COM and NTLDR) and one into G:\ with WindowsXP.

I have added C:\GRLDR_XP in the BOOT.INI into C:\ (I have need to rename GRLDR to GRLDR_XP 'cos into C:\ there is another GRLDR, i think because I have installed EasyBCD into C:\ with Vista.

So, When I reboot, I have 3 voice (on the Vista Boot Loader) : Windows Vista, Microsoft Windows and Grub4dos. If I choose Grub4dos, I get an error: \GRLDR_XP not found...
If I choose Microsoft Windows, I get another menu, with Grub4dos and Windows(default). If I choose again Grub4dos, I return into the Vista Boot Loader...

What's wrong?

#12 Huub Buis

Huub Buis
  • Members
  • 2 posts
  •  
    Netherlands

Posted 13 August 2009 - 05:28 PM

ktp: I've tried your solution, but I receive an error:
"There is problem running ..." and a long message... There is not error regarding files missing or something like this... Is an error like: "There is a problem on your hard disk!"

jaclaz: thanks for your supply. I'll try your test very very very soon :idea:


I have installed vista on hd0, part3 and XP on HD0 part0 using a ghost image. Using mrbooter i created the multiboot environment in just a minute, no need to adjust xp or vista.
Try it http://www.masterbooter.com

#13 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 13 August 2009 - 07:15 PM

What's wrong?


Introducing changes. :unsure:

You could have renamed the OLD grldr, or not? ;)

Rest assured that the new one will work like the old one (and better). ;)

Latest grldr's don't like to be renamed. :frusty:

However you can run the commands I gave you also on the OLD version you already have, this:

Add grldr to the root of your FIRST drive (the one where BOOT.INI is)


actually means :unsure: :

(IF YOU HAVEN'T ALREADY A COPY OF grldr on your FIRST drive, THEN) Add grldr to the root of your FIRST drive (the one where BOOT.INI is)


;)

jaclaz

#14 kL0d3

kL0d3

    Newbie

  • Members
  • 21 posts
  •  
    Italy

Posted 19 August 2009 - 09:21 AM

Hi at all...

The new situation is: when I substitute the OLD grldr with the new, I get the screen of Grub without options...

I think this OLD grldr is a boot for the bootmgr... Who have installed this modified grldr???

#15 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 19 August 2009 - 10:15 AM

The new situation is: when I substitute the OLD grldr with the new, I get the screen of Grub without options...

Unlike what you may think, this is good news.

Now try adding to the root of the drive where grldr is, menu.lst from the grub4dos package. ;)

I think this OLD grldr is a boot for the bootmgr...

Thinking is free (as in freedom) :cheers:, but thinking the wrong thing is actually common. ;)


Who have installed this modified grldr???

What? :) Little green men, obviously. :cheers:
The "next generation" of them has ceased hiding/stealing every other sock to make odd socks pairs and has started installing grldr's with modified embedded menu.lst overnight. :whistling:

Now, if you would be so kind as to read the "common sense advice" attached to Rules:
http://www.boot-land...?act=boardrules
with particular regard to point #f. (all of it, including points from #f1. to #f5.)

and do what I asked you to do here:
http://www.boot-land...?...c=8658&st=8

we could maybe make some progresses. :)

jaclaz

#16 kL0d3

kL0d3

    Newbie

  • Members
  • 21 posts
  •  
    Italy

Posted 19 August 2009 - 10:39 AM

Good Morning jaclaz! Thanks for your supply, as ever!!! ;)

So, I have send some command on the cmdline of Grub... I have finally make my multiboot system ;)

I have found the hard disk of my XP with Grub: it's hd2,0 :)

I now can start Windows Vista with Grub4dos installed on the same partition of Vista. This is the menu.lst:

title Windows Vista Ultimate x64

root &#40;hd0,0&#41;

makeactive

chainloader /bootmgr

boot



title Windows XP Professional SP3

root &#40;hd2,0&#41;

chainloader +1

boot

Now, Vista starts and works fine! I have some problem with XP, when I choose XP SP3 on the Grub menu, the machine reboot again to the BIOS !!! :whistling:
Now I make a modify to the BOOT.INI into the XP partition, for the ARC Path:

multi&#40;0&#41;disk&#40;2&#41;rdisk&#40;0&#41;partition&#40;1&#41;...

I'll upgrade very soon!

#17 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 19 August 2009 - 10:50 AM

And, again, you completely FAILED to READ what was suggested.
WHAT ;) is the difficult part in:
http://support.micro...kb/102873/en-us

....
x86-Based Computers
The following are generic examples of two possible BOOT.INI ARC paths:
multi(X)disk(Y)rdisk(Z)partition(W)\<winnt_dir>
.....

MULTI(X) Syntax
The MULTI(X) syntax of the ARC path is only used on x86-based computers. In Windows NT version 3.1 this path is only valid for IDE and ESDI drives; in Windows NT version 3.5, 3.51 and 4.0 it is valid for SCSI drives as well.

The MULTI() syntax indicates to Windows NT that it should rely on the computers BIOS to load system files. This means that the operating system will be using interrupt (INT) 13 BIOS calls to find and load NTOSKRNL.EXE and any other files needed to boot Windows NT.

The X, Y, Z, and W parameters have the following meaning:

X is the ordinal number of the adapter and should always be 0 (see the text below for the reason).
Y is always 0 (zero) if the ARC path starts with MULTI(), because MULTI() invokes the INT 13 call as described above and therefore does not need the DISK() parameter information.
Z is the ordinal for the disk on the adapter and is usually a number between 0 and 3.
W is the partition number. All partitions receive a number except for type 5 (MS-DOS Extended) and type 0 (unused) partitions, with primary partitions being numbered first and then logical drives. NOTE: The first valid number for W is 1, as opposed to X, Y, and Z which start at 0 (zero).


Now I make a modify to the BOOT.INI into the XP partition, for the ARC Path:

multi(0)disk(2)rdisk(0)partition(1)...


;)


I guess that using:

multi(0)disk(0)rdisk(2)partition(1)...


may give better results....:whistling:

jaclaz

#18 kL0d3

kL0d3

    Newbie

  • Members
  • 21 posts
  •  
    Italy

Posted 19 August 2009 - 12:05 PM

Sorry, jaclaz...

I have found the Final Solution!

This is the grub config file for my machine:

title Windows Vista Ultimate x64

root &#40;hd0,0&#41;

makeactive

chainloader /bootmgr

boot



title Windows XP Professional SP3

root &#40;hd2,0&#41;

map &#40;hd2&#41; &#40;hd0&#41;

map &#40;hd0&#41; &#40;hd2&#41;

chainloader &#40;hd2,0&#41;/ntldr

boot

Now some words: Windows XP was installed on the FIRST hard disk, in the hd0,0. So, his ARC Path on the BOOT.INI is:
multi&#40;0&#41;disk&#40;0&#41;rdisk&#40;0&#41;partition1

Then I install Vista on a new SATA Hard Disk. This now is the hd0,0. Windows XP, on an IDE Hard Disk, is linked to a PCI IDE Controller (of third-party, not on-board!). So, the hdd of XP is now hd2,0.

So, Windows XP is still expect that his position remain the same (hd0,0). Grub4DOS can swap the position of Hard Disk VIRTUALLY.
# This rename the REAL hd2 in hd0 &#40;like a BIOS swapping&#41;

map &#40;hd2&#41; &#40;hd0&#41;

# This rename the REAL hd0 in hd2 &#40;like a BIOS swapping&#41;

map &#40;hd0&#41; &#40;hd2&#41;

I wish this solution can help someone on the NET!

jaclaz, thanks for all! You're the best EVER!!! :whistling:

#19 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7101 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 19 August 2009 - 12:36 PM

I have found the Final Solution!


Which unfortunately is WRONG! ;)

This:

title Windows XP Professional SP3

root &#40;hd2,0&#41;

map &#40;hd2&#41; &#40;hd0&#41;

map &#40;hd0&#41; &#40;hd2&#41;

chainloader &#40;hd2,0&#41;/ntldr

boot


is PERFECTLY equivalent to:
title Windows XP Professional SP3

root &#40;hd2,0&#41;

chainloader &#40;hd2,0&#41;/ntldr

  • Mapping drives in grub4dos is NOT effective outside the grub environment if the (re)mapping is NOT hooked.
  • The boot command is IMPLIED in menu.lst entries.

This:
title Windows XP Professional SP3

map &#40;hd2&#41; &#40;hd0&#41;

map &#40;hd0&#41; &#40;hd2&#41;

map --hook

root &#40;hd0,0&#41;

chainloader /ntldr
is what you probably wanted to do. :whistling:

This:
title Windows XP Professional SP3

find --set-root /ntldr

chainloader /ntldr
is what you should try.


jaclaz, thanks for all! You're the best EVER!!! :)

You are welcome. ;)

jaclaz




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users