Helping people with computers... one answer at a time.

I'm running Windows XP. When my nephew built my computer, he installed my old hard drive in addition to my new one. The computer changed the drive assignments at that time with the old hard drive becoming "C:" and the new becoming "F:". Since that time we've removed the old "C:" hard drive and the only hard drive remains as "F:". Now, some downloads won't install because they want a C: path, and various other functions trying to utilize drive C: have problems. Drive Management will not let me reassign my F Drive to C because it is the main boot drive. What can I do?

Most people don't realize that using "C:" as the primary drive on your computer is fairly arbitrary. It's a good practice, if only to avoid the problems you're running into, but as you've seen you don't need to have it that way. You can build a system that boots from a drive of a different letter - in your case "F:".

Unfortunately, some software packages don't realize it either. They assume that there'll always be a "C:".

So we need to get tricky.

First of all, reassigning the drive letter of your existing boot drive - changing the F: to C: - wouldn't work anyway. The problem is that all the software you have installed so far has been installed on F:. As a result, all the settings for that software assume (correctly) that F: exists, and that's where the programs can find what they need.

One of those programs, by the way, is Windows itself.

So if you simply renamed F: to C:, it's likely that the system wouldn't even boot, because Windows would still be looking for things on F: - the F: that was no longer there. Even if Windows did boot, most of the applications you have installed would also no longer work, for much the same reason.

What I'm going to suggest is that we create a new C: drive, a "virtual" C: drive, on your existing hard disk. We'll use a fairly obscure tool that a lot of folks don't even know about, called "SUBST".

First we'll fire up a Command Prompt. Click on Start, All Programs, Accessories, Command Prompt. That should open up something that looks like this:

Command Prompt Window

Except that you'll see your user name instead of mine, LeoN, and the drive will be F: instead of the C:..

In that Window, type the following commands:

mkdir \Virtual_C
subst C: \Virtual_C

You should now have an empty C: drive. It just happens to also be the contents of the directory f:\Virtual_C.

Try some of the applications that you're having trouble with, and see if they now work, or at least behave differently. They may still fail, because our C: is empty - they might expect more than just the drive - but it's a start.

The C: drive that we created will disappear when you reboot. (The contents will still be there as F:\Virtual_C, but the C: drive will no longer exist.) To make it automatic, we need to add a command to your startup group.

Right-click on the Start menu, and click on Explore All Users. In the resulting Explorer window, expand Programs and click on Startup. Right click anywhere in the right-hand pane, and select New and then Shortcut:

New Startup Item Menu

In the resulting dialog box, enter the "Subst" command we used earlier: "SUBST C: F:\Virtual_C".

New SUBST shortcut

Click Next, and click Finish, and now each time you login, the virtual drive C: will be mapped to the F:\Virtual_C directory.

As a final note, this entire scenario results simply because the old drive was added to the system and allowed to be "C:". As I said, drive letters are arbitrary, but by now you can see that "C:" is kinda special, even though it really shouldn't be. If you can, it's safest to install your operating system and boot from "C:". Typically that means when you add a new drive that you expect to boot from, make it "C:", and give the OLD drive a new drive letter. This allows you to safely copy data off of the old drive, and eventually remove it without any ill effect.

Article C2431 - October 9, 2005 « »

Share this article with your friends:

Share this article on Facebook Tweet this article Email a link to this article
Leo Leo A. Notenboom has been playing with computers since he was required to take a programming class in 1976. An 18 year career as a programmer at Microsoft soon followed. After "retiring" in 2001, Leo started Ask Leo! in 2003 as a place for answers to common computer and technical questions. More about Leo.

Not what you needed?

59 Comments
Dan Ullman
October 10, 2005 2:58 PM

Couldn't you just do a share with the name "C:" ?

Leo
October 10, 2005 3:01 PM

Assuming that you have file and printer sharing turned on, then sure, you could set up a share, and then connect to yourself. Slightly more work to set up, but doable.

Leo
October 10, 2005 3:02 PM

One addendum: a network share looks like ... well, it looks like a network connection. Not all applications will, in fact, work across a network. SUBST, on the other hand, looks like a local disk drive.

Kathy
October 11, 2005 5:38 PM

