This is a method that’s commonly used in a hybrid SSD–HDD solution, but it can be used in any settings for those who don’t want to store their Users directory in their main C: drive. And I like this solution better as it’s more straightforward than the registry hacks.
This post just shows quick steps on what to do without giving too much the why as it’s already best explained elsewhere that can be followed from the links provided at the bottom of this post.
What to Prepare
- This should be obvious, but make sure you have either Windows 8 DVD or USB handy where you can boot from in case things go wrong.
- Your target HDD must be formatted in NTFS.
- All data backed-up (another obvious one).
Steps
-
Delete all contents in LocalTemp folder in your C: drive (i.e.,
C:\Users\itnota\AppData\Local\Temp\*.*
). I happened to encounter “Access denied” error while doing the robocopy and the system kept trying to copy one *.tmp file for three hours before I realized what it was trying to do. After cleaning out the whole Temp directory, the whole process took only a few minutes. Make sure you also exit all running applications before cleaning the whole folder. -
Boot into Command Line. Press “the Windows logo key”+C or point your mouse to either top-right or bottom-right corner, select Settings, and then click Change PC Settings.
-
Click General, then click Restart now.
-
Once you see the blue screen shown below, click Troubleshoot, Advanced options, then select Command Prompt. (Images were taken from HowToGeek)
-
The PC should reboot and show a command prompt window. And this is where things can be a bit tricky. You need to figure out which drive letter the SSD (source) and HDD (destination) have and they may not necessarily be the same as what you see in your Windows environment (as seen in File Explorer). So if you open File Explorer (“Windows logo key”+E), your C: drive may not be the C: drive in the command prompt Window. This is what you need to find out and make a note of it.
-
The easiest way is just doing a
dir
command on each drive by typing:
C:
Then type:
dir /p
Repeat this for the destination drive. As an example from my own system, here’s what I found:
Drive File Explorer Command Prompt SSD (Source) C: H: HDD (Destination) F: G: -
Once you get this part figured out, start copying Users directory. I’m going from the example above, you need to substitute the drive letters according to what you find in your system.
Type:
robocopy /copyall /mir /xj H:\Users G:\Users
Make sure there aren’t any errors in the FAILED column.
-
Delete the Users directory from the SSD.
rmdir /S /Q H:\Users
-
The last part is to create a directory junction (soft link) from SSD to the HDD. And here’s another tricky part. While you use the drive letter of the source from the Command Prompt (H:), you cannot use the drive letter of your destination, instead, you have to use the drive letter of your destination from the Windows environment / File Explorer (F:).
mklink /J H:\Users F:\Users
That’s it. Close the Command Prompt window and click Continue. Your PC should reboot and prompt you to log back in to Windows.
At the end of the process, you should be able to tell if it works. Just check your Users folder on C: drive and compare it with the new destination. The Users folder on C: should look like a shortcut icon, and the real Users folder on the destination (i.e. F:) is a regular folder. If you check the Properties, both should show the same size.
Troubleshooting
If you’re signed out as soon as you logged in, this might be caused by directory junction was pointed to a wrong drive, make sure you perform the last step right. But at this point, you won’t be able to fix it without rebooting from either Windows 8 DVD or USB.
Once the installation menu shows up, select Repair Your Computer and select Advanced options and Command Prompt. Delete the created junction (Step 8), and re-create it with the correct drive letter (Step 9).
Please share this post if you find it useful.
Known Issues
Certain Windows Security Updates (e.g., KB2781197) cannot be automatically applied after the change. Please refer to Windows 8 Updates After Moving User Profile on how to resolve this.
Further Reading
Move the Users Directory from SSD to HDD in Windows 8
Move the Users Directory in Windows 7
Preshoth says
Hi there,
Does anything have to be done in regards to the registry? Specifically with HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/ProfileList, should those values be changed from %SystemDrive%\Users to DRIVE_LETTER\Users ?
Charles says
In Windows 8, at the last step of your suggested procedure, the system said I can’t create soft link for the device. Any suggestion?
Alvaro says
Hi, thanks for the tutorial but I follow it carefully and DOESN’T WORK FOR ME.
Same problem than Bobro: “User Profile Service service failed to load.”.
Additional Hardware Info of drives:
1.- SSD 64GB MBR with WINDOWS8 SYSTEM (in windows was letter C: In cmd appears at E: and X: boot image)
2.- RAID0 on motherboard 2TB GPT partition (in windows it was letter E: In cmd letter C: )
WHAT I DID:
robocopy /copyall /mir /xj E:Users C:Users
rmdir /S /Q E:Users
mklink /J E:Users C:Users
That’s what I type and it doesn’t work… and the worse… can’t access the windows 8 system now.
May be Windows 8 can’t access and don’t have full support to GPT partitions table? (The one of the new user folder destination).
I apreciate any help,
thanks
platt says
Alvaro,
In my comment to Bobro, this is exactly the situation I was describing and also talked about in the comments section of the original website. Basically what you’re doing is making a link from E: (SSD/CMD) to E: (HDD/Windows). My take is it’s best to restore your system from your backup and change the drive letter on your Windows drive so that it’s not linked to itself.
Hope it helps.
Bobro says
Hi.. Great instructions…
I did this on windows 7 and it worked fine!
trying this on my windows 8 machine now it all looks like its ready to work no problems along the way but when I boot up windows 8 it comes up and says User Profile Service service failed to load.
Any ideas I have been struggling with this all day! 🙁
I tried linking the C:Users with E:Users (this is the location in windows, I have also tried it with F:Users which is in CMD)
I did a Robocopy of Users from C to F and that worked fine…
end result I want my users directory on my HDD as my SSD is not big and holds windows..
Thanks
I am eager to hear your response
Bobro
platt says
Bobro,
It’d be a lot of help if you can specify the drive letter on both drives in both Windows and CMD environments. If you see step 8, when you create the soft link, you’re supposed to use both drive letters within the Command Prompt. And you also need to make sure that the windows installation drive in command line does not have the same letter as the destination drive does within windows.
Bruce says
So…Do I need to worry about doing this???
I was about to do this… but found something that warns that doing so will break my Win8 System from being able to get updates and patches and even keep it from being able to be upgraded to a newer Windows version in the future!
Microsoft Support Chat Transcript (edited)
Hello, I want to move my user profiles and data to my large (spinner) 1TB Hard Drive (D) so that my smaller 128GB SSD (C:) system drive doesn’t fill up in about a week. Looking online… it seems that this is still not “easy” to do.
Then we stumbled upon this article: http://support.microsoft.com/kb/949977#appliesto
Which says that moving the user files and folders will make it so I can’t update or upgrade my computer – Is that correct?
or… if it’s fine to do without problems… what is the recommended way to do it so that everything works properly?
MS Support Chat: Yes that is correct, it will disable any ability to update and upgrade the system
Wow! that is totally lame. Why would they do that? SSD drives are not large enough yet (affordably) to house user data… and there are other benefits of keeping your data on a separate drive. People have been doing this for a decade. Why doesn’t MS support it well yet? It should just be a click of a setting to move all user data to a specified drive. wow. What can you recommend then?
MS Support Chat: Unfortunately this policy is a requirement of the architecture, the system profiles must be in the same system drive
So what can be done? nothing?
MS Support Chat: You can create folders in the HDD and transfer the info from the users and use the HDD as storage but it will have to be done manually.
What about sites like this that show making a “Link” to the folders on D:, through the default C:?
https://www.itnota.commove-users-directory-to-a-different-drive-in-windows-8/
MS Support Chat: It is deleting the directory from the system drive as well
MS Support Chat: We cannot assure you that will work after performing that change to your OS.
Oh, so it is a no-no. Rats.
MS Support Chat: Yeah I’m afraid so, sorry Bruce
platt says
Hi Bruce,
I can’t advise you against what MS suggested if you don’t feel comfortable with it. I can tell you this based on my experience. I have no issue getting updates from Microsoft. My Windows 8 auto updates functions normally as if my user directory is on the C: drive. As far as upgrading to newer Windows version in the future, that’s very possible it may pose the problem mentioned by MS Support rep. But for my case, it’s not going to be an issue at all as for every upgrade, I always backup my data and perform a clean install instead of installing over the old OS, that way I have a “clean” system for every iteration of the Windows version.
Decide for yourself if you think the benefits outweigh the “potential headache.” If you still want to give it a try, make sure you backup everything and/or take a snapshot of your system. I had to make two attempts before it was successful and I personally thought the benefit was worth the time and effort to do it over. But everyone is different. Hope it helps to give you some perspective on what next step you want to take. 🙂