Alright. Let me first give you a disclaimer - this can either go very well and painlessly (as described in the guide), or it could take up a whole day (what happened to me).
First, follow this guide.
I had this link open in one of my tabs in Google Chrome for months, while I pondered whether I needed to do it or not. My OS SSD had been running low on space (hovering around at less than 1GB of free space). Then, this morning, it went down to 400+MB, and that was when I decided to take the plunge. As I had suspected, things would not go without a hitch, and I was soon to remember the nightmare I had gone through years ago when I first tried to re-install Windows after it had crashed on me.
The first problem surfaced when I tried to do the robocopy command to copy my Users folder from the E: drive (C: drive when in Windows, but E: drive when in the repair console) to the D: drive (E: drive when in Windows, but D: drive when in the repair console). First, I got errors when 11 files could not be copied over. It would actually hang on the first file that gave an error (Access is Denied) and would wait 30 seconds before retrying. This, it would do 1 million times before moving on. As you can imagine, I soon ran out of patience, so I killed the command (good thing the command could be re-run with no problem). Then, I added the switches /r:1 (only retry one time), /w:1 (only wait one second before retrying), /log:D:\robocopy.log (output results to a log file so I can keep track of the files that failed to copy over), and /tee (also output results to the screen while executing; otherwise the results are only written to the log file, and I have no idea of the progress). You can check out the entire syntax here.
If you will notice, by this point, I had already deviated from the guide, which assumes that no files fail to copy over. It was now up to me whether I should proceed (at my own risk), or turn back and go back to the way things were. Being as adventurous as I was (and also having verified that the failed file copies - .Xauthority, .nx files, and .ssh files - were not critical files), I decided to proceed, after taking a small detour. I would log back into Windows one last time, and manually copy those files over (which was successful).
At this point, I was feeling pretty slick and confident. I felt that I was doing ok, and was back on track. So, I proceeded with the next step. That would be the beginning of my nightmare. As I tried to delete the old Users folder (on E: drive in the repair console), it would not delete those same files that it could not copy. Now, I was hosed. I could not log back into the computer, because the other files in the Users folder had been deleted. I could not proceed with the rest of the steps, because I could not create a junction link using the name Users when the Users folder had not been successfully deleted, because it wasn't empty, because those few files could not be deleted.
I decided I would robocopy back the files in an effort to go back a step. So I robocopied from D:\Users to E:\Users. Then, I logged back into Windows, for one last time (wait, didn't I say this already), and manually deleted those pesky, troublesome files. By now, I didn't care if they got copied over fine. I wanted to get this over with. Having successfully deleted those files (after getting some confirmation messages, asking if I was sure, because as it turns out, those files were being shared, for unknown reasons), I then went back into the repair console, and successfully removed the E:\Users folder. Then, I created a junction link in E:\Users to D:\Users.
Now, I was ready to roll! I restarted the computer, and was all happy, except I couldn't log in. Whenever I tried, I got a "The User Profile Service failed the logon. User profile cannot be loaded." error message. After some futile struggling, I restarted in Safe Mode.
In Safe Mode, though I was able to log in (automatically logged me in), I had a handful of other issues. First thing I noticed, was that the junction link I created didn't actually do anything, because, and you would never guess this, while E:\ was the drive letter of C:\ in the repair console, and D:\ was the drive letter of E:\ in the repair console, D:\ was now E:\, and so my junction link from E:\ (now C:\) to D:\ (now E:\) did not find the non-existent D:\ (actually D:\ was mapped to the optical drive). So, I opened up Disk Management, by right-clicking on my user name, and selecting "Manage", and changed D:\ (the optical drive) to E:\, and E:\ (the drive holding my Users folder) to D:\. I then restarted the computer, and nothing changed. Still couldn't log in. As it turned out, the junction link will only use the original drive letters specified as opposed to the actual drive. Therefore, I went into the repair console, deleted the link (rmdir E:\Users), and re-created the link (using the same command; this step was actually unnecessary). Then I tried restarting the computer. No dice. Same error.
So, back to Safe Mode. After some digging, I saw that at least now I could double-click the Users folder in C:\ and it would go to D:\. However, the User Profile Service was messed up. Probably because the User Profile Service was messed up, I could not access/change my UAC settings. I could not easily create a new user from the Control Panel. I could not even access regedit or cmd (command prompt), from Safe Mode, which was really weird. At any rate, what I needed to do was impossible. I needed to fix registry settings from regedit, which I couldn't access in Safe Mode.
Eventually, I stumbled upon the following solution: I would go into the repair console, launch the command prompt, load the registry hive into the command prompt, and fix the user profile. Here are the details:
The particular registry hive to access: HKEY_LOCAL_MACHINE\Software = E:\Windows\System32\Config\Software (from the repair console)
The particular key to look for: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList
How to load a registry hive so that it can be edited: from the command prompt in the repair console, run REG LOAD HKLM\tempsoft E:\Windows\System32\Config\Software; then run regedit; then search for the HKLM_LOCAL_MACHINE\tempsoft\Microsoft\Windows NT\CurrentVersion\ProfileList (or a similar path), and follow this guide or this guide - to fix the error. Finally, close regedit, and run REG UNLOAD HKLM\tempsoft (not sure if the last step is necessary).
And now everything works. The light came at the end of the tunnel. Not very happy with Windows. Glad I got things fixed in the end. Thanks to the resources online.
Another error I encountered, but don't know if the fix is necessary, was that I got a "C:\Windows\System32\Config\SystemProfile\Desktop refers to a location that is unavailable" error. To fix that, just copy from C:\Users\Default\Desktop into that directory.
A few other useless resources:
Written on October 13, 2013