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.
capture2

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.
2014-05-14_124102

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.
2014-05-14_130315
After that completed, these are the remaining updates for this pass.
2014-05-14_130441
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).
2014-05-14_130725
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.
2014-05-14_133434
After prompt to restart, got the following error on boot though:
2014-05-14_133309
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:
2014-05-14_133720
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)