Technology in terms you understand. Sign up for the Confident Computing newsletter for weekly solutions to make your life easier. Click here and get The Ask Leo! Guide to Staying Safe on the Internet — FREE Edition as my thank you for subscribing!

I Have No C: Drive, But Some Programs Insist On It. What Can I Do?

Question: 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.

Become a Patron of Ask Leo! and go ad-free!

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.

Do this

Subscribe to Confident Computing! Less frustration and more confidence, solutions, answers, and tips in your inbox every week.

I'll see you there!

59 comments on “I Have No C: Drive, But Some Programs Insist On It. What Can I Do?”

  1. 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.

    Reply
  2. 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.

    Reply
  3. 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

    Reply
  4. 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

    Reply
  5. 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.

    Reply
  6. 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.

    Reply
  7. 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.

    Reply
  8. 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

    Reply
  9. 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:.

    Reply
  10. 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

    Reply
  11. 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.

    Reply
  12. 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.

    Reply
  13. 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?

    Reply
  14. 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

    Reply
  15. 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

    Reply
  16. 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!!

    Reply
  17. 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).

    Reply
  18. 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).

    Reply
  19. 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?

    Reply
  20. 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?

    Reply
  21. 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

    Reply
  22. 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

    Reply
  23. 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?

    Reply
  24. 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.. :)

    Reply
  25. 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

    Reply
  26. 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: ;-)

    Reply
  27. 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

    Reply
  28. 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?

    Reply
  29. 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!

    Reply
  30. 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

    Reply
  31. 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
    Reply
  32. 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.

    Reply
  33. 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.

    Reply
  34. 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.

    Reply
  35. 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

    Reply
  36. 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!

    Reply
  37. 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.

    Reply
  38. 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.

    Reply
  39. 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?

    Reply
  40. 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?

    Reply
  41. 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!

    Reply
  42. 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!

    Reply
  43. 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)

    Reply
  44. 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

    Reply
  45. 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)

    Reply
  46. 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.

    Reply
  47. 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.

    Reply

Leave a reply:

Before commenting please:

  • Read the article.
  • Comment on the article.
  • No personal information.
  • No spam.

Comments violating those rules will be removed. Comments that don't add value will be removed, including off-topic or content-free comments, or comments that look even a little bit like spam. All comments containing links and certain keywords will be moderated before publication.

I want comments to be valuable for everyone, including those who come later and take the time to read.