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).
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
dircommand on each drive by typing:
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.
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.
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.