Thanks, Leo. Works like a charm. Techs at the software company which would not install were pleased to know your fix as well. Thanks again, Kathy

Hereward
October 15, 2005 4:33 PM

I have the same problem, but I used Partition Magic 8 to change the drive letter from I:\ to c:\. This was the worst thing I could have done (it was late at night & i was very tired - big mistake). Now my system won't boot up. My boot up is a dual raid0 system. I have a temporary IDE drive in place to boot from. My files were backed up, but I have an operating system with extensive programs and settings plus my windows XP pro setting anmd configurations, Netscape 8.0 Bookmarks, MS. Outlook email (& extensive calander notes etc) etc that I haven't been able to access.

It goes through half through the boot up sequence and I then get the dreaded blue screen of death that I haven't seen since WIN98 days. It says it the batch file or something like that is corrupt. I know that it is still looking for the operating sstem commends on i:\ when the path to them is now C:\
Can I edit the file from another WinXP Pro operating system?
I read somewhere that I can do a search and replace from I:\ tp c:\, but can't find the site that gave me the instructions. But these instructions may have been done within the same operating system

Walter Wego
October 15, 2005 4:38 PM

In your shoes I'd run partition magic to turn C: back into I:.

I can think of no search/replace option that will get every possible place that the "I:" might have been placed.

Hereward
October 19, 2005 6:11 PM

I can't do that from within that version of windows because it fails to boot up. I tried using an IDE HDD in a removable drive bay with WINXP & P/Magic installed and although it changed the drive letter on the raid set up back to C: in that operating system, I don't believe it could affect the settings within the WIN XP installed on the raid system which still refuses to boot as it has it's own uniqu settings.

Fortunately, I found a ghost image I had of the raid0 drive which was several weeks old. I burnt this onto the raid and it worked, but of course my system and programs work as they did sveral weeks back and I am still in the position where I need to change my operating system path from I:\ to C:\ and at the same time have the disk recognised as a C:\ drive byt he operating system on the raid drive.

Joe Magee
October 24, 2005 6:18 AM

Same exact problem (except my hard drive became "E:") - and my iPod was the application that was looking for the "c:" drive. Apple support gave me a Microsoft link with a regedit procedure to change the boot disc back to "c:", but everything I've read above says that may be a bad idea. I will try your fix and see if the iPOD will work with my pc. Thanks.

William
October 25, 2005 2:50 AM

Hello i got a similar problem to this i think well when i reformated i formated 3 drives c:/ for windows and some programs mainly for windows witch was 4.5 gig and d:/ witch was 70 gig and e:/ witch was 40 gig now the problem is that when i try to install programs "some" of them just install and dont let me choose and install to c: witch is not dat big so now when i got a new program it installs 2 that now i got low disk space is there any way i can change where everything installs to cause some programs dnt let me do it

Leo A. Notenboom
October 27, 2005 8:48 AM

