Recently after using Clonezilla to migrate my existing Windows 8 installation from a 1TB hard disk drive to a 256GB SSD, I realized that I could no longer log on to Windows. Despite successful boot up, Windows would just hang at the “Preparing Windows” screen after I entered my account password to log on:
Although I am fully aware that cloing Windows from one hard disk to another (and from one computer to another) using Norton Ghost, Clonezilla or any kinds of partition cloning software is not without challenges, among which the need to reinstall the BCD bootloader and potentially the BOOTMGR blinking cursor of death (see my previous article for details), the fact that Windows simply hung during logging on on rather new to me.
A quick search found nothing helpful, apart from useless standard replies on Microsoft and other OEM forums which suggested scanning the disks for errors, using System Restore, reinstalling Windows or perhaps sending the machine for service just to be able to log on again, which is definitely an overkill for such a small issue. Perhaps these ideas came from the so-called MVPs or forum moderators who have never attempted to reinstall Windows on their machines themselves, let alone troubleshooting such issues.
My first hint came from this post and this post, which implied that the issue was due to a corrupted user profile, and suggested creating a new user account to see if it could work. This is not applicable to my situation as my computer only has a single user account and I could not even log on. Still, knowing that I was on the right track, I researched further and came across a topic on the superuser forum which specified:
“This can happen because the clone OS gave the OS volume a different letter than the original had.”
Different drive letters? This made me think hard. Well, one of my intention of cloning was to make Windows run on the SSD to improve performance, while keeping the original 1TB SATA hard disk to store large data such as downloads. Immediately after the clone, Windows booted up and indicated “Getting Devices Ready” for a few seconds before it prompted me to log on, and hung at the preparing Windows screen. Perhaps Windows was confused by the extra drive, attempted to load the user profile from the original hard drive, and failed there.
The post that I found suggested pressing Ctrl-Alt-Del to show the Task Manager, starting regedit from the Run menu and editing the registry entries stored in DosDevices under HKEY_LOCAL_MACHINE to restore the original drive letter. In my case, I could not start the Registry Editor simply because Task Manager did not show up, so perhaps an alternative like Registry Editor PE from the Hiren Boot CD could be used to edit the registry instead.
However, as I had some time at hand, I decided to verify the theory and performed the clone process again, with only the SSD connected until at least after Windows had succeeded to log in for the first time, just to see if the additional hard drive was the issue. And guess what, Windows could boot up immediately after cloning and log on without issue. From there on, adding additional drives was a breeze – they would no longer cause the system drive letter to change or Windows to hang at logon.
So my conclusion was that Windows was confused by the additional drive during during the “Getting Devices Ready” stage at the first start-up after cloning and assigned the wrong drive letter to the primary system drive. This caused Windows to fail to log on, because other parts of the system still expected things to be at C:. If you are going to attempt the same thing as me, make sure no extra drives are added to the system until after the first successful bootup. You can always connect them once the clone is confirmed to be successful. This is to save precious time troubleshooting as I wasted almost a day figuring out why!
Unfortunately I did not have the time to really test if changing the entries at DosDevices would allow Windows to log on again. Feel free to leave a comment here if you managed to get Windows to log on again, either by changing the values or simply by removing all the entries, as they would usually be recreated upon the next system reboot.