Archive for the ‘Hyper-V’ Category

Windows 8.1 Hyper-V – Simplified VM Import, and Generation 2 VMs

October 16, 2013

After upgrading my Windows 8 workstation to Windows 8.1, i was eager to try out all the new functionality within Hyper-V in 8.1

Simplified VM Import

The first thing i noticed was that i could easily re-import my VMs, which i had stored on another disk during the migration. While in previous versions you had to properly export a VM before you could import it again, this has gotten a lot easier. Now, you can just import any VM from disk, without it having been exported first.

This is called Simplified Import.

After getting my lab-VMs back in the Hyper-V Management Console, i created a new VM.

Second Generation VM

In this wizard i got the option to create a Generation 1 or a Generation 2 VM:

HYPER-V GEN 2 vm

Here i chose 2nd generation of course:

2nd generation Virtual Machines, providing features like

* UEFI and Secure Boot

* boot from virtual SCSI harddisk or DVD instead of IDE

* PXE boot by using a standard (synthetic) NIC instead of an old  legacy NIC

So the new VM looked like this:

GEN 2 - UEFI BOOT

Notice the Synthetic NIC for PXE Boot, the SCSI bootdisk, and the UEFI BIOS.

This asked for a test installation using SCCM 2012 SP1, using all these features of course 🙂

Booting this machine in UEFI mode caused the PXE boot to look and behave different too:

uefi-pxe-1

Also, no more “Press F12” , but “Press Enter for network boot service”

uefi-pxe-2

Also, a slightly different WDS – PXE screen where the client is contacting the Siteserver to determine applicable client policy:

uefi-pxe-3

Finally we’re in the Task Sequence.

uefi-pxe-5

No keyboard during OSD

What i noticed here, is that i could not use the keyboard.

Keyboard commands were simply not passed on into the VM.

So I could only select the desired Task Sequence using the mouse.  This seems to be a bug.. (link)

I tried disabling the Enhanced Session Mode but that didn’t solve it unfortunately.

Update – This turned out to be a bug indeed: click.
Something with keyboard drivers in WinPE and WinRE. Workaround is to use Windows 8.1-based WinPE

FAST

After selecting the proper OS to install (Generation 2 VMs are only supported when using 64-bit Windows 8 or 8.1, or Server 2012 / 2012 R2) the install started.

And it went FAST!

Where starting ConfigMgr OSD by booting from PXE tended to be quite slow using Hyper-V before, this was as quick as when using bootable media (iso).

Very fast indeed. Downloading the WIM file and applying the OS took no more than 3 minutes…

Installing the ConfigMgr client took 5 minutes.. within a total of 12 minutes the thing was up and running. Nice.

BSOD STOP0x000000d1 bridge.sys Windows 8 Hyper-V

July 23, 2013

I’m running Windows 8 with the Hyper-V Role enabled on my LAB-top.
To connect my VMs to the outside world, i have created two Hyper-V Virtual Switches; one connected to my WiFi adapter, and one connected to the Onboard NIC.
Both connections are bridged, using the “Allow Management operating system to share this network adapter” setting, allowing the Host OS (Windows 8) to also use these interfaces.
vswitches
This worked fine for me the last couple of months, but today i got a BSOD. 😦
Specifically: DRIVER_IRQL_NOT_LESS_OR_EQUAL(d1)
After starting the Crash Analyzer tool, which is part of DaRT (Diagnostics and Recovery Toolset), the cause of the BSOD appeared to be the bridge.sys driver.

bridge.sys

This is the driver that provides the functionality for the network bridging that is done when you enable the “Allow the management OS to share this network adapter” in hyper-v.
It seems I’m not the only one that experienced this issue; Marius Sandbu and Henk hoogendoorn also encountered this, and have provided some workarounds (disable bridging on the WiFi nic)

For now, i will continue using the bridging, unless i get more BSODs…

For what it’s worth; i have been running this setup for 3 months now, and i have used the bridging over WiFi and the onboard NIC quite extensively, but have never had any problems with it.

So my question is; why did this start now? Updates? Patches?

Set Pagefile to other drive fails – Hyper-V

May 29, 2012

Takeaway

Pagefiles in Hyper-V VMs can only be placed on Virtual IDE disks, not on Virtual SCSI disks.

IDE?  SCSI?

A not-so-well-known “feature” within Hyper-V VM’s is the fact that the disk with the boot/OS parttion in a Hyper-V VM always needs to be connected to a Virtual IDE controller.

This has to do with the fact that the IDE Controller is natively supported in Windows, so no special drivers need to be loaded first.

The virtual SCSI controller however, requires a driver which is provided by the Hyper-V Integration Services. This driver is loaded later in the boot sequence, so the OS partition cannot boot from a SCSI virtual disk.

Pagefile

Another thing that is very hard to find, is that the Pagefile (swapfile) in a Windows VM can ONLY be located on a (virtual)  IDE disk.

Or, to be more precise, the Virtual Disk on which the pagefile is located, needs to be attached to a virtual IDE Controller in the properties of the VM.

Usually, this is not a problem, because by default Windows manages the Pagefile size and location by itself, thereby locating it on the systemdrive, which in Hyper-V will allways be attached to an IDE controller.

The Problem

The problem however, comes when you manually want to configure the pagefile to move it to a different partition/disk.

This might be the case when your systemdrive has filled up to a point where you’re in need of more space on it.

If the partition/disk where you want to move your pagefile to is attached to a Virtual SCSI controller, things get messy.

The Windows OS in the VM will not give you any warnings about this, and just tell you to reboot the VM for the changes to take effect.

However, when you reboot the machine, you will find that the pagefile simply has not been created on the SCSI drive.

If you have also set the pagefile to a very small size on the systemdrive, you might get warnings about an incorrectly set pagefile-size.

Workaround

So, what can you do to move the pagefile to another disk/partition in a Hyper-V VM?

Option 1: Add a new IDE disk for the Pagefile

Shut down the VM.

Create a new virtual disk, attached to a virtual IDE Controller.

Size the disk according to your pagefile needs (IE for an 8 GB pagefile, create a 10 GB disk) . I would advise to use a fixed size disk, not an expanding one.

Boot the VM. Initialze the new disk in Disk Management, and create a partition on it.

Now change the pagefile settings, creating a fixed size pagefile on this new disk. Set the pagefile on your system drive to a small one, like 256 MB.

Option 2: Change the SCSI disk to an IDE disk

Another option is to simply modify your Virtual SCSI disk, to connect it to a Virtual IDE Controller.

With this, you basically turn your virtual SCSI disk into a virtual IDE disk

For this, a reboot is also required.

Performance

But wait, doesn’t a Virtual SCSI disk offer MUCH better performance then a virtual IDE disk?

When you use the Integration Components (like every sane Hyper-V user would) then the answer is No, no and no.

Or, as Technet states:

Although the I/O performance of physical SCSI and IDE devices can differ significantly, this is not true for the virtualized SCSI and IDE devices in Hyper-V. Hyper-V.

IDE and SCSI devices both offer equally fast I/O performance when integration services are installed in the guest operating system.

Further Reading:

Technet: Planning for Disks and Storage in Hyper-V

Ben Armstrong: Why Hyper-V cannot boot off SCSI disks (and why you should not care)