27

So about a month ago I set up a Windows 7 Professional machine where I was able to mount the secondary hard drive to the path C:\Users. This put all of the userspace files on the second hard drive without all that mucking about with registry editing. It has worked wonderfully and now I am trying to replicate it and I cannot seem to remember how I did it. Which makes me feel like quite an idiot.

I believe I somehow moved the content of the c:\Users folder to the second Hard drive. Then I mounted the d: drive as c:\Users. Easy enough but I am unsure how I got the contents of the c:\Users folder moved over and deleted before I mounted the secondary drive (sice it needs to be an empty folder and all). It is up and working on my previous machine but now I need to do it on a new machine and I cannot for the life of me remember how I did it, nor where the instructions are that I used. Other than in the end the entirety of the Users folder was moved to the d: drive and I do not have a C:\Users folder.

Any thoughts on how to do this again, or links to instructions? Individual profile moves are not going to solve this problem. Thanks.

4
  • You're asking for two different things. One place you want to mount a second drive in C:\users. In another place you ask how to move the user profiles to D:\. They are two different procedures, which do you want to accomplish?
    – MDMarra
    Oct 8, 2009 at 22:42
  • Well you cannot mount the second drive as d:\Users with out first moving the contents to the d:\. Once the contents are moved and the old c:\Users is gone or empty it is a simple matter to mount the second drive to c:\Users.
    – tvanover
    Oct 8, 2009 at 22:54
  • 1
    You can point user profiles at d:\users or you can mount the second drive is c:\users, but in this case it wouldn't carry the letter d:\, it wouldnt have a letter at all. I think that's where my confusion is.
    – MDMarra
    Oct 9, 2009 at 4:53
  • Here is an article that details how to do it.
    – user70638
    Mar 8, 2011 at 1:04

10 Answers 10

28

It looks like Jimmie R. Houts over at serverfault has the answer I am looking for. He referenced this article with more information.

To expand on his answer, after installing Windows 7:

  1. You boot with the install media.
  2. At the screen with the "Install Now" choose "Repair your computer"
  3. You will be asked if you want to "Repair and Restart" by the System Recovery options, choose "No".
  4. Then make sure that Windows 7 is listed as one of the installed OSs available for recovery and it's selected; then press "Next".
  5. You will be given a list of recovery tools; chose "Command Prompt".
  6. In the command prompt you will be using Robocopy to copy C:\Users to D:\Users.
  7. Type robocopy c:\Users d:\Users /mir /xj
    • /mir tells robocopy to mirror the directories; this will copy all files and permissions and will delete any other files in the target directory (reference). If you already have user profiles in D:\Users and want to keep them, try /e /copyall instead; this copies everything recursively (/e), all file attributes included (/copyall), though for some reason you might have to adjust ownership permissions later anyway.
    • /xj is very important, this tells robocopy not to follow junction points. If you forget this, you will have a lot of trouble.
  8. Make sure no files failed to copy (FAILED column = 0).
  9. Remove the old Users Folder from the C: drive: rmdir /S /Q C:\Users
  10. Create an NTFS Junction that points to the new Users folder: mklink /J C:\Users D:\Users. Make sure the target, D:\Users, uses the drive letter which will be used after restarting, not as it is during the recovery command prompt session (Thanks mindless.panda, and matt wilkie).

Now restart and there you go. No further configuration or fiddling required. New user profiles will all be stored on the D: drive, as will any user-specific data. And it is achievable without any messing about in the registry, searching and replacing values, or having to mess with new profiles in any way. Totally fire and forget.

8
  • The drive letters may be different. You will want to dir c: d: e: and f: to find the original drive and e destination.
    – tvanover
    Nov 7, 2010 at 16:58
  • It seems you need to have the same drive letter for the destination drive in the repair boot as in an ordinary boot (I ran into an inability to read the user profile). Use mountvol to shuffle the drive letters. Apr 21, 2011 at 8:22
  • What do you mean by (FAILED column = 0)? Nov 21, 2011 at 23:01
  • According to my robocopy (win7sp1), the default copy behavior doesn't copy Security, Owner, and Auditing info. Why would we not want to use /copyall flag?
    – Danny
    Dec 3, 2011 at 4:12
  • @Danny I tried this using the /copyall flag and ended up with little locks on all my folders. I'm not sure what other consequences there are, but that was bothersome. Using the OP's way doesn't leave those. I think that might be the reason. Mar 2, 2012 at 21:38
9

Create a NTFS Junction that points to the new Users folder: mklink /J C:\Users D:\Users

For this step, make sure the target, D:\Users, uses the drive letter which will be used after restarting, not as it is during the recovery command prompt session, or you will be greeted with the error "The user profile service service failed the login. User profile cannot be loaded." on restart.

