Save yourself - literally!

GRoston

New member
Power User
VIP
Local time
11:51 AM
Messages
374
Yesterday sucked.

On Friday, I had two random BSODs. On Saturday, I figured I'd try to fix the problem. Based on my reading here, it seemed that I should check and update my device drivers. I ran into a major issue with ATI Catalyst. Basically, it got wedged - could not uninstall the old or install a new. No problem I figured, I'll let System Restore save my butt, but no such luck.

I then followed advice given and was able to uninstall the old ATI Catalyst driver, but could still not install the new one (or for that matter, the old one either). I then tried a repair restore, and that did not help either. Finally, I wound up reinstalling the entire computer. After 16 hours of work, I'm back (I think) to where I started. (Why so much time? - because of the large number of programs installed on this machine.)

The reason for this post is not to whine, but rather to share two insights and provide a brief tutorial which may help you avoid wasting time.

Insight #1: Before you do anything to your computer which has the potential to cause problem, create a restore point. Next, before doing anything else, restore your system from that restore point! If the restore works, then you are on your way. If not, stop everything until you get the restore working. There is no reason to work without a safety net.

Insight #2: Put all of your user files, database files, etc. (even your inetpub folder, see here and here for details) on a separate drive. Why? Quite simply this - when you reformat your c drive to reinstall the OS, your user folder remain completely, yes completely, untouched. When you reinstall your applications, many of them will revert to the same state as before the rebuild, and this is a huge time saver.

Tutorial on moving the c:\users folder to another drive

Two introductory comments:

  1. The word 'partition' can be substituted for 'drive'. However, drives are so cheap, that unless you have a notebook computer, buy a second drive. It is the cheapest insurance you can get.
  2. The information presented here sources primarily from this blog posting. I have made a number of small modifications and clarifications.
Step 1: From Windows Explorer, right click on the existing c: drive and the new drive to which \users is to be moved and give both of them meaningful labels. For the purpose of this tutorial, we will assume the disks are labeled OldDisk (the c: disk) and NewDisk. This will help later on. Also, note the drive letter of the drive to which you want to move the c:\users partition. We will refer to this drive as <WinNewDisk>.

Step 2: Using your Windows installation disk, boot to a command prompt. See here for details.

Step 3: Methodically visit each possible drive in your system, using <x>:, where <x> is a drive letter, until you find

  • the disk labeled OldDisk, note its drive letter. We will refer to this drive as <BootOldDisk>.
  • the disk labeled NewDisk, note its drive letter. We will refer to this drive as <BootNewDisk>.
Before moving one - why all of this hunting? For two reasons: First, Windows 7 creates a protected partition, thus c: at run time is typically not c: from the command prompt; and second, the order in which drives appear under Windows can be changed and may not match the order in which they appear under the command prompt.

Step 4: Copy the files to the new disk:

robocopy <BootOldDisk>:\Users <BootNewDisk>:\Users /E /COPYALL /IS /XJ /R:n

Some comments:

  1. Robocopy does not have (at least I could not find) a silent mode - it spews everything to the screen. Redirecting the output to a file will greatly speed things up. This leads to the last switch - the value, n, is the number of retries for a failed copy. The default is one million! If you are redirecting, set this to 0 and look at the output. If you are watching the screen, set this to 1 - there is a 30 second waiting period so you'll be able to see where the problem is.
  2. If you are copying to a new hard drive, the /IS switch is not needed. However, if you are doing a reinstall, you should use this switch - it tell robocopy to include same files.
Step 5: (optional) Boot to Windows and make sure everything copied the way you want. When done, repeat Step 2.

Step 6: This is where the real work gets done. Basically, we remove two existing junctions (hard links in Linux-ese) and create two new ones.
rmdir /S /Q <BootOldDisk>:\Users
rmdir "<BootOldDisk>:\Documents and Settings"
mklink /J
<BootOldDisk>:\Users <WinNewDisk>:\Users
mklink /J "
<BootOldDisk>:\Documents and Settings" <WinNewDisk>:\Users
The keys are realizing the the drive letter of the boot disk in command prompt mode is irrelevant and that the drive letter which need to be linked is the actual letter which appears under Windows.

