If you’re running out of disk space on your C-drive on a Windows XP system (which other OS has a C-drive anyway?) you might be thinking of moving your
C:\Documents and Settings\youruserprofile to another disk. In my case the profile folder was eating away a good 2.5 GB of space. Moving it saved my ass from having to constantly cleanup that drive and end up in trouble in the long run as slowly but surely updates would fill every last available bit anyway.
There’s a procedure from Microsoft that explains how to do this. In short it goes like this:
- Login as Admin
- Copy the desired profile folder to another drive, such as
D:\Documents and Settings\Bob
- Start the registry editor (regedt32.exe) and change all references from the old path to the new one.
This last step is quite a job if you’ve been using the profile for a long time, like myself. I tried this on a test account first and I only had to replace a few references so I thought “Piece of cake! Let’s do this!”. Until I started the same thing for my actual profile and had to replace a gazillion references all over the registry. Bloody hell!
The annoying thing was that even after I replaced all references, some software was still referring to the old profile folder somehow. The bastards! My guess is that some software simply doesn’t expect you to move this folder and has a hard-coded reference built-in. However, there’s a solution for that as well. That solution is also a shortcut to avoid that tedious job of having to change all the registry values, which is bloody boring and prone to errors.
The fix is a tad of Unix magic that also exists for Windows NTFS drives, where you can create a link or virtual folder pointing to a physical folder on another drive. The official name is a “junction point”. For example you can have
C:\Document and Settings\Bob point to
D:\Documents and Settings\Bob, and not a single piece of software will notice that your files aren’t really on the C drive. Sounds pretty neat huh? This only works with NTFS drives, but any modern version of Windows uses that format by default so that shouldn’t be a problem.
So how do you go about this? Well, it goes like this:
- Log in as the administrator user (and not the one you want to move the profile for).
- Copy the profile folder to your preferred location on a drive with plenty of free space.
- Remove the source profile folder (or rename it, just to be safe).
- Create the junction point from the source folder, to the new destination folder, like so:
linkd.exe "c:\documents and settings\bob" "d:\documents and settings\bob"
- Log back in with the moved user. You shouldn’t notice a single problem.
Want more info on that junction point magic? Check out how to create and manipulate NTFS junction points then.
Update: if you’re looking for a similar action on Windows 7 or Vista, check out the mklink command, which is basically the replacement for linkd for the newer Windows versions.
Photo by nickwheeleroz, cc-licensed.