Yes, your C: is definitely too small. Unfortunately there's no reliable way to move things off of C: after you've installed Windows to C:. (There are hacks that I'm sure people will jump in with, but in my experience they are unreliable and will cause mor problems over time than they solve.)

If you can't repartition, then I would:

- move the swap file to D: or E:
- set the system environment variables TMP and TEMP to a directory on D: or E:
- direct IE to use a directory on D: or E: for temporary internet files.

I'd then clean off the old, respective equivalents on C: and see how much space that gets you.

Sadly installing more software is likely to continue to fill up C:.

Ralf
October 27, 2005 12:43 PM

Hello well I hope you can help, my problem is that I downloaded a newer version of multimedia 10 and after doing so my e-drive wont work or doenst show that its there so basically i cant burn cd's or load anything on that drive i tried installing a new drive but still get the same problem code 41 please help

Bryan Johnson
November 16, 2005 10:09 AM

In XP:
Start > Run Type Regedit and hit enter

HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices

Find the drive letter you want to change to (new). Look for "\DosDevices\D:" where the D: is the drive letter that is the current root and C: is missing.

right click the field and rename. Change the D: to C: and close Regedit. Reboot and you are complete.

in Windows 2000 you had to use regedit32 or something like that.

My issues were that my Tape drives and/or Zip drives would be C: and the CDrom was D: because they were installed by factory in the primary slots. The HD on the Secondary string ended up being F:. I went into the "properties for my computer icon" and clicked Manage. Then disk management. Change the Zip and CDrom to other drive letters. Use the Regedit command above and then reboot. all is well after that.

The other comments are inventive, but this is the straight Microsoft way to fix your drive letters.

Brian
December 14, 2005 3:38 PM

Why has no one meantioned the fact that critical system files are always on C:? Always. NT kernels use 5 system files to boot. In this order:

NTLDR
boot.ini
bootsect.dos(boot into 9x OS or DOS, if present)
ntdetect.com
ntbootdd.sys(for scsi and raid)

The two files that have comments are not required. However, if a person were to remove C:, all those files go away, causing Windows to be unable to boot. It just shouldnt be done, unless the user wants to try a repair or reinstall windows.

Why make C: arbitrary when it should always be first, to avoid headache. None of the companies I work for install XP on any other drive, besides C:, unless its a dual boot situation.

Nigel
December 25, 2005 7:22 PM

Please help. I recently XCOPY all of my existing software and windows setup from an old 60GB to a new SATA 160GB and removed the old drive. When I rebooted the system all seems ok, except that I acnnot load/run any programs they all are looking for drive C, which does not exist anymore. XP recognizes my new drive as DRV2_Vol(1) E, how do I change it to drive C?

naomi schmidt
February 10, 2006 7:44 PM

so I had this problem and I was stupid and did delete C and renamed F C. Of course now Windows won't boot but what do I do to fix it. Go ahead and laugh it up at my retardedness... It's been a long week and I just wanted to get AutoCad to run on my computer so I did have to go to the computer lab where I ended up anyways b/c I broke mine.

Thanks

Andre-Luc Bisson
April 17, 2006 1:26 PM

Thanks A lot!
The solution was so simple and it worked like a charm!!!!! This is the first time that I have been able to reslove any computer issues in less then 30 sec!!!!!!!!!!!!

Thanks Again,
A-L

David Kennedy
August 16, 2006 2:27 PM

Absolutely brilliant tip.

Thanks a lot

Bob Usher
September 17, 2006 12:38 PM

I had this problem with Yahoo Instant Messenger after my C drive crashed and -- to make a long story short -- my new primary drive was assigned the letter "I" by the system. This problem was compounded when I installed an external USB hard drive for full system backups, and the system assigned that drive the letter "C". When the external drive was connected, I had no problem with Yahoo Messenger, but when the external drive was removed, the problem reappeared. I solved this by creating a batch file and placing a shortcut to it in the "All Users" start menu. It first deletes the latent Virtual_C folder if one exists. Then it looks for the presence of a "C" drive. If the "C" drive is present, no virtual drive is created. If the "C" drive is NOT present, the virtual drive is created:

@echo off
IF EXIST \Virtual_C rmdir \Virtual_C
IF NOT EXIST C: mkdir \Virtual_C
IF NOT EXIST C: subst C: \Virtual_C

It solved my problem beautifully!! I can now connect and disconnect my backup ("C") drive with no impact on Yahoo Instant Messenger. Thanks for the tip!!

nevermore
October 11, 2006 3:27 AM

I got this exact problem ... thing is I'd rather have a real C drive then a virtual one (don't like workarounds like this). I have a paragon partition manager which lets me change drive letters (and spends a lot of time doing so, so I imagine it changes all registry keys that point to the previous drive letter or something). Thing is it won't let me do it to the active drive. Is there really no way, even with the program to do this? ... I've tried booting from another partition but this partition shows itself as C when I'm in it (and when I'm on my primary partition it doesn't, strangely enough).

frank dawson
February 15, 2007 10:12 PM

how do i change my e drive to c drive in a new hard drive i need help

bobbycat
February 22, 2007 8:15 PM

how about computer security? does changing the "assumed" drive letter C to something else discourage a possible hacker?

Gerry Suchanek
April 4, 2007 10:11 AM

My problem is similar but not identical. When installing a new harddrive, it was designated F. I changed the designation successfully to C. Existing program files for software and data continues to want F. This includes MS Office programs and documents created using these programs. How do I change the addresses from F to C? I tried the virtual directory solution and it does not work.

