How do I make an external hard drive keep the same drive letter permanently?

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.