Re: Dual booting
From: R. C. White (rc_at_corridor.net)
Date: 01/06/05
- Next message: WTC: "Re: Firewalls"
- Previous message: Bob I: "Re: Crash + Crash Again"
- In reply to: Peter Will: "Re: Dual booting"
- Next in thread: Peter Will: "Re: Dual booting"
- Messages sorted by: [ date ] [ thread ]
Date: Thu, 6 Jan 2005 15:52:30 -0600
Hi, Peter.
It appears you have misunderstood much of the "disjointed info" you have
received. :>( Maybe it's time for the long version of my usual description
of Microsoft's dual boot scenario.
First, C: is not your physical hard drive. A hard drive is never assigned a
"drive" letter. That's a misnomer which we won't be able to change because
it is so ingrained in the literature and language of computing. "Drive"
letters actually are assigned to "volumes". Each hard drive can be
partitioned into 1, 2, 3 or 4 partitions, of which one may be an "extended
partition"; the others are "primary partitions". Multiple "logical drives"
can be created within the extended partition; there's no limit on how many
logical drives until you run out of disk space or letters of the English
alphabet. The extended partition is not assigned a drive letter, but each
logical drive in it gets a letter. Each primary partition and each logical
drive is a "volume", and each one is assigned a "drive letter". Each volume
is formatted independently from other volumes. During the boot process, the
BIOS reserves letters A and B for floppy drives, then assigns C to the
Active primary partition, and other letters to other primary partitions and
logical drives on all hard drives, in order according to the algorithm built
into the BIOS.
Only a primary partition can be marked Active and used to boot the computer.
Typically, this is the first physical partition on the first hard drive in
the computer. When the computer power is turned on, it's quite ignorant.
All it knows is what's hard-wired into it, including the code in the
read-only BIOS chip, as modified by settings we make in the semi-permanent
CMOS (what we usually mean when we say we are changing the BIOS settings).
About all the BIOS knows is to find the first hard disk and read the first
physical sector on it, which is the MBR - the Master Boot Record. The MBR
includes the partition table telling where each partition begins and ends,
how it's formatted, and which one is the Active (bootable) partition. The
computer finds the first physical sector on that Active partition, loads the
512 bytes of code from it into memory and executes that code.
The boot sector of the Active partition is the key to everything that comes
after that. If it is the older MS-DOS style boot sector, it tells the
computer to look in the Root of the System Partition for the files io.sys
and msdos.sys, load those files, and use them to start MS-DOS. Depending on
the contents of msdos.sys, it will either boot into MS-DOS, or use MS-DOS to
find the Win9x/ME "boot folder", wherever it may be, and load and start
running Win9x/ME. This is typically C:\Windows, but it can be in any volume
on any hard drive in the computer. Note that the process always starts in
C:, the "System Partition", and branches from there to the "boot volume",
where the boot folder is installed - which may or may not be right back to
C: again.
The NT-style boot sector does not look for io.sys and msdos.sys; it looks in
the Root of the System Partition for the NT-type "system files", NTLDR,
NTDETECT.COM and Boot.ini. C:\NTLDR uses C:\Boot.ini to choose which
operating system to start and to locate the chosen one. If WinXP Setup
detects Win9x/ME during installation of WinXP, it first saves the
MS-DOS-style boot sector into a new file, C:\bootsect.dos. Then it writes
the NT boot sector and system files. It adds a final line to C:\boot.ini
reading something like: C:\="Microsoft Windows ME". Then it installs WinXP
into WinXP's boot folder (\Windows, by default) on WinXP's boot volume,
which, again, can be just about any volume on any HD in your computer.
Thereafter, each time you reboot, C:\NTLDR uses C:\Boot.ini to present the
OS menu. If you choose WinME, NTLDR loads the MS-DOS boot sector from
C:\bootsect.dos, turns control over to it, and WinXP "retires from the
field". From then on, it's as though WinXP did not exist on your computer,
except for all the space used by its files. Bootsect.dos loads io.sys and
msdos.sys and WinME starts as usual.
If you choose WinXP to boot, NTLDR looks where Boot.ini points, loads WinXP
and starts it running. From then on, it's as though WinME did not exist on
your computer, except for the space it uses. The system used to locate
WinXP in boot.ini is by HD number (referred to usually as rdisk(#)) and
volume number (referred to as partition(#)). It's important to remember
that HDs are numbered starting with zero, partitions are numbered starting
with one on each HD, and that "partition" actually means "volume", because
logical drives are included in the count.
With all that out of the way, let's take a look at your situation.
> I have two hard drives, a Seagate 40 (C:) and a WD 20 (D:).
No. You have Drive 0, the 40-gig, and Drive 1, the 20-gig.
> I partitioned the 40 to 31 (partition 1) and 9 (partition 2).
Now you have Drive C:, the first primary partition on Drive 0. This is the
Active (bootable) partition on the first physical drive, so it becomes the
System Partition for your computer. Drive C: is 31 GB.
The other drive letters depend on several things - and they may be different
in the BIOS, in MS-DOS, in WinME and in WinXP! :>(
If you decide to format any volume using NTFS, then WinME will not be able
to read, write, boot from or even SEE that volume! Since the boot process
must always start with the System Partition, C: MUST be formatted FATxx if
you plan to install WinME anywhere on this computer. Whichever volume you
plan to install WinME into must also be formatted FAT. And any volume
holding files that you plan to access from WinME must also be formatted FAT.
Because of this limitation, dual-boot systems that include Win9x/ME often
use FAT for all volumes. If NTFS is used for some volumes, WinME won't be
able to even see those volumes, and this is one reason that drive letters
may be different when booted into WinME than when booted into WinXP.
What kind of partition (primary partition or logical drive) is the 9 GB on
Drive 0? And what kind of partition did you create on Drive 1? Assuming
they are both primary partitions, then the BIOS would assign D: to the first
primary partition on HD1, then go back and assign E: to the second primary
partition on HD0. MS-DOS would agree with that assignment, and so would
Win98. But WinME would first assign letters to all primary partitions on
HD0 before looking at HD1, so your 9 GB partition on HD0 would be D: and the
20 GB partition on HD1 would be E:. WinXP would agree with WinME. Now that
I've said all that so positively, let me back up and admit that I'm not sure
it is correct. My point is that "drive letters" are not permanent; they are
assigned from scratch anew each time the computer is booted, depending on
the operating system and on the hardware configuration at that boot time.
The hardware configuration may include CD/DVD drives, removable "drives"
(such as USB "thumb" drives, cameras and scanners), and network drives, all
of which may be assigned letters, depending on what is plugged in at boot
time. But if we use Device Manager (in WinME) or Disk Management (in WinXP)
to specifically assign drive letters (except for the System Partition and
Boot Volume), the Windows will attempt to assign those same letters to the
same drives each time it reboots.
All that is far too complex for this discussion. Let's just assume that all
your volumes are formatted FAT32 and that the letters assigned are:
C: - 31 GB - rdisk(0)partition(1) - WinXP is installed in C:\Windows
D: - 9 GB - rdisk(0)partition(2) - WinME is installed in D:\Windows
E: - 20 GB - rdisk(1)partition(1) - for applications and data; no OS here
> I set up Me first on partition 2. At that point it would boot into Me
> without problem.
Fine. WinME's boot volume would be D:\Windows.
> I then installed XP on partition 1.
OK. WinXP's boot volume would be C:\Windows.
> I then had to modify boot.ini to list the send version (Me). The
> operating systems listing looks like this
> multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft
> Windows XP Home Edition"
> multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft
> Windows Millennium Edition"
Wrong! First, you should not have had to modify C:\boot.ini at all. WinXP
Setup should have configured it properly. And second, the line to load
Win9x/ME should not look at all like the one to load Win2K/XP, etc. As I
showed above, it should read:
C:\="Microsoft Windows Millennium Edition"
It should always point to C:\, because that's where C:\bootsect.dos is. The
actual location of WinME will be stored in C:\msdos.sys. The label between
the quotes is ignored by the computer. It is only for the benefit of us
humans so we recognize it when we see it in the menu. If you like, it can
simply say "ME" or whatever you choose.
The line for WinXP looks correct IF WinXP is installed on C:, the first
partition on the first HD, which you say it is. This line might end with
some optional switches, such as /fastdetect or /NoExecute=OptIn, but those
are not always required.
> When I boot I have the list of choices for both of those.
Right, because the menu from C:\boot.ini is just printed onscreen. Even
though the WinME line is not correct, the menu will still show the label
within the quotes.
> It will boot without problem into XP
Right, because the WinXP line is properly formatted and points to
C:\Windows, although the "C:" doesn't appear in boot.ini.
> but when I select the Me it will not boot but comes up with the "hal.dll"
> error.
No, because that improper WinME line thoroughly confuses NTLDR. It ignores
the label between the quotes and tries to find some version of WinNT/2K/XP
in the second partition on the first HD - and doesn't find anything it
recognizes there, so it throws up its hands, picks an error message from
somewhere, and says, in effect, "I don't now how to do what you are telling
me to do."
> I have followed Microsoft's Knowledge Base suggestions and booted from the
> XP CD and used 'bootcfg'. Scan and list does not find the Me
> installation. The only way I have found to get the entry into the
> boot.ini is to enter it manually.
I'm not sure of the exact workings of bootcfg.exe, but I suspect that it
does not recognize your WinME, perhaps because bootsect.dos, io.sys and
msdos.sys are not in C:\.
If my assumptions stated much earlier are correct, then your C:\boot.ini
should read like this (the timeout value is the 5 seconds I use; you can
change this to suit yourself):
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Home
Edition"
C:\="Microsoft Windows Millennium Edition"
Well, I warned you this would be the long version, Peter. To read more
about boot.ini, see the online version of the WinXP Pro Resource Kit:
http://www.microsoft.com/resources/documentation/Windows/XP/all/reskit/en-us/Default.asp?url=/resources/documentation/Windows/XP/all/reskit/en-us/prork_overview.asp
Sometimes the URL does not take you directly to the page I have in mind, but
you can drill down to Part VI, System Troubleshooting, then to Chapter 28,
Troubleshooting Startup / Following a Process for Startup and Recovery, then
Reviewing and Correcting Boot.ini Settings on x86-based Systems
If you get lost, explore. You'll find TONS of good information about disk
and file systems in that book. I've found it well worth my money to buy the
RK and my time to read much of it. A few hours invested in reading and
understanding these chapters will pay dividends, not just for this week, but
for as long as I continue to use computers, which will probably be for the
rest of my life.
At this stage, your best bet would probably be to first boot from the WinME
CD-ROM and reinstall WinME from scratch on D:. Then boot from the WinXP
CD-ROM and reinstall WinXP as a clean install on C:, letting it recreate
C:\boot.ini from scratch.
Post back if you have further problems or questions.
RC
-- R. C. White, CPA San Marcos, TX rc@corridor.net Microsoft Windows MVP PS: It is NOT necessary to email me in addition to posting here in the newsgroup. "Peter Will" <pmwill@ptd.net> wrote in message news:llqdnbIWY46MpUbcUSdV9g@ptd.net... > Thanks for the reply. I followed a lot of disjointed info on the > Microsoft help site and did the following. I have two hard drives, a > Seagate 40 (C:) and a WD 20 (D:). I partitioned the 40 to 31 (partition > 1) and 9 (partition 2). Microsoft was imperative about the order for > loading so I set up Me first on partition 2. At that point it would boot > into Me without problem. I then installed XP on partition 1. I then had > to modify boot.ini to list the send version (Me). The operating systems > listing looks like this > multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft > Windows XP Home Edition" > multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft > Windows Millennium Edition" > When I boot I have the list of choices for both of those. It will boot > without problem into XP but when I select the Me it will not boot but > comes up with the "hal.dll" error. I have followed Microsoft's Knowledge > Base suggestions and booted from the XP CD and used 'bootcfg'. Scan and > list does not find the Me installation. The only way I have found to get > the entry into the boot.ini is to enter it manually. That kind of states > the problem. > "R. C. White" <rc@corridor.net> wrote in message > news:%23dmRUUr8EHA.2676@TK2MSFTNGP12.phx.gbl... >> Hi, Peter. >> >> This newsgroup is fine. The question comes up often here, and a scan of >> prior messages might have saved you the effort of asking it again. >> >> In brief, the answer is that the process can be complicated if you've >> already installed WinXP and want to add WinME, especially if your Drive >> C: is formatted NTFS. But, if you want to add WinXP to an existing >> WinME, and if you have at least one additional partition (on any HD in >> your computer) to install WinXP into, then the process is very easy: >> Just boot from the WinXP CD-ROM and follow the prompts to install it into >> that other partition. WinXP Setup will automatically create the dual-boot >> system. >> >> If you need more details, please post back, giving more details, >> especially which OS is already installed, how many HDs you have and how >> they are partitioned and formatted. It might be important to know a few >> more details, such as make and model of computer (or mobo/chipset if you >> built it yourself), and whether your HDs are other than the generic >> IDE/ATA type. We won't know what else to ask you until we know some of >> these things. >> >> RC >> >> "Peter Will" <pmwill@ptdprolog.net> wrote in message >> news:Riydnb2VhdxDhUbcUSdV9g@ptd.net... >>> What would be the best forum to post a message for help about setting a >>> computer up with dual boot of XP and Me?
- Next message: WTC: "Re: Firewalls"
- Previous message: Bob I: "Re: Crash + Crash Again"
- In reply to: Peter Will: "Re: Dual booting"
- Next in thread: Peter Will: "Re: Dual booting"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|
|