The fix for this error is to logon with another profile on the system with admin priviliges and:

  1. Open command prompt as administrator
  2. Type Regedit
  3. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
  4. There is 1 key for each profile. When a profile is bad there are 3 things worth checking:
    • Ensure the key name doesn't end in ".bad" or ".bak", should look similar to S-1-5-21-1234-1234-1234-1234
    • Ensure the RefCount value is 0
    • Ensure the State value is 0
  5. Logoff or switch users, and you should be able to logon just fine. A reboot may be necessary.

Additional reference used here.

This answer should be combined with tvanover's answer of Oct 9 at 20:01 and draws on Gonzalo's answer of Nov 8 at 17:03. I lack the reputation to edit in place, or even comment, so someone else with those privs please combine (and then we can delete this answer).

2
  • 1
    Any advice on receiving the "failed the login. User profile cannot be loaded" error message when I used the correct target drive? Aug 8, 2011 at 11:09
  • Is this better than doing "robocopy"?
    – DaSh
    Sep 9, 2015 at 22:24
7

I just tested tvanover's answer in a virtual machine. However, I did a few things differently.

  1. I did this with a fresh installation in Audit mode (Ctrl+Shift+F3 on first boot). I let it boot once into audit mode before proceeding.
  2. I copied the files to the root of the second drive.
  3. Instead of making a link, I set a mountpoint.

Here's how I made the mountpoint:

  1. After deleting the C:\Users directory, recreate it

    mkdir C:\Users

  2. Run the DISKPART command, and select the second disk (substitute * for correct disk number listed after the LIST DISK command)

    DISKPART

    LIST DISK

    SELECT DISK *

    SELECT PARTITION 1

  3. Set the mountpoint. If it fails, go back and make sure the C:\Users directory exists and is empty.

    ASSIGN MOUNT=C:\Users

    EXIT

  4. Reboot. Once it's done rebooting, you can use Start->diskmgmt.msc to remove the drive letter from the second drive if you want.

  5. If you're in Audit mode, go back to the System Preparation Tool window, make sure "Enter System Out-of-Box Experience (OOBE)" is selected as the System Cleanup Action, "Generalize" should be unchecked, and the Shutdown Options should be set to either Reboot or Shut Down. Click OK, and the system will cleanup and reboot back to the first-boot setup.

4

Just to add to the tvanover answer:

I wanted to contribute to this question just in case anybody else has the same problem as me with this method.

I folowed all the steps but I made an incorrect reference to the drive letter. Booting from the rescue DVD the new destination hard disk letter was "E:" but booting normally it's "F:". So the link was incorrect.

I thought, "no problem, I didn't delete the original C:\Users, instead I renamed it (move C:\Users C:\Users.orig), so deleting the junction (linkd /d C:\Users) and renaming the old one, everything should work as before". But I was wrong! I tried to login and I got an error (something related to the profile service not working).

So searching for a while I got the answer (Fixing user profiles).

Indeed what it happend is that Windows created a copy of my user profile key in the registry. So I found two same named keys but one with a .bak extension. I deleted the new one (that without extension) and renamed the old one (deleted the ".bak" from its name).

That way I could finally login (as before doing anything).

The last step was making again the steps tvanover has told us but changed the letter of the junction point to the one Windows does "see" once booted.

At last it worked!! ;-)

So this could possibly make somebody get nuts if drive letters change someday or if the drive with the Users folder fails or is simply leaved disconnected in one boot.

Please edit my answer as you like as English is not my mother language (obviously, haha).

Anyone wants to add something about this? Don't you feel a little unsafe about this happening to you some day? I'm not saying you can't fix it but I think it's so easy to happen, isn't it?

