• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 377
  • Last Modified:

Controlling drive letters of hard disk partitions

Earlier this year there was a question on "changing drive
letters". The following fact was stated by 'bartsmit' on
March 17 1999 - 01:32AM PST: "The drive letters are assigned
by the BIOS. Primary partitions on hard drives are always
first in line and get C: D: etc. Extended partitions are
next and then other drives."

In my PC I have a single disk with two partitions. They
appear as C: and D: in Windows. The other day I wanted to
add another disk, without affecting the environment that is
already there. In other words, I hoped for the new disk to
appear as E:.

However, just as the expert has stated, my drive letters
became

    C: old disk
    D: new disk (configured as "slave")
    E: extended partition of old disk

This is quite awkward to me, and even more so to my wife
and children. Is there any way that I could force the new
disk to become E:?
0
eubrafo
Asked:
eubrafo
  • 7
  • 7
  • 4
  • +1
1 Solution
 
dew_associatesCommented:
Eubrafo, technically no, but you may want to try something that has worked in some cases.

Repartition that new drive as an extended partition rather than a primary partition. That should force it to follow your existing drive letter sequence.

Dennis
0
 
EdenCommented:
The only way is to repartition your new drive as an extended partition. You may use FDISK to do so.

1- Clear all partition
2- Create an extended partition
3- Then you have to create a logical drive on the extended partition
4- exit & reboot !

Good Luck
0
 
smeebudCommented:
Hi eubrafo,
 Dennis, I'm pretty sure it was you that gave me this infomation.