Hope you can help because this should be fixable since all data and programs are still on the hard drive (now called C as it should have been originally).

Doug Thompson
April 13, 2007 9:27 AM

My problem is similar but not I produced an image of my 20gig drive that was installed in my notebook and was C: to a USB drive that was assigned D: and now windows boots up to the login and when I attempt to login it immediatly logs back off. I think that the drive is still somehow identified as D:. How can I fix this problem?

Anthony
April 17, 2007 10:27 AM

I tried this, but when i type in "subst C: \Virtual_C" part in Command Prompt, it keeps giving a "Invalid parameter - C:" responce..... any idea how to get past this?

Patrick
April 24, 2007 1:20 PM

Hope but it does not work for me.
I just bought a brand new PC.
I installed windows XP SP 2 and he made the following drive letter assignment
C: Removable disk
D: Removable disk
E: Removable disk
F: Removable disk
G: DVD drive
H: Hard disk !!!

Now I frequently have the message : Insert a disk into the drive \Device\Harddisk1\DR3.
I think this happens when some program tries to access the C:

Worst, when I launch the disk manager, I have an error : Cannot connect to logical disk manager. File not found.

With your tip, I'm not allowed to assign the virtual drive to the C leter because it already exist.

Can you help me ? Thanks

Patrick

Ricky
May 2, 2007 3:59 PM

Why do I get an error message "Invalid parameter C:" when I tried the SUBST command?

Here's what I typed: subst C: \Virtual_C

Robert Palmer
August 14, 2007 6:20 PM

This sounds like it may help me, but I'm not sure. My situation is this...I installed a new hard drive that automatically became drive f. This new hard drive was assigned as the master and the old hard drive the slave by me. I formatted the new hard drive with the Windows XP disk. The old hard drive "c" gave up the ghost. When the "c" drive was working, everything functioned properly. Now that there is no longer a "c" drive, my system restore, search function, and Internet Explorer don't work. Do you think this virtual c may help my situation?

Robert Palmer
August 14, 2007 6:51 PM

Didn't help. Any help on which direction to go now would be appreciated.

Joe Garza
September 10, 2007 11:02 PM

I have had this problem before, this has happened mostly on HPs, when I format a computer get it ready for Xp install it reads the memory card reader slots, just remove them from the mobo before xp install.. that will fix the different drive assignment.. also if the programs are looking for F: drive go into the registry and look for software then change the install directory.. u should see them say like F:\programs.. just change f: to c: that will fix ur problem its a time taking process but u can do it just for the software u are about to use.. :)

Jen
October 5, 2007 9:10 AM

i have the same problem the disk c is full because of the old aol and I can't seem to get back to it so I can delete and have some space left on my disk c I need help me also this is a brand new computer. We were trying to download the Ipod of the ITUNE and its messes everything up everything was great before and now its terrible

Phil
October 29, 2007 4:05 AM

This is due to the USB multi-media reader, just unplug it then reinstall Windows XP, you will get C: drive as normal then reconnect the USB media multi-reader cable and you will get the four extra drives but will start at E: ;-)

Bob Lambrecht
April 21, 2008 8:37 PM

What is the correct solution to this man's problem?
*******************************

Hope but it does not work for me.
I just bought a brand new PC.
I installed windows XP SP 2 and he made the following drive letter assignment
C: Removable disk
D: Removable disk
E: Removable disk
F: Removable disk
G: DVD drive
H: Hard disk !!!

Now I frequently have the message : Insert a disk into the drive \Device\Harddisk1\DR3.
I think this happens when some program tries to access the C:

Worst, when I launch the disk manager, I have an error : Cannot connect to logical disk manager. File not found.

With your tip, I'm not allowed to assign the virtual drive to the C leter because it already exist.

Can you help me ? Thanks

Patrick


Posted by: Patrick at April 24, 2007 01:20 PM

Moe
October 4, 2008 11:18 AM

I have a similar problem.I have just formated my pc, and now when I insert a usb into the pc, in my computer it says invalid f which chould say removable f and show me the contents of my usb, when I click on it it tells me F is inaccesible and a long message. Can anyone help me out please?