Reboot, and you're in business!

So, hopefully you will learn from my experience and move your c:\users folder to a different drive. The process is simple and straight-forward.

One cautionary note; If you try to do an recover reinstall, things will get hosed as Windows will copy all of the files back to the c: drive. But, at least this is a start - Unix has had this capability, out-of-the-box for 25+ years, guess it just take MS time to figure these things out.
 

My Computer

Computer type
PC/Desktop
OS
Windows 7 x64 Pro
CPU
Core i7 860 @ 3.8 GHz
Motherboard
MSI P55-GD80
Memory
16 GB F3-12800CL7D (DDR3 1600 7-7-7-24)
Graphics Card(s)
Sapphire Vapor-X 100283VXL Radeon HD 5770
Monitor(s) Displays
NEC LCD3090WQXi-BK
Moving the folders around is something I'd never do. Its unnecessary. All you need is to create a system image from 7's built in backup tool and use that. As for BSOD's, are you sure it wasn't hardware rather than software?
 

My Computer

Computer Manufacturer/Model Number
Sony Vaio Z46GDU
OS
Windows 7 Ultimate x86-64
CPU
[email protected] 1066MHz FSB
Motherboard
Sony branded
Memory
6GB DDR3 1066MHz
Graphics Card(s)
9300M GS 256MB Dedicated (Speed) + Intel4500MHD (Stamina)
Sound Card
Realtek HD Audio
Monitor(s) Displays
13.1' WXGA
Screen Resolution
1600x900
Hard Drives
320GB 7200RPM w/ 16MB cache
Internet Speed
1MB/s
Frostmourne,

I respectfully disagree! How often do you make a system image? On rare occasion I'd imagine.

Furthermore, the notion of separating data from programs is something that most of us practice - it is why, IMHO, that ASP.NET is superior to PHP. It seems that MS has been so backwards in their practice that many of us have bought into this bad practice. Time to break bad old habits!
 

My Computer

Computer type
PC/Desktop
OS
Windows 7 x64 Pro
CPU
Core i7 860 @ 3.8 GHz
Motherboard
MSI P55-GD80
Memory
16 GB F3-12800CL7D (DDR3 1600 7-7-7-24)
Graphics Card(s)
Sapphire Vapor-X 100283VXL Radeon HD 5770
Monitor(s) Displays
NEC LCD3090WQXi-BK
Frostmourne,

I respectfully disagree! How often do you make a system image? On rare occasion I'd imagine.

Furthermore, the notion of separating data from programs is something that most of us practice - it is why, IMHO, that ASP.NET is superior to PHP. It seems that MS has been so backwards in their practice that many of us have bought into this bad practice. Time to break bad old habits!

I image weekly, and backup weekly. 2 important PC's, gaming PC monthly. I have never shifted folders and never will.
 

My Computer

Computer Manufacturer/Model Number
Sony Vaio Z46GDU
OS
Windows 7 Ultimate x86-64
CPU
[email protected] 1066MHz FSB
Motherboard
Sony branded
Memory
6GB DDR3 1066MHz
Graphics Card(s)
9300M GS 256MB Dedicated (Speed) + Intel4500MHD (Stamina)
Sound Card
Realtek HD Audio
Monitor(s) Displays
13.1' WXGA
Screen Resolution
1600x900
Hard Drives
320GB 7200RPM w/ 16MB cache
Internet Speed
1MB/s
I dont do either. i dont have anything important enough to take the time to backup.
 

My Computer

