Jump to content

Make a proper Dual Boot


Dogway

Recommended Posts

I was very lost because this is the first time I do this. I already have a dual boot but managed by windows.

I installed first XP x86 on first partition of first disc, that is C:, and later XP x64 on the second partition of the first disc, designated as J:.

Now for me that is a problem, is it possible to convert that J: to C:? And then make those partitions not see each other?

I went reading a bit and figured out I need a boot manager, then wondered which out of the many should I choose, finally decided that GRUB 2 could be a safe bet, but I don't find information about it, all I see involves Linux which I'm not interested. If ultimately it is not possible to convert J: to C:, it's not a big deal either, I can reinstall XP x64 in the second partition from scratch, but I'd like to keep C: untouched by all means.

Any help is welcome. Thanks!

Link to comment
Share on other sites


I'll suggest NOT "Grub" but Grub4DOS (NOT the same thing). It's very easy to set up.

Download -

http://sourceforge.net/projects/grub4dos/

Tutorial -

http://diddy.boot-land.net/grub4dos/Grub4dos.htm

Two items used - "GRLDR" and "MENU.LST" in the C-drive. The tricky part IF you want to install BOTH to a (quote)C-Drive(unquote) is that you will have to TOTALLY hide the FIRST install so the SECOND install will "think" it's installing to "C"...

For that initial "trick" you MIGHT be able to use PTEDIT32 found here -

ftp://ftp.symantec.com/public/english_us_canada/tools/pq/utilities

I'm making a "guess" that as long as it's in the "Active/Boot" state that it will boot in spite of the fact that it's "temporarily hidden". :unsure: You could make a basic LiveXP and place the program on the CD "just in case".

In any case, read the Tutorials thoroughly.... Flip/Flop the HDD Designations for each Boot. You can "cheat" and rename GRLDR<->NTLDR so the BootPart goes to NTGRLDR first and use MENU.LST to control the Booting/Hiding-unhiding.

Edited by submix8c
Link to comment
Share on other sites

1 - Place GRLDR in ROOT of C-Drive

2 - Rename NTLDR to NTLDR.BIN

3 - Rename GRLDR to NTLDR

4 - Put the following in a file named MENU.LST in ROOT of C-Drive

color white/blue  black/light-gray
timeout 20
default 0

[[hook1]]
title Microsoft Windows XP Professional x86
unhide (hd0,0)
hide (hd0,1)
chainloader /NTLDR.BIN

[[hook2]]
title Microsoft Windows XP Professional x64
unhide (hd0,1)
hide (hd0,0)
root (hd0,1)
chainloader +1

[[hook3]]
title Reboot
reboot
title Shutdown
halt

You can STILL boot the x86 at this point. Your problem now is only to get the x64 into the second partition.

Edited by submix8c
Link to comment
Share on other sites

I don't have problems in using Grub4DOS, but why not GRUB 2? it's much newer and probably a bit easier to use.

The "hiding the partition" trick, I heard it from a video in youtube but for other reasons (not override boot loader from one OS to another). I know how to do that, the guy used gparted from a live CD so no risk there, if that's ok.

The part I'm 100% lost is about the boot manager, I will be full read on the tuto and videos when you confirm me I can't use GRUB 2.

Link to comment
Share on other sites

Don't I need gparted with that MENU.LST?

For simplicity I omitted that I have also an EISA partition on first disk, it's the first partition, XP x86 second, XP x64 third.

I'd need to change that, right?:

[[hook1]]
title Microsoft Windows XP Professional x86
unhide (hd0,1)
hide (hd0,2)
chainloader /NTLDR.BIN

[[hook2]]
title Microsoft Windows XP Professional x64
unhide (hd0,2)
hide (hd0,1)
root (hd0,2)
chainloader +1

Then what, reboot and reinstall XP x64? is that all?

Edited by Dogway
Link to comment
Share on other sites

No I don't want to argue, your quote doesn't state it doesn't work outside Linux, I also went to wikipedia and didn't read anything about it, that's why I asked you why I can't use GRUB 2. I will use what's more convenient and does the job.

Does your MENU.LST avoid the need of gparted?

Edited by Dogway
Link to comment
Share on other sites

GPARTED = Move/Resize.

I installed first XP x86 on first partition of first disc, that is C:, and later XP x64 on the second partition of the first disc, designated as J:.
Two predefined so GPARTED is out of play.

GRUB2 and Linux/Windows - https://wiki.archlinux.org/index.php/GRUB2

Edited by submix8c
Link to comment
Share on other sites