John
November 4, 2008 2:25 PM

Thanks! That solved my problem! I ran into one little snag that I was able to figure out on my own, though. My computer had assigned "C" to a removable disk drive, which kept me from making a virtual C drive. So I just re-assigned the "C" drive to some other letter, and then I was able to create that virtual C drive. Anyway, thanks a bunch for your advice!

Shane
January 2, 2009 8:48 AM

SOLUTION FOR "Invalid parameter C:".

Do this for the Removable Media (C:) that is hosing you from creating the virtual C: :

1. Open the Control Panel
2. Select Classic View (if not already setup that way)
3. Click Administrative Tools Folder
4. Double-click the Computer Management icon
5. Computer Management window will open. Click storage in the left page.
6. Double-click Disk Management
7. Right-click the drive you want to change
8. Select Change Drive Letter and Paths
9. Click the Change Button
10. Select the drive letter to which you want to assign it
11. Note the warning and agree if you accept the risks
12. Close out the disk management

ola
April 19, 2009 2:38 PM

thanks
this really help me
God bless u

Ani Johnson
April 21, 2009 9:05 AM

This may help my situation, but I want to ask something before I try it...

My old system had two hard drives, both attached with a ribbon. Well, my boot drive died, so I got a new sata drive to replace it. The sata drive is far bigger than the ribbon drive that remains, so I installed Windows XP Home on it. Well, everything worked great, but the drive defaults to E: and the old ribbon drive is C:. Well, all of my games refer to E:, like they are supposed to, for install. But then when I try to run them they crash. I'm assuming because they can't find the C: drive path they need to work.

So I have two questions: 1) Will creating this "Virtual C" help my problem? and 2) What do I do about the existing C: drive, since it reads as a System drive and windows won't let me change the path name of it.

Why don't you just remove the failed drive?
- Leo
22-Apr-2009
Flinty76
April 26, 2009 7:21 PM

I have a new Garmin GPS CD I need to install a program to a virtual C: drive. Garmin does not allow you to pick a drive they assumed everyone has a C: drive. Mine is not there,

I got a little further with your outline above (the one with the screen shots)however, even though it starts to read the CD it stops and states: "The specified path it too long C:\Garmin"
It just asks if I want to cancel or retry. Retry does not work.

Then I tried Shane's 12 point step but when I try and change my I: drive to C: I get this message:

"Windows can not modify the drive letter of your system volume or boot volume".

Any suggestions??

Thanks.

Peter Thomas
October 20, 2009 8:29 AM

Another way to alter the drive letter designation is to disconnect all drives except the one you wish to designate as 'C', this includes any other hard drive, usb, cd rom etc and not forgeting the printer and usb hub. Then clear the on-board memory by moving the clearRTC jumper to its alternate position for 5 - 10 seconds, return it to it's normal position and reboot with only the drive you've selected connected. The drive should now be designated 'C'. Shut down and re-connect all the other drives the system should now be as you wish.

steve
December 18, 2009 5:44 AM

i have no c drive. and i have screen shoots that i took on disney pirates online game. how do i recover them. and get the sreen shots on my computer. i would like to see them. can you help me pls.

Lucinda Fields
January 18, 2010 11:07 AM

Not sure what I am doing wrong, but I type in the first command in c-prompt and all works well, when I type in the subst command I keep getting an error message. Invalid parameter-C:, can you help?

Make sure that you're typing it correctly as shown, and that you don't already have a C: drive.
Leo
19-Jan-2010

Jason
February 26, 2010 7:18 AM

I have the same issue as Steve, I do have a C but it is 8megs and was created when I installed my new hard dive. Is there anything I can do?
Thank you!

Jason
February 26, 2010 7:19 AM

Sorry, same issues as Lucinda...

BB
March 1, 2010 11:10 AM

Similar issue as above. My machine has designated one of either the USB or memory card slots as C: Suggestions?

BB
March 1, 2010 11:27 AM