One more thing: I had to change the owner of muy user folder in the new location as some programs stopped working as always (IE8 couldn't save Favourites, as an example). Maybe I should have added my user the the security tab and add permissions there but changing owner worked so far.

4

To most easily move all user files and user program files off your boot drive (an SSD in my case), follow these instructions.

FIRST, Create a restore point: 1. Open System by clicking the Start button, right-clicking Computer, and then clicking Properties. 2. In the left pane, click System protection. If you're prompted for an administrator password or confirmation, type the password or provide confirmation. 3. Click the System Protection tab, and then click Create. 4. In the System Protection dialog box, type a description, and then click Create.

THEN: Go to System Recovery/Command Prompt: Boot with the Win7 Install DVD, choose language, currency and keyboard, and hit Next. At the screen with the "Install Now" choose "Repair your computer" You will be asked if you want to "Repair and Restart" by the System Recovery options, choose "No". Then Make sure that Windows 7 is listed as one of the installed OS's available for recovery, and that it's selected and then press next. You will be given a list of recovery tools. Choose "Command Prompt".

Find your virtual Windows drive loaded from the Win7 media (probably either C or X), find your actual Windows/SSD drive (D or E) and find your HDD (regular hard drive) (D or E).

In my system normally, C=SSD with Windows on it, D=HDD data drive

Using Win7 Update media, the drives in Recovery mode were set up differently, thusly: X: virtual/temp Windows drive, E: actual Windows/SSD drive, D: HDD, hard drive I wanted to put \Users on.

Some report that System Recovery mode will set up their drives like this: C: virtual/temp Windows drive D: Actual Windows/SSD drive E: HDD, they want to put /Users on.

In the command prompt you will be using Robocopy (NOT xcopy!) to copy c:\Users to d:\Users, then delete the old c:\Users, then make a symlink from c:\Users to D:\Users. Note that you must do these things in order, and you must not have a d:\Users dir before you do this.

NOTE: in the system recovery command prompt window, your drives are not the same as they will be after you leave recovery mode! So adjust the commands below for how the drives are in Recovery Mode, and then they’ll turn out correct later.

I used: robocopy /mir /xj E:\Users D:\Users

To move /Users from Windows/SSD to HDD. /mir tells robocopy to mirror the directories, this will copy all files and permissions. /xj is very important, this tells robocopy not to follow junction points. If you forget this, you will have a lot of trouble. Make sure no files failed to copy (FAILED column = 0).

Then you must remove the old Users Folder from the Windows/SSD (c:) drive, before you can create the symlink: I used: rmdir /S /Q E:\Users

Create a NTFS Junction/symlink that points to the new Users folder:

I used: mklink /J E:\Users D:\Users

Use the /J switch to create a junction that’s a hard symlink. (If you use the /D switch, you’ll also have to edit the registry, cuz it won’t be a hard link.) Using /J, when Windows looks for the C:\Users dir, it will find it! But it will be on the HDD instead of the SSD. Tricky!

To see the proof of what you’ve created, still in the command prompt window, go into the actual Windows/SSD and do the "dir" command, and you’ll see: " Users [D:\Users]"

Now restart and you’ll see /Users on your HDD, and there you go. No further configuration or fiddling required. New user profiles will all be stored on the d: drive, as will any user specific data. And it is achievable without any messing about in the registry, searching and replacing values, or having to mess with new profiles in any way. Totally set and forget.

2

If your OS is installed on a SSD, the easiest way i found to specify a different path is to right click on the folder say Videos and select properties. Click on "Include a folder" Navigate to your 2nd HDD and right click and create a new folder called Videos then select include folder. Now if you select videos you should see two or three file locations C:\users\User\My Videos, C:\users\Public\My Videos and D:\Videos Now go to C drive -> users -> User and right click on My Videos go to the Location Tab and select Move Select D:\Videos and click select folder Now click apply Then you get a prompt asking if you want to move all select yes Now when you click on My pictures you will agin see the three locations listed previously except this time all of you files appear in D:\Videos Right click videos again and select all items except D:\Videos and delete them Now when you click on pictures all you see is D:\Videos Don't delete the public folders if you want to use them. Happy days

1

Under XP, this is in Disk Management. (I'm sure there are a million ways to get there, but I always right-click on My Computer and select Manage, then select Disk Management on the left under Storage.) Right-click on the D: disk and select "Change Drive Letter and Paths". Then click Add and enter the path where you want to mount the drive.

No idea if it's the same in 7 or Vista.

2
  • Yes, this is simple, but how do you move all the user data (which is locked) then make the swap?
    – tvanover
    Oct 8, 2009 at 22:56
  • 1
    1) make temporary administrator profile 2) reboot computer, log into it the new admin account 3) go to My Computer > Properties > Advanced > User Settings and copy all profiles to D:\Documents and Settings\(username) ...except the temp admin you're logged into. copies done. in XP you may need to boot to safe mode (or recoverycd) to make the swap. Oct 9, 2009 at 5:12
0

Check out How to create and use NTFS mounted drives in Windows XP and in Windows Server 2003. You could use the second hard drive as a "mounted drive".

2
  • But how do you get the user profiles onto the "Mounted Drive" so that you can empty the mount destination folder?
    – tvanover
    Oct 8, 2009 at 22:58
  • Mount the drive to something under c:\ and then relocate each profile to that mount point?
    – Chris_K
    Oct 8, 2009 at 23:02
0

I've used Winbolic Link for this sort of stuff. For what you want to do, you move the contents onto the second hard drive then create a link or junction called "Users" on C:\ which maps to the folder on the other hard drive.

It survives a reboot and works natively with Windows and NTFS to do this, so compatibility problems shouldn't be an issue. The info on the site should probably tell you everything you need to know about the program.

I myself have done this to move all Google info (Chrome cache, Picasa thumbnails, Desktop indexes) to another drive, since they tend to grow wildly large and like to reside in your user profile folder. :|

1
  • Winbolic Link really is no longer relevant with win 7 since it fully supports junctions and symbolic links. On the right track though.
    – tvanover
    Oct 9, 2009 at 20:02
0

Once you have done this once, and need to install win7 again, how do you do it with having to do anything to the D:\Users directory on the HDD?

I mean when I try robocopy from C:\Users on the SSD, D:\Users already exists with all the users data already?

The robocopy command fails when the D:\Users directory (and all its data) already exists.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .