SSDs and Windows 'Users' Directory
Posted on Thu 27 October 2011 in blog
After getting my new SSD installed, I really wanted to get everything setup so
that my data was safe on the 1 TB RAID 1 array. This meant somehow moving the
Users directory from C:\
(the SSD) to D:\
(the RAID).
The two main approaches are:
-
Use an
unattend.xml
file during Windows installation to specify the Users directory. -
Move the Users directory after installation, and create a junction point at the original location to point to the newly located directory. Here, the junction essentially acts as a symbolic link (although symlinks are a different thing in NTFS.)
After reading a ton of forum and blog posts, I decided to follow Marilyn O's advice on this question and decided to go with #2, because it is a single point of change, and should be easily reversible.
Here's how I got it working. C:
is my SSD where Windows is installed, and
D:
is the RAID array to which I'm moving my Users
directory. Your
drives/paths may be different.
-
Install windows as usual. Go ahead and get the OS in a working state.
-
Boot to a command line from the install media. Follow these directions, but on the System Recovery Options dialog, click the last one, Command Prompt.
-
Use robocopy to make an exact copy of
Users
to the new location:
robocopy /mir /xj C:\Users D:\Users
Note that/mir
makes an exact mirror, and/xj
ignores junction points. Make sure to include these options! -
Verify that all the data has been successfully copied. Then, remove the original
Users
directory:
rmdir /s /q C:\Users
You really have to do this. See comment at the end for why. -
There is a junction named
Documents and Settings
(remember him from XP?) that currently points toC:\Users
for compatibility purposes. We need to first remove him:
rd "Documents and Settings"
-
Now, make the new junctions pointing to the new
Users
folder onD:
usingmklink
:
mklink /j C:\Users D:\Users
mklink /j "C:\Documents and Settings" D:\Users
(Yes, Linux users, those arguments are in the opposite order.) -
Reboot and log in to Windows. If you look in
C:
in Windows Explorer, you should see that theUsers
icon now has a shortcut overlay, indicating that it is a junction point:
Go ahead and play with it; files you make in C:\Users
will be there in
D:\Users
. Now granted, this may be a slight performance hit, because we have
moved some important user files (ntuser.dat
for example) onto the slower HDD.
In my opinion though, this is worth it, considering all of my user data is
safe. Additionally, I can back up the entire D:
drive, and not worry about
wasting space backing up Windows too.
Notes:
- I originally just renamed
C:\Users
toold_users
but this caused me to have anotherUsers
directory inC:
when I looked in Windows explorer! Andold_users
was nowhere to be found. But, everything looked okay from the command line. I even copied it, and had the same results. So there must be some trickery going on that causes windows explorer to show it asUsers
. Deleting the directory made everything hunky-dory.