Computer Manufacturer/Model Number
Asus G73JH-A2
OS
Windows 7 Ultimate x64
CPU
Intel Core i7 720QM
Memory
8GB factory installed
Graphics Card(s)
ATI Mobility Radeon 5870 W/ Flashed VBIOS to fix GSOD
Screen Resolution
1920x1080
Hard Drives
1 500GB 1 250GB
Keyboard
G15
Mouse
G9x
Internet Speed
Rogers extreme/Bell fibe25 depending on where I am.
Frostmourne,

I back up every two hours - seriously! I also have a copy of all of my important business files on my laptop. I also image every month or so. And, even with all of that, not having to rebuild the users partition is a huge time saver. I guess we will just have to disagree.
 

My Computer

Computer type
PC/Desktop
OS
Windows 7 x64 Pro
CPU
Core i7 860 @ 3.8 GHz
Motherboard
MSI P55-GD80
Memory
16 GB F3-12800CL7D (DDR3 1600 7-7-7-24)
Graphics Card(s)
Sapphire Vapor-X 100283VXL Radeon HD 5770
Monitor(s) Displays
NEC LCD3090WQXi-BK
Frostmourne,

I back up every two hours - seriously! I also have a copy of all of my important business files on my laptop. I also image every month or so. And, even with all of that, not having to rebuild the users partition is a huge time saver. I guess we will just have to disagree.

Whatever suits you. My method has not failed yet, and neither has yours.
 

My Computer

Computer Manufacturer/Model Number
Sony Vaio Z46GDU
OS
Windows 7 Ultimate x86-64
CPU
[email protected] 1066MHz FSB
Motherboard
Sony branded
Memory
6GB DDR3 1066MHz
Graphics Card(s)
9300M GS 256MB Dedicated (Speed) + Intel4500MHD (Stamina)
Sound Card
Realtek HD Audio
Monitor(s) Displays
13.1' WXGA
Screen Resolution
1600x900
Hard Drives
320GB 7200RPM w/ 16MB cache
Internet Speed
1MB/s
Both postions are valid. If you image daily, there may not be a big need for a seperate data partition. There is, however, an advantage even with imaging. With the OS and the data seperated, you can schedule or trigger the imaging of those partitions at different intervals. No need to image the system frequently if you do not change anything and the same goes for the data. Plus the respective images are a lot smaller. I can image my data partition in less than 3 minutes (full image since I do not like differentials).
And should you really decide to reinstall (which I sometimes do with an "aging" system), a seperate data partition is a real advantage - especially with Win7 where you can easily include your folders into the library.
 

My Computer

Computer Manufacturer/Model Number
HP, Dell, Gateway, Toshiba - 4 laptops and 2 desktops
OS
Vista, Windows7, Mint Mate, Zorin, Windows 8
CPU
from 1.6GHz Duo to i7
Monitor(s) Displays
2x HP w2207
Hard Drives
5x HDD, 7x SSD, 12x Externals
Keyboard
with trackball - no mices
Mouse
Trackball mice
Internet Speed
DSL 6000
Just a follow-up: I am not 100% certain that the notion of using the same set of \users files from a previous build works properly. While I have no concrete evidence that this is a problem, I did experience several problems and wound up re-installing (again!) this past weekend.

One of the odd behaviors was that the user's registry file was deleted when a system restore was performed. There were some other peculiarities as well. So, two comments:

  1. Use this idea with caution
  2. MS - get with it and break the hard tie to the underlying hardware! The li/unix abstracted file system is vastly superior and has been around at least as long as MS. Get with it!
Regarding the discussion of moving c:\users to another partition. I still think this is a good idea. However, if you use robocopy to move your files, be sure to log the output and reconstruct all junctions which are not copied.
 

My Computer

Computer type
PC/Desktop
OS
Windows 7 x64 Pro
CPU
Core i7 860 @ 3.8 GHz
Motherboard
MSI P55-GD80
Memory
16 GB F3-12800CL7D (DDR3 1600 7-7-7-24)
Graphics Card(s)
Sapphire Vapor-X 100283VXL Radeon HD 5770
Monitor(s) Displays
NEC LCD3090WQXi-BK
Back
Top