Hard Drives, Partitions, and Drive Letters

Kelemvor

Lifer
May 23, 2002
16,928
8
81
OK, here's the deal.

I have 2 hard drives. Each one is split into 2 partitions. One hard drive is the master and the second is the slave. What I *want* is for Partition 1 of the master to be C, partition 2 of the master to be D, partition 1 of the slave to be E, partition 2 of the slave to be F.

However what happens is the Primary partition of the master is C (ok) but then the primary partition of the slave is D. Then the two secondaries get E and F. Is there a way to force certain partitions to get certain drive letters?

Help. :)
 

mithrandir2001

Diamond Member
May 1, 2001
6,545
1
0
If you have Win2K (or presumably XP), you can manage your disks in Computer Management. Right click My Computer, select Manage and choose the Disk Management folder under Storage.
 

PowerEngineer

Diamond Member
Oct 22, 2001
3,607
787
136
The answer may depend on what operating system you are using...

If you are using Windows 95/98/ME, I believe you're stuck with a drive/partition lettering scheme that is applied early in the boot-up process. I spent quite a bit of time looking into this a few years ago, but find I no longer have any of the links where this is described. What follows is my best recollection:

Each physical drive can be partitioned into as many as four "primary" partitions. One "primary" partition may be converted into a "virtual" area which can be partitioned into many "virtual" partitions. When Windows 95/98/ME begins to boot up, there's a (DOS?) goodie that establishes the connection between these disk paritions and the OS and assigns them each a letter designation. The first letters go to the first "physical" partition on each drive that it finds (based I believe on the IDE channel order and master/slave settings...don't remember the specifics). Next come the "virtual" partitions on each drive. Again the order of assignment is based on the IDE channel order and master/slave settings, but this time all "virtual" partitions on a disk get letters before it moves on to the next disk. Finally, it goes through the disks again assigning letters to the remaining "primary" partitions on the disks.

I remember someone suggesting (in response to a similar question) that you might be able to turn the entire slave disk into "virtual" space. Then, if the second partition on your primary drive is also "virtual", then you should end up with the drive assignments you're looking for. One word of caution: if you're configuring for a dual boot system, make sure that at least one of your OS choices will boot from a virtual partition; not all will.

I understand that W2K and XP allow you to reassign drive letters, but I haven't dug into those yet.

You might also want to look for the FAQ about disk partitioning that was posted on this site quite a while back (hope it's still here). I think it cast some strong doubts on the rationale for disk paritioning in most cases. I partitioned my own drives into a dozen partitions, and now wish I hadn't.

Good luck!
 

Kelemvor

Lifer
May 23, 2002
16,928
8
81
Oops, I forgot to put that I'm using Win98. I guess that would have helped. I tend to agree with you from other people I've talked to that I'ms tuck unless I want to change the entire second drive to an extended partition which I can't do yet because it's my old boot drive and I sometimes still need to boot from it.

Ah well.

THanks.
 

corkyg

Elite Member | Peripherals
Super Moderator
Mar 4, 2000
27,370
240
106
Yes, it is possible in some cases - even in Win98. Check here:

Drive Letters

Note that this only applies to some types of drives - normally not HDDs.
 

KF

Golden Member
Dec 3, 1999
1,371
0
0
Originally posted by: FrankyJunior
OK, here's the deal.

I have 2 hard drives. Each one is split into 2 partitions. One hard drive is the master and the second is the slave. What I *want* is for Partition 1 of the master to be C, partition 2 of the master to be D, partition 1 of the slave to be E, partition 2 of the slave to be F.

However what happens is the Primary partition of the master is C (ok) but then the primary partition of the slave is D. Then the two secondaries get E and F. Is there a way to force certain partitions to get certain drive letters?

Help. :)

I'm surprised to find that everybody is wrong. But the correct answer is so odd it may not matter.

Although windows automatically assigns drive letters, you can reassign letters by putting DOS commands in the AUTOEXEC.BAT file which is executed on start up. I used to do it for a while with Windows 95.

This all gets very confusing because you are refering to the partitions by letters in two different ways while you are changing the letters.For clarity call the drives d1 and d2, the primary partition on each "p", and the extended logical partition on each e1.
DOS does this.
d1-p = C:
d2-p = D: (E: wanted)
d1-e1 = E: (D: wanted, important)
d2-e1 = F: (F: wanted)

subst d: e:\
will substitute the directory e: when the drive letter d: is specified.

So now d1-e1 = D: , which is the key thing that can straighten out your installed Windows programs.


How do you access the drive that was previously D:?
Windows redoes the the drives as it takes over, leaving the substitutions as specified, and assigns the former "D:" another letter, probably G:

In DOS, you could have continued if you have a lot of partitions,
subst d: e:\
subst e: f:\
subst f: g:\
subst g: f:\

The only restriction is that you can't use a letter that has _previously_ been used as the first parameter for the second. So you can't do

subst d: e:\
subst e: d:\



Unfortunately Windows botches what DOS got right when a second parmeter duplicates a first parameter. For instance, both D: and E: refered to actually F: in Windows when I did
subst d: e:\
subst e: f:\

Other DOS commands:

subst e: /d will undo a substitution.

subst will list all the substitutions

pause will stop the AUTOEXEC.BAT so you can see what happen.


So put this in the AUTOEXEC.BAT file and see if you like the result:

subst d: e:\
subst
pause

You should get
d1-p = C:
d2-p = G: (E: wanted)
d1-e1 = D: (D: wanted, this is usually the important thing)
d1-e1 = E: ( yep both )
d2-e1 = F: (F: wanted)

The end result is not all that confusing, so it should be all right temporarily. I just checked this on my system and it worked, but I did not do any elaborate testing. I would not defragment the HD while it's like this for instance, or do FDISK or Format.






 