Jason and Lucinda - this might help. My existing C: was just a USB drive. I went into XP and reassigned the drive letter so that I no longer had an existing C: (http://support.microsoft.com/kb/307844).

Not a problem for me because I did not have any programs/data on that drive that the system would look for.

kATEY
March 8, 2010 7:03 AM

I cannot find m c drive i went to my computer because Im trying to do the disk check clean up and defragmenting but theres no spcae that says its the c drive wat do i do.

Danny
May 10, 2010 3:48 PM

In my case, my usb multi card reader was the problem. When I installed XP64 it took drive C: as H: and the multi card reader managed to get the C:, but if they aren't connected its fine.

I right clicked the icon next to the clock, "safely removed" the device and then proceeded with the instructions above.

sunny
June 17, 2010 11:54 AM

worked like a charm. thank u

Tim
August 23, 2010 6:01 AM

Tried to create the virtual C using the command prompt, but my machine already has a C drive but it is listed as a removable. What else can I try?

Hisham
October 12, 2010 6:33 AM

I am having this same problem. I am using the USB dongle for Internet. from the last 2 days, i have been getting this message "there is no disk in the drive. please insert a disk into drive \device\hardisk1" whenever i plug in the USB.
Now when i go to Disk Management and tried to disable the USB, it is working fine. Though I am using the net, but what the hell is this?

kevin
November 7, 2010 1:05 AM

omg..that was awesome! I tried to d/l a virus protection and it kept failing because it couldn't find C. For some reason, person who I had re-format my drive due to previous virus, loaded XP pro and gave me E: as harddrive. Your solution worked.
Thank you very much!

Mark W
December 1, 2010 1:58 PM

You saved me all kinds of grief with this tip. I was finally able to load a software program that insisted on looking for drive C. It allowed me to get to the point at which I could change the installation drive to F. Before your tip it wouldn't let me get to that point, telling me I had an invalid drive C. Thanks!

Doug
February 22, 2011 4:28 AM

Seriously thanks so much! solved my problem perfectly!! really grateful, cheers

Lyle Allen
March 17, 2011 11:36 AM

We have this problem on a customer's machine where they have H:\ as their primary drive, which is a removable USB machine. Disk Managment shows but it, and a C: drive that is, present, removable, read-only and has no space. SUBST command fails with the drive letter already used. However, references to C:\ from DOS fail. All under XP--so rights are not the issue. Perhaps this is a device driver for bootstrap purposes? I am afraid to change the C: drive letter to D: or E: (both free) for fear of rendering the machine unbootable? Any perspective or ideas come to mine?

Thanks in Advance,
Lyle (Rickenbacker108)

pedro
August 10, 2011 6:45 AM

Hasn't entirely worked, fingers crossed

John Birtch
August 29, 2011 3:13 AM

I have the same problem and was considering using a product like partition master to create a new "C" partition. Would this solve the problem or create new ones? Thanks in advance for your help.

John

I suspect that it would be about as safe as anything I've outlined in the article above. Ultimately the safest thing to do of course is to install window such that it shows C: as the system drive to begin with.
Leo
30-Aug-2011

Dave Adelaide(oz)
October 17, 2011 10:48 PM

Change BootDisk F: to C: (or whatever to C:)
Make a BATCH file in F:\ called substC.bat
----type following---
SUBST C: F:\
----- save and
copy shortcut to Startup directory
Whenever the PC starts C: drive is available (image of F: in Explorer)

Craig Groce
January 26, 2012 10:02 AM

Just finished with 4 hours on phone with MS Tech Supp. They have no answer for the problem.
Running Win 7 Pro. My problem started when the maker of the PC used a C drive with only 40 gigs and it ran out of room.
used Norton Ghost which came with new Samsung SSD that I installed to image C: drive to new drive. Samsung says to use the letter Ghost selects so it became G:. but MS Tech couldn't change the C drive letter without causing problems. Finally the MS Tech gave up.

Geof
March 2, 2013 8:51 AM

Leo says "Ultimately the safest thing to do of course is to install window such that it shows C: as the system drive to begin with."
But HOW. My main drive is on F: after a reinstall of XP and I don't remember having any involvement in the choice of drive letter.

Comments on this entry are closed.

If you have a question, start by using the search box up at the top of the page - there's a very good chance that your question has already been answered on Ask Leo!.

If you don't find your answer, head out to http://askleo.com/ask to ask your question.