Because we don’t all have six servers lying around!

I’m Dave Northey from Microsoft in Ireland and have recently joined the Windows Server and System Center (WSSC), Customer Architecture and Technology (CAT) team. I used to blog as the Irish IT Professional, but will be posting here from now on.

I’ve been the consultant and the technical pre-sales guy – and I know that learning new stuff is what keeps us on our toes, what keeps us ahead of the curve and what keeps us valuable. I also know that we haven’t got a bunch of servers just lying around ready for us to build our demos on and to learn.

But we’ve all got a laptop or two – and if we were involved in their purchase, they’re probably pretty good ones.

So, for the next while I’m going to be explaining how we can “play” with new stuff on our existing laptops…

Note: This is NOT best practice deployment advice. This is “notes from the field”. This is how to get by with what we have.

In this post I’m going to help you get your laptop dual booting to Windows Server AND give you the ability to reset it back to a known state whenever you need or want to. Subsequent posts will go into configuring Hyper-V networking, building clusters and deploying and configuring System Center.

Where to start?

If you’re running 64-bit Windows 8, you could enable Hyper-V and start there.

Control Panel, Programs and Features, Turn Windows features on or off

Depending on what you want to learn, or what you need to demo, that could be enough. You won’t be able to play with any of the server Hyper-V features, to do Live Migrations, have System Centre Virtual Machine Manager do its thing or build your own Private Cloud – but it is an option.

There is a better one – and that is to dual boot into Windows Server. And there’s a really neat way to configure that to let you “go back in time”, to let you reset your demos and have the option to start again each time you boot.

Boot from VHD (with Differencing Disks)

We have had the ability to boot a system from a Virtual Hard Disk (VHD) file since Windows 7, but I’m surprised by its lack of use – it really is clever as it gives a physical machine most of the benefits of a virtual one. There’s lots of info online about how to do this, but here’s how I do it:

1. Creating the parent VHD and dual boot

We only have to do this once, and it is interesting to install a new Windows Server operating system just to see what’s changed (honest). Boot your laptop from the Windows Server installation media (DVD or USB) and take Windows Setup as far as where it’s asking you where to install to – and hit Shift + F10 (this brings up an Administrator Command Prompt).

Enter diskpart to start the disk partitioning utility

Create a new 20GB dynamic VHD file by typing

create vdisk file=d:\parent.vhd type=expandable maximum=20480

And attach it to your system by typing

select vdisk file=d:\parent.vhd

attach vdisk

Now go back to Windows Setup and click Refresh. Select the 20GB, Unallocated drive and click Next (ignore any warnings). Windows Server will install and configure itself to be the default in your dual boot options.

2. BCDEDIT and hypervisorlaunchtype

The next step is to get your Windows Server installation to a state where you’re happy to “go back to” – install all your updates, enable all the roles and features you want. You will stumble across this “feature”: Hyper-V won’t start! To enable it, go into an elevated command prompt and type

bcdedit /set {default} hypervisorlaunchtype auto

While you’re editing the Boot Configuration Database, you may as well rename your new Parent VHD entry

bcdedit /set {default} description “Windows Server from VHD – Parent”

3. Creating Differencing Disks and “going back in time”

To do this step, you need to go back to your physical installation of Windows Client. Open an elevated command prompt and enter diskpart

Create a differencing VHD file with your Windows Server system as its parent

create vdisk file=c:\child.vhd parent=c:\parent.vhd

Next configure your system to boot from it. If you’re following along, type

bcdedit /copy {default} /d “Windows Server from Differencing Disk”

** Copy and paste the GUID that bcdedit returns and use it as newguid **

You can create as many differencing disks as you like – but DON’T make any changes to the parent (or the whole chain will break). To reset your laptop, boot into your physical installation of Windows Client and simply delete and recreate your differencing disk.