I enabled AHCI mode for SATA (and virtualisation) in my BIOS and rebooted to Windows 8. This failed, so I switched it back. I realise now that something like this is required to change to AHCI mode.
After switching back I am stuck at the "Please wait" screen forever. This happens after selecting Windows 8 from the graphical boot manager and before the login screen. Sometimes there seems to be a small amount of activity judging by the HDD light and sometimes quite a lot. Even after stopping there are sometimes large bouts of activity later on. I've tried leaving it overnight and throughout the day with no progress seemingly being made. Suspend and resume work properly.
Using various advanced boot options has also made no progress: automatic repair fails, safe mode fails, command prompt succeeds but SFC fails. There is no pending.xml. I've also tried using DISM to remove any pending operations, which fails. I have no system restore point. I've tried automatic repair from the DVD also. I've tried re-enabling AHCI mode after following these instructions.
UPDATE: I have just found that booting straight to the Windows disk (BIOS order) gives an error about \Boot\BCD (code: 0xc000000f) being missing or corrupted. Not convinced this is the case, as normally (via GRUB) the bootmgr is functional. Appears to be boot disk ordering issue, having used bcdboot to force boot files onto the drive, it boots again to "Please wait".
This is a multi-boot machine. The Windows XP installation and Ubuntu still work fine.
I would really prefer not to lose all applications and settings with a refresh install. Is there any way to debug this issue further?
UPDATE: out of desperation - and after several more hours trying fail-safe BIOS settings, DISM variations etc. - I tried the "Refresh your PC" option. It also fails with message "There was a problem refreshing your PC". It appears that Windows 8 provides absolutely no information whatsoever about what is wrong, and none of the supplied tools function properly to recover.
With great relief, I write this from a working Windows 8 installation (first time in more than a year - although adding the bounty was rather badly timed :S). I have lost my third-party apps which will need to be re-installed but most settings other than that are still intact.
In the end it was the Refresh Install from the Windows 8 DVD which got things working. This is strange, because I had already tried it multiple times from both the HD boot menu and the DVD media. Note that:
As to why this worked for me on this occasion: it is not entirely clear. However, I had been using the sfc
and dism
tools again this morning in an attempt to find and repair corrupted system files. The only way I could get access to these tools was to run the Windows 8 DVD and go through to the command prompt from the troubleshooting options. All other methods of repair/reduced functionality boot were non-functional by this point.
Neither of these tools were able to complete successfully. However, sfc
stores its logs in %windir%\Logs\CBS\CBS.log
and here I found references to the cbscore.dll
being corrupted:
CBS Failed to load Core DLL from path: C:\Windows\winsxs\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.2.9200.16613_none_06552205987959ac\cbscore.dll [HRESULT = 0x800700c1 - ERROR_BAD_EXE_FORMAT]
I then found this thread, which mentions the same message and changing the CBS version to an older one in the registry at HKLM\Software\Microsoft\Windows\CurrentVersion\Component Based Servicing\Version
. I did dir /od %windir%\winsxs\*servicingstack*
and found that there was a new version installed with a lower version number around the date that I started to have problems.
I ran regedit
and loaded the offline hive from %windir%\System32\config\software
into a temporary key. I changed both the key name and its value to be the same as the previous version I saw in the directory and unloaded the hive. At this point I retried:
sfc /scannow /offwindir=c:\windows /offbootdir=c:\
It got further but still did not complete successfully. I guessed that if the core of CBS was now functional, dism
might be able to work properly. This page contains some useful information, and I ended up running:
dism /image:c:\ /cleanup-image /restorehealth /scratchdir:c:\windows\temp /loglevel:4
This also made more progress but ultimately failed due to not being able to find files to replace the corruption (the log file can be found at %windir%\Logs\DISM\dism.log
). I did not know about the /source
flag at this stage so perhaps appending /source:x:\sources\winsxs
could have fixed things. Instead I decided to start retrying the automated repair steps from the DVD menus, which has got me to where I am - full boot!
I can't say for sure what finally helped but refresh install previously did not work so something I did this morning got it to work.
I have created a system restore point and plan to install all updates before creating another one. At that point I can retry AHCI mode with the proper preparation and begin re-installing apps.
Having got this working once I foolishly started messing around with my second SATA controller. This also caused an unrecoverable boot failure (although no indefinite Please Wait screen).
This time the fix was substantially easier: I already knew AHCI mode was working, so I left it in this mode and used Start-up Repair from the boot Troubleshoot->Advanced Options menu. Required a couple of reboots before automatic repair started, failed and offered the other options.
Adding this as another potential answer as it is unlikely I tried fixing it in AHCI mode the first time.
This bug/error can be circumvented by simply rotating your screen. Most likely your system is working 100% correct behind the "please wait" screen. What you need is to be able to launch the Task Manager and kill the process responsible.
Do the following steps:
In case the Task Manager launches, but is entirely covered by the gray screen, do this:
User contributions licensed under CC BY-SA 3.0