I am consistently getting a bugcheck 0x109 on a 2012 R2 evaluation install on my Windows 8.1 x64 Hyper-V client.
Microsoft’s KB points a finger at VMWare in their KB article and says to create a CPUID mask, however, I’m not using VMware.
Category: Hyper-V
Hyper-V: Synthetic SCSI Controller Error When Booting from ISO
Forgive my ignorance, but this just pissed me off. I downloaded Server 2012 R2 from TechNet. I created myself a nice Hyper-V guest VM on my Windows 8.1 x64 system. I then spent a good 30 minutes researching what the $@#! this error message meant when trying to power my VM on after attaching the downloaded ISO to it. I read everything from a permissions problem, path length problem, etc. I found the answer. Finally.
The Solution
First, I have a question. Why is this a solution? What is it that is so special about this that makes it work!? Is it a file stream or something?
Ok – the solution. Are you ready? Seriously?
Make a copy of the ISO and mount that ISO to the VM’s DVD drive.
*facepalm*
Windows Server 2012 R2 RTM (CRITICAL_STRUCTURE_CORRUPTION)
Receiving a BSOD on a Windows Server 2012 RTM fresh install processing updates. This is a Hyper-V VM.
Windbg Analysis
0: kd> .bugcheck Bugcheck code 00000109 Arguments a3a01f58`921465fa b3b72bde`e4946739 00000000`000001a0 00000000`00000007
0: kd> !analyze -v ******************************************************************************* * * * Bugcheck Analysis * * * ******************************************************************************* CRITICAL_STRUCTURE_CORRUPTION (109) This bugcheck is generated when the kernel detects that critical kernel code or data have been corrupted. There are generally three causes for a corruption: 1) A driver has inadvertently or deliberately modified critical kernel code or data. See http://www.microsoft.com/whdc/driver/kernel/64bitPatching.mspx 2) A developer attempted to set a normal kernel breakpoint using a kernel debugger that was not attached when the system was booted. Normal breakpoints, bp, can only be set if the debugger is attached at boot time. Hardware breakpoints, ba, can be set at any time. 3) A hardware corruption occurred, e.g. failing RAM holding kernel code or data. Arguments: Arg1: a3a01f58921465fa, Reserved Arg2: b3b72bdee4946739, Reserved Arg3: 00000000000001a0, Failure type dependent information Arg4: 0000000000000007, Type of corrupted region, can be 0 : A generic data region 1 : Modification of a function or .pdata 2 : A processor IDT 3 : A processor GDT 4 : Type 1 process list corruption 5 : Type 2 process list corruption 6 : Debug routine modification 7 : Critical MSR modification Debugging Details: ------------------ PG_MISMATCH: 40000 DEFAULT_BUCKET_ID: WIN8_DRIVER_FAULT BUGCHECK_STR: 0x109 PROCESS_NAME: mscorsvw.exe CURRENT_IRQL: 2 ANALYSIS_VERSION: 6.3.9600.17029 (debuggers(dbg).140219-1702) amd64fre DPC_STACK_BASE: FFFFF80049477FB0 STACK_TEXT: fffff800`494778a8 00000000`00000000 : 00000000`00000109 a3a01f58`921465fa b3b72bde`e4946739 00000000`000001a0 : nt!KeBugCheckEx STACK_COMMAND: kb SYMBOL_NAME: ANALYSIS_INCONCLUSIVE FOLLOWUP_NAME: MachineOwner MODULE_NAME: Unknown_Module IMAGE_NAME: Unknown_Image DEBUG_FLR_IMAGE_TIMESTAMP: 0 IMAGE_VERSION: BUCKET_ID: BAD_STACK FAILURE_BUCKET_ID: BAD_STACK ANALYSIS_SOURCE: KM FAILURE_ID_HASH_STRING: km:bad_stack FAILURE_ID_HASH: {75814664-faf6-4b70-bbc7-dc592132ecdd} Followup: MachineOwner ---------
Update 1: Applying Security Updates
I decided to apply just Security Updates right now. So far so good.
After that completed, these are the remaining updates for this pass.
I will install these on a one-by-one basis.
Interestingly enough, that first update (685KB) failed install; re-checked for updates and there was only one update (9.6MB) so I assume it to have been a roll-up? Anyway it installed fine.
Now, I re-checked updates and I have a Windows 2012 R2 Update (~800MB).
Working on installing this now.
That update installed, ran check and found additional updates; those installed as well.
One last update remains, 97MB and it installed and rebooted seemingly OK.
After prompt to restart, got the following error on boot though:
Booted back into Windows OK but I see the update did not install.
This update is the Windows RT 8.1, Windows 8.1, and Windows Server 2012 R2 update rollup: May 2014
Prerequisite indicates KB2919355.
Checking system for KB2919355 shows I have it:
Re-attempting to install this update.
Resolution
All updates installed, however, still getting a Bugcheck code of 0x109 randomly.
Disk2VHD: Create a virtual disk of live system
Another great tool from Mark Russinovich at SysInternals called Disk2VHD I just discovered.
Disk2vhd is a utility that creates VHD (Virtual Hard Disk – Microsoft’s Virtual Machine disk format) versions of physical disks for use in Microsoft Virtual PC or Microsoft Hyper-V virtual machines (VMs). The difference between Disk2vhd and other physical-to-virtual tools is that you can run Disk2vhd on a system that’s online. Disk2vhd uses Windows’ Volume Snapshot capability, introduced in Windows XP, to create consistent point-in-time snapshots of the volumes you want to include in a conversion. You can even have Disk2vhd create the VHDs on local volumes, even ones being converted (though performance is better when the VHD is on a disk different than ones being converted).
After creating a VHD, you can create a virtual machine and attach your VHD. Very slick. Especially since the fact you can run this on a live system!
Official Site
Direct Download (Official Site)