Designate Your Own Drive Letters

  There are two ways that disk drives get drive letters on a PC. The first kind are the ones
  controlled by your BIOS. These usually include your floppy and most hard drives, for
  which drive letters are created when your system is first turned on. The second kind of
  drives are controlled by software, or more specifically, drivers. These types of drives
  include CD-ROMs and other removables, network drives, and sometimes SCSI hard
  disks with ID's other than zero (0) or one (1). Generally, drive letters are assigned to
  these drives depending on the order in which they are loaded.

  In WindowsNT and OS/2, you can choose drive letters for any drive, but Windows 98
  only allows this configuration for those drives controlled by drivers (the second type). By
  editing the Registry directly you should be able to change the drive letter assignments for
  any type of drive.
  Note: It is extremely important that you back up your Registry before continuing.
  Here's how it's done:

  Method 1:

  Double-click on the System icon in Control Panel, and click on the Device Manager tab.
  Find the device (CD-ROM drive, or otherwise) that you wish to configure from the list, and
  select it.

  Click Properties, and then click the Settings tab. In the section entitled Reserved drive
  letters, choose the same letter for both the Start drive letter and End drive letter.

  If the Removable option is not checked, and the reserved drive letters listboxes are
  disabled, check it now. If initially unchecked, make sure to uncheck it again when you're
  done with this procedure.

  You'll have to restart your computer for this change to take effect.

  Method 2 (use with caution, and only if Method 1 doesn't work):

  Run the Registry Editor (REGEDIT.EXE).

  Open one of the following branches, depending on the type of device you wish to
  configure (your system may vary):

  For all SCSI devices, and most non-SCSI CD-ROM drives, open
  HKEY_LOCAL_MACHINE\ Enum\ SCSI.

  For IDE hard disks, open HKEY_LOCAL_MACHINE\ Enum\ ESDI.

  For standard floppy drives, open HKEY_LOCAL_MACHINE\ Enum\ FLOP.

  Expand the branch of the SCSI device you wish to configure, and click on the key under
  that device (if you have two of the same device, there will be two keys here).

  Double-click on the string value called UserDriveLetterAssignment (create it if it's not
  there by selecting New and then String Value from the Edit menu). In the box that
  appears, type the desired drive letter once, in all caps (example: type NN to configure
  this drive to use N:).

  Next, double-click on the string value called CurrentDriveLetterAssignment. In the box
  that appears, type the desired drive letter once, in all caps - if this device is partitioned
  into more than one logical drive, include all drive letters (example: type CEFG to
  configure this drive to use C:, E:, F:, and G:).

  Close the registry editor when finished, and restart your computer immediately for this
  change to take effect.

  Important: neither of these methods will work if the drivers for the device are loaded in
  CONFIG.SYS or AUTOEXEC.BAT, since Windows 98 will not have control over these
  devices.

  If the devices are supported in Windows 98, you should remove the old drivers from these
  files.

Regards,
Bud Allen
http://www.geocities.com/~budallen/
Bud's Win95 Win98 Tips and Troubleshooter
0
Hire Technology Freelancers with Gigs

Work with freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely, and get projects done right.

 
smeebudCommented:
Eden,
What's up. You took Dennis's comment and made it an answer.

That's very unprofessional.

Designate Your Own Drive Letters

There are two ways that disk drives get drive letters on a PC. The first kind are the ones controlled by your BIOS. These usually include your floppy and most hard drives, for which drive letters are created when your system is first turned on. The second kind of drives are controlled by software, or more specifically, drivers. These types of drives include CD-ROMs and other removables, network drives, and sometimes SCSI hard disks with ID's other than zero (0) or one (1). Generally, drive letters are assigned to these drives depending on the order in which they are loaded.

In WindowsNT and OS/2, you can choose drive letters for any drive, but Windows 98 only allows this configuration for those drives controlled by drivers (the second type). By editing the Registry directly you should be able to change the drive letter assignments for any type of drive. Note: It is extremely important that you back up your Registry before continuing. Here's how it's done:

Method 1:

Double-click on the System icon in Control Panel, and click on the Device Manager tab. Find the device (CD-ROM drive, or otherwise) that you wish to configure from the list, and select it.

Click Properties, and then click the Settings tab. In the section entitled Reserved drive letters, choose the same letter for both the Start drive letter and End drive letter.

If the Removable option is not checked, and the reserved drive letters listboxes are disabled, check it now. If initially unchecked, make sure to uncheck it again when you're done with this procedure.

You'll have to restart your computer for this change to take effect.

Method 2 (use with caution, and only if Method 1 doesn't work):

Run the Registry Editor (REGEDIT.EXE).

Open one of the following branches, depending on the type of device you wish to configure (your system may vary):

For all SCSI devices, and most non-SCSI CD-ROM drives, open HKEY_LOCAL_MACHINE\ Enum\ SCSI.

For IDE hard disks, open HKEY_LOCAL_MACHINE\ Enum\ ESDI.

For standard floppy drives, open HKEY_LOCAL_MACHINE\ Enum\ FLOP.

Expand the branch of the SCSI device you wish to configure, and click on the key under that device (if you have two of the same device, there will be two keys here).

Double-click on the string value called UserDriveLetterAssignment (create it if it's not there by selecting New and then String Value from the Edit menu). In the box that appears, type the desired drive letter once, in all caps (example: type NN to configure this drive to use N:).

Next, double-click on the string value called CurrentDriveLetterAssignment. In the box that appears, type the desired drive letter once, in all caps - if this device is partitioned into more than one logical drive, include all drive letters (example: type CEFG to configure this drive to use C:, E:, F:, and G:).

Close the registry editor when finished, and restart your computer immediately for this change to take effect.

Important: neither of these methods will work if the drivers for the device are loaded in CONFIG.SYS or AUTOEXEC.BAT, since Windows 98 will not have control over these devices.

If the devices are supported in Windows 98, you should remove the old drivers from these files.

Regards,
Bud Allen
http://www.geocities.com/~budallen/
Bud's Win95 Win98 Tips and Troubleshooter
0
 
dew_associatesCommented:
Eden, I really do not appreciate your taking my comment and posting it as your answer. I suggest that if you wish to remain at this site that you not do this again in the future.

Bud, indeed I did give you that info, however what I posted as a comment will work as well without all of the gyrations.

Eubrafo, I would really appreciate your rejecting Eden's proposed answer. We frown on this type of behavior at this site.
0
 
eubrafoAuthor Commented:
Hi Eden, Dennis, smeebud,

I plan to try Method 2 since I could not un-grey the drive
letter field in Method 1.

However, before getting on to it, what is the meaning of
UserDriveLetterAssignment value (currently at least, after
having uninstalled the slave disk, I don't have that value
at all)?

Is it correct that if my old disk has two partitions I
should create UserDriveLetterAssignment and set it to "CD",
and set CurrentDriveLetterAssignment to "CD" likewise?

And, what about the new disk, do I have to edit registry
values for it as well (setting both values to "E"
presumably)?

Please see my initial problem statement if you need to know
what my particular setup looks like, and what I want to
achieve.
0
 
dew_associatesCommented:
Okay, as I indicated in my initial post, you can set your PC up as you desire by attaching the slave and partitioning it.

Try it this way for clarity:

1. Install the slave.

2. Boot to the Win98 Startup Floppy.

3. At the command pompt, type Fdisk<enter>.

4. Now change to the slave drive and remove all of the partitions. Make sure that you choose the slave and not your "C" drive.

5. Now add an extended dos partition (not a primary partition) for the full size of the drive.

6. Now format this new partition after rebooting. Make sure that you format the correct drive by trying to run a directory on it. If you can't run a DIR command for that drive, that it is unformatted and needs to be formatted.

Now reboot into Windows 98, and it should be drive "E".
Dennis
0
 
smeebudCommented:
eubrafo,
You have to create UserDriveLetterAssignment
in your registry if you don't have it.

Go to HKEY_LOCAL_MACHINE\Enum\ESDI
to do that.

Regards,
Bud Allen
http://www.geocities.com/~budallen/
Bud's Win95 Win98 Tips and Troubleshooter
0
 
smeebudCommented:
Here's an example,
Just note the CC
you don't need all the other values.

[HKEY_LOCAL_MACHINE\Enum\ESDI\GENERIC_IDE__DISK_TYPE47_\MF&CHILD0000&PCI&VEN_8086&DEV_7111&SUBSYS_00000000&REV_01&BUS_00&DEV_07&FUNC_0100]
"Capabilities"=hex:14,00,00,00
"RevisionLevel"="    "
"ProductId"="IDE  DISK TYPE47"
"Manufacturer"="GENERIC "
"DeviceType"=hex:00
"Int13"=hex:01
"CurrentDriveLetterAssignment"="C"
"IDEMaster"=hex:01
"DMACurrentlyUsed"=hex:00
"Class"="DiskDrive"
"ClassGUID"="{4d36e967-e325-11ce-bfc1-08002be10318}"
"Driver"="DiskDrive\\0000"
"Mfg"="(Standard disk drives)"
"ConfigFlags"=hex:00,00,00,00
"Removable"=hex:00
"UserDriveLetterAssignment"="CC"
"HardwareID"="GENERIC_IDE__DISK_TYPE47_,GenDisk,ESDI\\GENERIC_IDE__DISK_TYPE47_"
"DeviceDesc"="GENERIC IDE  DISK TYPE47"

Regards,
Bud Allen
http://www.geocities.com/~budallen/
Bud's Win95 Win98 Tips and Troubleshooter
0
 
eubrafoAuthor Commented:
Sorry smeebud, I still don't get the meaning of the
UserDriveLetterAssignment value. Is it always a length-2
string? Always two identical uppercase letters? The letter
is the lowest letter of the set of drive letters that the
user will see (i. e., the letters defined by the
CurrentDriveLetterAssignment value)?

Or, put it like this: Given the UserDriveLetterAssignment
and CurrentDriveLetterAssignment strings, and knowing the
number of partitions on the disk, how does the operating
system assign drive letters to the disk?

I will add another 100 points since I myself have some
trouble with the concepts at work here :-)
0
 
dew_associatesCommented:
Bud, sorry but I'll leave this one to you. I'm not about to post an easy solution as well as follow on advice and suggestion and be ignored by this person. I simply don't have time for it.
0
 
eubrafoAuthor Commented:
Hi Eden, hi Dennis, hi Bud,

I am sorry if someone feels like being ignored. I am simply
having a bit of a problem keeping up with all the good
advice that pours in.

I should have explained yesterday that I found the
registry-tweaking solution the most interesting one since it
would allow me to read the existing contents of the "new"
disk (it is a disk recovered from a discarded PC
actually). But, it was late evening over here (Sweden) and I
just typed in the couple of questions that came to my mind
(how does the OS interpret the registry data when assigning
drive letters).

Once again, the Experts Exchange is a tremendous resource
and I am sorry if I have hurt anyone's feelings.
0
 
smeebudCommented:
Wow, I know you know Dennis that i'd never step on your toes.
eubrafo.
please do this. follow Dennis's post that I'll re-post here now.

If you don't like that one, remember that Dennis gave me that tip.
So do this 1st,
_______________________
Try it this way for clarity:

1. Install the slave.

2. Boot to the Win98 Startup Floppy.

3. At the command pompt, type Fdisk<enter>.

4. Now change to the slave drive and remove all of the partitions. Make sure that you choose the slave and not your "C" drive.

5. Now add an extended dos partition (not a primary partition) for the full size of the drive.

6. Now format this new partition after rebooting. Make sure that you format the correct drive by trying to run a directory on it. If you can't run a DIR command for that
drive, that it is unformatted and needs to be formatted.

Now reboot into Windows 98, and it should be drive "E".
Dennis
_____________________________
Regards,
Bud Allen
http://www.geocities.com/~budallen/
Bud's Win95 Win98 Tips and Troubleshooter
0
 
smeebudCommented:
BTW eubrafo,
That is the proper method for getting you drive letter lined up.

The other suggestion of mine is a work around for when that failes.

The right way is *always better thab a work around*.

Regards,
Bud Allen
http://www.geocities.com/~budallen/
Bud's Win95 Win98 Tips and Troubleshooter
0
 
dew_associatesCommented:
Don't worry Bud, you never step on my toes. It just seeems as though this person wants to start with the most difficult way first, which is quite okay for me.
0
 
eubrafoAuthor Commented:
Hi all,

I have now backed up what I needed from the "new" disk, and
done the repartitioning and reformatting as suggested by
Dennis. The scheme worked nicely. As soon as this comment
has been appended to the thread I will award the points.
0
 
dew_associatesCommented:
Thank you Eubrafo, I'm glad you are where you want to be.

Bud, your points share is up!
Den
0
 
smeebudCommented:
My points Share?
I don't understand.

Regards,
Bud Allen
http://www.geocities.com/~budallen/
Bud's Win95 Win98 Tips and Troubleshooter
0
 
dew_associatesCommented:
Check the new questions posted Bud!
0

Featured Post

Learn to develop an Android App

Want to increase your earning potential in 2018? Pad your resume with app building experience. Learn how with this hands-on course.

  • 7
  • 7
  • 4
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now