I should ask then if with the MENU.LST file, do I still need PTEDIT32 as suggested?

Also I don't know if renaming ntldr to ntldr.bin, and naming grldr to ntldr is legit, sfc can detect and replace it back or lead to some troubles, or not? Shouldn't I install grub4dos with the grub installer or bootice first?

Also if I were to load NTLDR.BIN (upper case?) I would need to edit my boot.ini to only one entry, so I avoid the XP boot manager from popping up. XP x64 would load from the grub4dos boot manager (namely grldr named as ntldr by the "chainloader +1" call), is that right?

edit: finally found the holy page that explains mostly everything. There is one thing still, they explain how to hide boot partitions from each other, but I bet they will still be named after consecutive letters because OS install is done prior to GRUB4DOS, just as my current situation.

Edited by Dogway
Link to comment
Share on other sites

Ok, let's start again from scratch.

The grub4dos is NOT anymore on sourceforge (since YEARS).

The current release is here:

http://code.google.com/p/grub4dos-chenall/downloads/list

ALWAYS use, unless specifically told to use a specific version, LAST one marked as "Featured", right now:

grub4dos-0.4.5c-2013-03-03

http://code.google.com/p/grub4dos-chenall/downloads/detail?name=grub4dos-0.4.5c-2013-03-03.7z&can=2&q=

There is NO NEED to rename anything to anything else :realmad: , on the contrary it is STRONGLY ADVISED to NEVER do that.

grub4dos is MORE flexible than GRUB (legacy) and GRUB (GRUB2) because it has been designed with features that both the original GRUB and the unneededly made complex GRUB2 completely miss.

But to simply dual boot two XP's there is NO need for using any third party bootloader/bootmanager, the NTDLR is enough.

The real issue here is:

Now for me that is a problem, is it possible to convert that J: to C:?

The quick answer is NO.

The long answer being, YES, it is possible but the procedure is so long, complex and prone to errors that it is NOT a smart approach.

Reinstalling from scratch is highly advised, really.

And then make those partitions not see each other?

Yes, it is possible.

Ideally you should have three partitions, (one for the boot files NTLDR/BOOT:INI/NTDETECT.COM) and two one for each XP, but it is doable even with your current setup.

You need to re-install the second instance of XP, however AND have a "separate" booting media (ideally a PE).

The key is the file migrate.inf, that you will find in \$WIN_NT$.~BT\ after running the first part of the setup, see:

http://www.911cd.net/forums//index.php?showtopic=19663

the file is used to "migrate" ;) the current drive lettering (from the first XP install) to the second (new) one.

You need to edit it so that in the "new" install the first partition (the one with the XP 32 bit install) is NOT assigned to C: and INSTEAD the second partition (the one to which you are going to install the XP64) will get it. (in practice you will simply need to invert the drive letters, your migrate.inf will have two entries).

This way the C: letter will be assigned in the XP64 install to the second partition where the XP64 is installed to and the "other" letter will be assigned to the first one.

Later you can remove the drive letter from the "other" partition from each of the two XP's from Disk Management.

The issue here will be that to edit (if needed) BOOT.INI from the XP64 install, you will need to assign a drive letter to the first partition in order to access it.

The above is the "difficult way", if we are allowed to use grub4dos - at least for the mere install phase - it would be much simpler, as we can use it to hide the first partition (and thus there will be no need to edit migrate.inf).

The approach sketched by submix8c (set aside the renaming of grldr) is valid but it is "permanent", and at every other boot you will be setting/unsetting data in the MBR, something very like it can be used only during the install, and later provide a "normal" NTLDR choice between the two XP's.

Let me know which way you prefer, ask for directions BEFORE doing things.

jaclaz

Link to comment
Share on other sites

ok, I see, what you suggest is to interrupt the installation (when the Windows performs the first reboot after copying files) and boot from a Live CD, look for migrate, change letters, reboot and finish install of XP x64?

Here I will want to set x86 drive letter C: as a far letter, X: for example, so it doesn't displace my other known drive letters, D: (Data), E:, etc For my current XP x86 I don't care, second partition (where x64 will be installed) is already T:. Then I hide them, with disk management? is it possible?

I also didn't correctly understand your last sentence about boot.ini, mmm no I think I do, if I were to edit BOOT.INI isn't enough to boot to x86 and change it? I'm not very concerned about that I think.

Tell me if I missed something, actually I want the method that is less risky, about difficulty I funnily find this last one easier although (despite not being as straightforward). I think the risk here is to not miss the first reboot, otherwise the XP install continues.

