...a highly questionable method that works... or at least worked once for me.
I'm going to give smaller disclaimers a few times, but let me start out with a comprehensive one: I am not an expert in Windows, nor do I really do PC system administration for a living, nor did I hear from anyone else that this idea was OK. Also, I did it just last night, and if I set myself up the [time]bomb, I won't know for a while. Also, for all I know, it could only work this way on certain combinations of hardware. Absolutely do a disk image backup before trying this, and absolutely do not try this with a machine that you need to have working tomorrow or your kid won't get his life-saving medication. In fact, it is my recommendation that you don't do this at all. That said, I'll tell you what I did to move a fully functional Windows 7 system hard drive from a 2-year-old Dell Latitude laptop to a 1-month-old Dell Studio XPS desktop.
If you find yourself reading this, you probably already know that Windows 7 has no straightforward "Repair Install" option of the type you could use on Windows XP to move a hard drive to a system with completely different hardware. According to what I've read, people often would do this when replacing motherboards. You've probably also been annoyed to find out that the Windows 7 install disk, and the Vista and Windows 7 resources you find via Google search, tend to be obtuse about the reasons people would want to do such things: they assume you can successfully log into Windows at all on the relevant machine, but you still need to "repair" your installation. You boot up the Windows installation disk, tell it you want to "Upgrade" your existing installation (the method of "Repair Install" that everybody recommends), and it tells you to remove the disk, shut down, boot up Windows, and stick the disk into the drive again after you're in Windows. Well, when you've moved your system disk to a system that has a completely different motherboard, that's not really an option. Usually, you get a fatal error and an infinite reboot cycle. But by all means, if you can get into Windows on your relevant system, and you still need to do a Repair Install, follow the instructions at the sevenforums.com link; don't do what I did.
To make this work, you need to have access to the old, working system (the "source" system). So this may not work for a lot of motherboard replacements, especially if the old one is burnt out or you didn't find out the system didn't boot until the whole rebuild was done, and you don't want to undo everything and start over. But if you're just trying to clone an existing system so you don't have to go through the weeks-long process of reinstalling all your software and redoing all your miscellaneous config settings, or if you're trying to move a system from any old (working) hardware to any new hardware, this might work for you.
So without any further ado, here's what you do:
1. Boot up your working (old) system, using the hard drive that belongs in the new system as your system drive.
2. Begin the "Repair Install" process as described in the sevenforums.com link. Go about the beginning of the Upgrade process as if you were Repair Installing to your old system.
3. When the Windows installer tries to reboot for the first time -- a few minutes after it has said "That's all the information we need right now" -- forcibly TURN OFF your computer* in the few seconds after the installer OS has unloaded and before the installer OS loads up again. I believe the first reboot attempt happens after it's done with the "Expanding files" step, but I'm not 100% sure (please tell me if I'm wrong). Just make sure the system is at least in your peripheral vision while the installation is happening, so that you'll see when the monitor goes blank.
4. Move your hard drive to the new system. I also put the installation disk into the DVD drive, but I doubt that was necessary.
5. Boot up the new system, making sure that it boots to your hard drive, not the installation disk. If you have a choice on your bootloader screen, choose the entry that says something like "Windows 7 Setup", not the one that says something about "Rollback".
6. Let the installer do its thing. In my case, it seemed like the installer took a while longer than it has usually taken for me, but then, I usually am not running an Upgrade, but a new installation, so this could be normal.
The process itself is a lot simpler than explaining why you would want to do it. Basically, it's the Repair Install process, but with the hard drive moved to the new system partway through, after the installation files have been prepared on the system drive. My guess is that all of the assigning of low-level hardware drivers -- the stuff that makes it impossible to move the system hard drive without any hassles -- simply happens later in the installation process.
If you're still reading, be sure that you have a good reason for wanting to do this. I did it because I had spent many hours installing development tools onto my new SSD drive. I decided I wanted that drive in my new desktop, and I didn't want to reinstall everything. And because this machine wasn't one of my two "main" computers, I didn't feel like I was risking much. Even so, I made sure to take a Windows Home Server backup before beginning the process, just in case I wanted to get that experimental system back.
I cannot stress these things enough:
- Don't do this if you don't feel like you know what you're doing.
- Don't ever do this with a system drive that you're relying on for anything important, unless you're 100% confident you can restore it quickly. Even so, I probably wouldn't do it.
- I don't know whether this would work for other people's hardware.
- I'm not really recommending you do this at all, and even if I were, you shouldn't think of me as an authority, as I'm just a guy on the internet.
For anyone who heard me telling everybody a couple weeks ago about how Windows 7 was awesome because it lets you just move a hard drive from one machine to another, and just figures it out: consider this a revision to that. I had seen two cases where Windows 7 installations seamlessly figured out new hardware: 1) a VHD-based Windows 7 system had zero difficulty moving from running in VirtualPC to having that VHD file running on native hardware as a bootable VHD. It may seem counterintuitive to some, but as far as the OS is concerned, this is one case of moving seamlessly between "hardware" setups. 2) When I moved a hard drive from a Latitude 820 to a Latitude 830 and back, Windows 7 had no problem with it. If this sounds like nothing: I had tried to do the same thing, between the same two specific laptops, with XP system drives in the past, and they crashed hard.
* usually works by holding down the power button, but if you didn't already know how to force your PC to turn off, as opposed to turning it off via "shutdown", you shouldn't be doing this.