One of the many holdovers from the days of DOS in Windows 2000 is drive lettering. Windows 2000 generally handles drive lettering automatically and seamlessly, but there may arise a situation where you need to change the drive letter of the boot drive to something other than its default setting.
Because there are many dependencies throughout the system on the boot drive letter, this is not a trivial operation and it can render your system unbootable if you are not careful. For that reason, before you perform this kind of surgery, you should make a full system and System State backup in case something does go wrong. Also, have a utility that can perform mass search-and-replace operations in the Registry, such as
- Log in as Administrator and run REGEDT32.
- Open the key HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices.
- Select Permissions from the Security menu and make a note of the existing settings, as you will
be changing them back when you are done.
- Make sure Administrators have Full Control over the selected key and click OK.
- Close REGEDT32 and open REGEDIT (not REGEDT32!)
- Go back to HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices and find the drive whose letter you
want to change. If you want to change C:, look for "\DosDevices\C:".
- Select the key in question and rename it to an unused drive letter, such as "\DosDevices\Z:".
If Z: is in use, obviously, don't use that.
- Find the drive letter you want to swap in and edit that to match the first drive letter. For instance, if you were changing C: to D:, change "\DosDevices\D:" to "\Dos\Devices\C:\
- Rename the "Z:" or other temporary drive letter you used to the name of the 2nd drive. Again,
as above, if you were swapping C: and D:, set "\DosDevices\Z:" to "\DosDevices\D:".
- Close REGEDIT, reopen REGEDT32, and reset the permissions on the key as before.
- Go to the key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Winlogon\ and look for a REG_SZ subkey named Userinit. It will most likely be set to "C:\Winnt\System32\userinit.exe" if you were using C: as your boot drive before. Change it to match the new drive lettering. (Note: You can also simply replace the full pathname to the application with "userinit.exe", which will cause Windows to search for the application using the standard search order. Microsoft recommends this approach.)
- Optional: Use a global search-and-replace on the Registry to change any application paths specified in the Registry that may break because of the drive letter reassignment.
Serdar Yegulalp is the editor of the Windows 2000 Power Users Newsletter.
This was first published in November 2002