I have a desktop PC (2002 vintage) running Windows XP that I turn on about two or three times per week. I have a mains powered 250 GB Western Digital hard disk connected to it via USB. I always turn the hard disk on before the PC, so it's up and running as the PC boots.

When I first connected the external hard disk, the PC assigned it a letter ('I' if it matters), and I've installed software to it, created shortcuts to various files and folders on the disk using that letter. For years everything was fine then I would boot the PC and the hard disk was assigned a different letter. I'd then have to go into 'My Computer/Manage/Disk Management' and manually change the letter back to 'I'.

If I then rebooted the PC, the hard disk would usually still be 'I', but after the next reboot would be some other random letter, and I have to manually change it back to 'I'. This would go on for some time, there'd be periods when it would always be 'I', and then for no apparent reason (no new devices added, for example), the drive letter would start changing again. At the moment it's in a random-drive-letter mood, so I thought I'd ask the following question...

How do I assign the external hard disk to be 'I' permanently?


Thanks Molly. That seems to have done the trick (after a little fiddling) - I am slightly disappointed there wasn't a way to do it within Windows without installing something else though. For anyone else trying this, it wasn't completely straightforward, so here's what happened with me.

I installed USBDLM as per the instructions on its website. I guessed that I had to assign the first USB letter to I, so I replaced the 'Letter1=' lines to 'Letter=I' in the .ini file. To test it, I rebooted the PC only to find it came back up with the display set to 640x480 in 16 colours. After some investigation, I re-installed the display drivers and rebooted and set the display back to its usual setting. The external hard disk now gets set to 'I', but I found I had to re-apply sharing status to it so it was seen from my laptop which is on the same network.

The end result of all this is that it now does what I wanted although it does act as though the hard drive has just been plugged in a few seconds after the Windows desktop appears, that is, the little box appears with a progress bar as it searches through the contents of the 'new' hard drive, and I eventually get a dialogue box saying 'This disk or device contains more than one type of content. What do you want Windows to do?' and lists options such as play media files, print the pictures or open folder to view the files. This is a tiny pain I wish didn't happen but not exactly a huge price to pay.

Other than that - it seems to work fine :)

Looks like a spoke too soon...

Every time I reboot, I have to re-share the 'I' drive (which I didn't have to do before), so it can be seen by my laptop on the same network. Any ideas how to make that permanent?

  • 1
    are you always connecting the external drive to the same USB port? – quack quixote Jan 21 '10 at 20:53
  • Yep - I never remove it. – andygrunt Jan 21 '10 at 21:14
  • Andy, don't know if you resolved the "I" drive share issue. If not, I'll post something up on how to share it. edit: Added it anyway. – opsin Jan 25 '12 at 16:43

USB Drive Letter Manager is your friend :)

USBDLM is a Windows service that gives control over Window's drive letter assignment for USB drives.

When a removable drive (USB flash drive, flash card reader, portable hard drive) is attached for the first time, Windows mounts it to the first available 'local' drive letter. If there is a network share on this letter, Windows XP will use it anyway for the new USB drive because since Windows XP network shares are specific to the current user and not visible in the context of the system where the letter is assigned. The USB drive then appears to be invisible. This is fixed by SP3 in most situations.

You can change the letter assignments in the Windows Disk Management Console with a lot of mouse clicks, but you have to do it again for every new device. And, for USB devices that have no serial number (in violation of the USB standards) you have to do it too when you attach it to a different USB port.

USBDLM can for newly attached USB drives

  • check if the letter is used by a network share of the currently logged on user and assign the next letter that is really available
  • reserve letters, so they are not used for local drives
  • assign a letter from a list of new default letters, also dependent on many different criteria as the active user, drive type, connection (USB, FireWire), USB port, volume label, size and others
  • assign letters for a specific USB drive by putting an INI file on the drive
  • remove the drive letters of card readers until a card is inserted
  • show a balloon tip with the assigned drive letter(s)
  • define autorun events depending on many different criteria

All functions are applied to USB drives at the moment they are being attached, when the USBDLM service starts up and when a user logs on.

USBDLM runs as a Win32 service under Windows 2000, XP, Server 2003, Vista, Windows 7 and Server 2008.

  • 1
    Yes, very cool. I need this for external backup USB drives. I want two external USB drives (rotated every month) to always have the same drive letter so the backup software knows where to backup to. – Clay Nichols Jan 22 '10 at 5:53

How to reshare the I: drive on reboot.

Create a batch file containing:

net share MYSHAREDFILES=i:

or if it is a specific folder on the I: drive:

net share sharename=drive:path

Now either "Create Basic Task..." in the Task Scheduler to run this batch file at boot (which may or may not work, depending on when the USBDLM service starts up, I'm guess it will start before the Task Scheduler).


Add that batch file to your (or the All Users) Startup folder, which will require you to login before it runs.

(I realize this question is a year old and hopefully you have resolved the "missing" share by now, but if not, this will do the trick)

  • Hi, thanks for your response. The computer I had the problem with has long since died so in that sense it’s resolved. Your answer may well still be useful for others having a similar problem though. – andygrunt Jan 26 '12 at 20:06

In my experience Windows XP keeps the same drive letter for the same disk after you've set it. The problem is that Windows XP considers the disk to be different for each USB port, which might make it seem like the drive "randomly" returns to the automatically assigned drive letter.

Ie, you have to manually set the drive letter for each USB port, and if you have a hub, each combination of USB host ports and hub ports. Once you have done that groundwork, the drive should retain its drive letter. (Until/unless you get a new hub.)

  • Download remount.exe
  • Create an autorun.inf file like this:


    open=ReMount.exe . P:

As alternative, download DriveLetterView and create a batch file with the following command:

DriveLetterView.exe /change local %~d0 p:

If autorun is disabled you will have to run the batch file manually (administrative rights are required).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.