PowerEngineer

Diamond Member
Oct 22, 2001
3,607
787
136
I'm surprised to find that everybody is wrong.

Well, I'm not really surprised. ;)

My main gripe with the default lettering is that failure of any hard drive messes up the lettering for all partitions, making the installed applications, etc. appear in the wrong places. This trick can fix that if (when) a drive fails. Thanks!
 

KF

Golden Member
Dec 3, 1999
1,371
0
0
Originally posted by: PowerEngineerMy main gripe with the default lettering is ...

I have so many gripes with MS on this score...

There was no reason for MS to adopt this scheme. ALL partitions that are valid in DOS/Windows and are on a particular drive should be in sequential order. ALL the partitions on the first drive should be before all the partitions on the second. That is the ONLY scheme that makes sense.

As a background, HDs used to be tremendously expensive, not $100. In the era of first IBM PC, you could buy a Volkswagen, or a 15 Megabyte (not Giga) HD, take your pick. It was considered astounding that the price of HDs had dropped that low. 15 Megabytes was so unimaginably huge that no individual or small business could conceivable make use of the whole thing. Therefore, putting two OS's on a HD was an intriguing way to utilize your investment.

To go into a little history, as far as I know it, the "four primary partitions" standard goes way, way back, and MS just followed it. That meant that DOS could be put on the same HD as, say, UNIX. Each primary partition has a number in the table indicating which OS it is. DOS has its own number, various UNIXes have their own number, etc. The idea was that each OS would be isolated and distinct from one another. At a certain point, the common HDs outgrew the first DOS file system size limit. MS came up with the idea of using another of the primary partitions and designating it with a new OS number. That is what we now call an extended partition. MS also created a scheme to subdivide (partition) the extended partition, a completely different scheme that can have any number of partitions. We call these subdivisions "logical" partitions. Each partition would be treated like a new HD, so now the old file system would work just fine provided we partitioned the whole HD down small enough. Eventually HDs became so large that the number of partitions got out of hand, and MS created a new file system that is semi-compatible with the earlier system, but the size of the partitions can be tremendously larger. At no point was it ever necessary for MS to jumble up the DOS partitions on one HD with those on another. And even if there were some reason, they should have put it right long ago.

The "four primary partitions" standard has something designating which partition is "active". The idea is that you can then have an automatic system for booting an OS. Each partition has a designated area for a short boot program that can ultimately load the whole OS. In fact the BIOS in each IBM PC compatible does this; it normally reads the boot program on the "active" partition into memory and proceeds to execute it. You are only supposed to have one partition active on only one drive, but the BIOS boots the first one it finds, so it doesn't hurt anything if two drives have active partitions.

Linux users are familiar with the idea that you can put a program on a boot floppy which then boots a HD partition, the Linux partition let's say, which might not be marked active. Of course you can! There are also various ways a "boot manager" program can be put on a HD, which the BIOS boots as if it were an OS, after which this boot manager can do just about anything, but it generally will boot different partitions, including logical partitions within the extended partition.

Back to gripes. So Windows/DOS has this arcane system of treating partitions as if they were HDs which MS is perversely committed to. To straighten this out, they could have done what had already been done by others long before MS bought Seattle PC-DOS from the remarkable man that cloned CP/M, and began the gradual transformation into the convoluted absurdity we know, or remember, as DOS, and which became exponentially more grotesque as it metastasized into Windows. They could have "handles" which are translate into drives; a name which can be assigned to any drive. Within the Windows API, all file access would be done with the handle (instead of a drive letter) as the starting point. Then if the drive letters are scrambled, the handles would be reassigned so that they designated the right drive. Simple. Easy. Simple and easy are concepts which not only have no appeal to Billion Gates, but for which he is cognitively disabled. He can't recognize it when he sees it. The price of genius I guess.

But we now have NT being merged into the consumer-oriented Windows XP. XP/NT fixes everything. NT was once sidetracked into a professional/commercial OS a few years after Windows 95 hit the stores, because it was unrealistic to require home users to buy the expensive chunk of memory that NT would need to run, 16 Megabytes. Remarkable strides have been made since, and NT has been slimmed down so it will now run comfortably in 256 Megabytes. IAC, I decided to add a boot for XP to my system, in addition to my working boot of Win98se, just to check out XP. I went along blithely with the recommendation that NTFS was the true file system that XP should properly be run on, and allowed the XP partition to be formatted as NTFS. At last I would see what the all-poweful, all-knowing NTFS would do. But Win98 does not think NTFS is valid, so many drive letters were lowered, and 90% of my programs would need be redone if they were to work.

I wonder what it is about NTFS that makes it so impossible to run on Win98se? I have been given to understand that 98 has "installable file systems" (IFS) built in, and that CDs and network drives are made to work by this method.

Actually all Win98se would have to do is advance one letter when it saw an NTFS without assigning a letter to it. Simple. Easy. Not Gatesean.

Getting back to letters; if anyone remembers compressed drives, they could be reassigned back to their original drive letter so that even drive C:, the boot drive, was switched back to letter C after it was compressed. So Win98se evidently has this capability of reassigning drive letters built in somewhere. Why is MS keeping the secret from us? Do they hate us that much?

To sum up, MS could readily and simply solve our drive letter problems. They didn't have to cause the problem in the first place. But they don't give a s**t.

 

AnMig

Golden Member
Nov 7, 2000
1,760
3
81
I am in the same boat as the poster two hard drives, for some reason my xp install was assigned e:.
Will it mess up the operating system if re-assign it to letter d: (disk management)?

will the registries be fubared if you re-assign a operating drive letter assignment?


just want every partition to have the same letter assignment in dos, to avoid confusion when I am using ghost.

Thanks