I've never had this problem before, but then today was the first time I had restored a disk partition image from another partition on the same disk. I could not login (it was giving me an error about my paging file being absent or too small - which shouldn't matter because Windows can and should create a new one automatically). I tried a lot of things, including running FIXBOOT and FIXMBR from the recovery console. I also ran CHKDSK, which did fix a few important errors, but it wasn't until I followed these instructions down through step 6, then after hive is loaded, delete all entries in the HKLMSYSTEMMountedDevices registry key (except for default), then reboot. Windows will rebuild the key automatically at next startup. The rest of the steps aren't necessary.
2. Boot to some kind of CD-ROM or USB based live OS that has a tool to edit the registry. You can use Bart PE or Ultimate Boot CD. I actually used the "Offline NT Password & Registry Editor" tool on the UBCD4WIN.
3. Load the %systemroot%system32configSYSTEM registry hive and delete everything in the HKLMSYSTEMMountedDevices registry key
Additionally, sometimes I have also had to edit the registry key for Windows' userinit.exe settings in order for my log in to work. These instructions are helpful. In a nutshell, edit HKLMSoftwareMicrosoftWindows NTCurrent VersionWinlogonUserinit so that it is just "userinit.exe" instead of "C:WINNTsystem32userinit.exe" (without the quotes in both cases). (I think even changing it to just "userinit" will work too.)