For the grub4dos way I need to know more things I'd need to ask, specially for the menu.lst file, commands like norootverify, makeactive, etc

I'll do what you suggest me to.

Thanks for help.

Edited by Dogway
Link to comment
Share on other sites

ok, I see, what you suggest is to interrupt the installation (when the Windows performs the first reboot after copying files) and boot from a Live CD, look for migrate, change letters, reboot and finish install of XP x64?

Yep.

Here I will want to set x86 drive letter C: as a far letter, X: for example, so it doesn't displace my other known drive letters, D: (Data), E:, etc For my current XP x86 I don't care, second partition (where x64 will be installed) is already T:. Then I hide them, with disk management? is it possible?

I also didn't correctly understand your last sentence about boot.ini, mmm no I think I do, if I were to edit BOOT.INI isn't enough to boot to x86 and change it? I'm not very concerned about that I think.

Yes, but you need some background.

Drive letter is a "residual" of DOS, NT based systems do not really-really use drive letters (though 99.99% of programs running in them do use them).

I know it sounds "crazy" apparently, but that is how it works.

Boot.ini uses ARC paths (and knows nothing about drive letters), this is why a typical entry in it is like:

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

i.e. a partition/volume is accessed by it's address, in the above first partition (1) on first disk (0).

Then NT boots and the same volume is seen (in disk management or diskpart) in a similar way, the actual NT name will be \Device\Harddisk0\Partition1 or \Device\HarddiskVolume1 or \Device\Harddisk0\DR0 or , you can use the nice Sysinternals program Winobj:

http://technet.microsoft.com/en-us/sysinternals/bb896657.aspx

and also an GUID is assigned to it (try running the MOUNTVOL command), like \??\Volume{83092730-6bfc-11df-b90c-806d6172696f}.

then a drive letter is assigned to it (i.e. the Volume is mounted to a drive letter).

If there are no related settings in the Registry (namely in HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices ) the letter assignment is automatic (following a given set of Rules, first non-hidden primary on first disk is given C:, etc.) OR you can choose to NOT assign a drive letter (i.e. the Volume is NOT mounted) OR you can use INSTEAD of a drive letter (on NTFS only) a mountpoint see:

http://technet.microsoft.com/en-us/library/cc938934.aspx

So, the idea is not to "hide" the partition(s) but simply to NOT mount the "other" volume on each of the two installs.

The easiest is to use migrate.inf during setup to have it mount to a "different from C:" drive letter, let's say U:, and later, once install is complete, de-assign the drive letter from the volume.

The reference I made was about the impossibility of accessing the BOOT.INI (as the only item that may need to be edited) on the non-mounted volume, but it is only a matter of temporarily mounting it in order to do the editing.

Tell me if I missed something, actually I want the method that is less risky, about difficulty I funnily find this last one easier although (despite not being as straightforward). I think the risk here is to not miss the first reboot, otherwise the XP install continues.

Yes, but actually in the worse case you will have re-installed to the "same, wrong" drive letter, nothing catastrophical.

I gave you the "complex" way in order to see what you thought about it.

The key question here is if you have a working PE of some kind and you are familiar with it in order to do the editing of the migrate.inf.

Booting a grub4dos (from say a USB stick) and simply hiding the first partition (second in your case) before installing the XP 64 is far easier.

The only issue with this approach might be if the second partition (third in your case) is not a primary one but a volume inside extended.

For the grub4dos way I need to know more things I'd need to ask, specially for the menu.lst file, commands like norootverify, makeactive, etc

Well, as a matter of fact what most people fail to realize is that a menu.lst is correspondent to a batch file, i.e. it is a way to repeat a set of commands at will, in this case you need not a menu.lst, you simply want to run a few grub4dos commands on the command line.

Think at grub4dos like you would think at DOS: it is a (minimal) Operating System with a set of commands available.

Think at menu.lst like you would think at DOS' Autoexec.bat and Config.sys, a set of commands (and choices) that will execute when booting the OS.

The grub4dos guide by diddy:

http://diddy.boot-land.net/grub4dos/Grub4dos.htm

details enough most of the basic usage of the tool (though since the time it was written a number of new features were added to grub4dos).

You need to read just these pages:

http://diddy.boot-land.net/grub4dos/files/basics.htm

http://diddy.boot-land.net/grub4dos/files/cli.htm

and something about disk swapping:

http://diddy.boot-land.net/grub4dos/files/map.htm#swap

and learn about three commands:

http://diddy.boot-land.net/grub4dos/files/commands.htm#hide

http://diddy.boot-land.net/grub4dos/files/commands.htm#unhide

http://diddy.boot-land.net/grub4dos/files/commands.htm#makeactive

I'll do what you suggest me to.

Thanks for help.

You are welcome.

If I were you I would boot from a USB stick with grub4dos on it (an easy way to create one is using RMPREPUSB: http://www.rmprepusb.com/ ), then issue these commands:

map (hd0) (hd1)

map (hd1) (hd0)

map --hook

root (hd0, 1)

ls

first three lines "restore" the disk order as if you hadn't booted from USB, the ls should show the contents of your current XP 32 partitions, it is just a check to make sure that device/partition numbers are correct.

Then:

root (hd0,2)

ls

this should list the contents of the partition on which you are going to install the XP 64.

You should (from the XP 32) delete the contents of this partition and make on it a "tag file", deleting the contents is needed because otherwise the XP install will probably use the current "wrong" drive letters from the XP 64 Registry and making on it a file like "thisis_64_bit_part.txt" is just a way to make sure that partition is the "right" one.

Then:

makeactive (hd0,2)

hide (hd0,1)

i.e. make active the third partition and hide the second one.

Then reboot and install the XP 64 "normally".

Once done that simply unhide the second partition, either booting to grub4dos and:

map (hd0) (hd1)

map (hd1) (hd0)

map --hook

unhide (hd0,1)

or by using *any* Windows tool oriented to managing partition tables/MBR, the mentioned PTEDIT32 would do, but also any disk editor will do as well or any other tool you are more familiar with.

When you reboot you will still have the XP64 only actually booting, this time the XP32 partition (since it is non-hidden) will get a drive letter, up to you if you want to change it or remove it alltogether in Disk Management.

Now you need to edit the BOOT.INI (on the XP64 partition) to add an entry for the XP32 partition.

This way the "main" bootmanager will be the one on the third partition.

If you want to use instead the one on the second partition you need to make that active instead (and add to the BOOT.INI on the second partition an entry for the XP64 install).

This is IMHO the less risky because you have handy a tool (the USB stick with grub4dos) with which one can fix any and all issues that may arise.

BEFORE doing any of the above, obviously, it is strongly recommended that you make a backup of the MBR "as is" (which BTW, since you have a partition that is - incorrectly - identiifed as EISA by disk management and that is a Recovery partition of some kind, is VITAL since besides the DATA also likely contains a non-standard MBR CODE allowing the access to the recovery parittion).

jaclaz

Link to comment
Share on other sites

I will answer you in detail later when I got some time, but wanted to a quick feedback before it. I forgot to say I have a working BartPE I made a few months ago. I tested it this morning and it works (explore files etc).

What I tried to test a few days ago was booting windows from USB (in order to install a nlited OS with integrated RAID drivers), I couldn't make it work, I also used it to install the drivers at F6 previously, tested with 2 USBs and BIOS didn't like any.

I have for these things instead a CD-RW, and a DVD-RW I bought a few days ago that currently has burned this mod of my unattended XP x64 with the integrated RAID drivers, this one I will use.

I read also earlier today all the pages from grub4dos, skipped the few pages that had nothing to do with my case.

I'll read your help throughly and ask later.

My hard disk is as follows:

- EISA

- x86

- x64

- Unpartitioned 8Mb (doesn't show in disk management)

Edited by Dogway
Link to comment
Share on other sites

After reading most of the posts here, I have just one suggestion, based on 30+ years of my own PC experience and some very bad experience with Dual Booting, on a single Hard Drive.

I take a line from the railroad industry, "never the trains shall meet". And in my own PC I change that slightly to read, "never the OS's shall meet".

It's a fairly well known fact, that if one OS can see another OS, it will try to "fix" it. I don't remember the details now, but XP and Windows 7 seemed to mess with one another. One would erase the restore points created by the other. (or something like that)

So now I have XP, Windows 7 and Windows 8 all installed on separate hard drives, all set up to run on my main desktop PC, but never all connected to run at the same time. I only power up the drive, with the OS, that I want to run at any one time. The other drives remain UN-Powered so there is absolutely NO freakin' way that one OS can interfere with another OS.

If I want to take one OS-Drive out and use it elsewhere or reformat it and put on a different OS, there is absolutely NO way that's going to interfere with my main OS.

I know this flies in the face, of all the explanations given here.....but that's just my own take on the problem of dual booting.

Happy Computing!

B)

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...