I’m going to try a workflow that involves running from a system contained in a VHD file rather than directly installed to a hard disk. This isn’t just to try out new versions like Windows 10, but as a normal practice. Here are a few of the things driving me to try this.
The main one is the idea of having a clean system at all times. Maintaining a clean system is hard, because you install stuff in order to get work done, and then in a few months you have a mess. My hope is that with a VHD-based system, I can set aside milestone VHDs that I can revert to when I want a clean system again. That’s the main workflow I’ll be exploring: install clean OS, install my tools, make snapshot, work for a while, then want to alter the base version, so revert to it, install new tools, make a snapshot, etc. Hard disks are now fast enough that making a snapshot is a matter of seconds to minutes, based on how big you keep your operating system partition.
Another is being able to switch between versions of the operating system. I may prefer a specific version of Windows as a user, but there are a lot of users out there with different preferences, and I need to make sure my software works on their Windows version as well. Or I may want to write software for a bleeding edge version that I don’t want to live in day-by-day yet.
And then finally, if I’m semi-frequently wiping my operating system partition, I’ll have to learn to keep my user data off the operating system partition. I already work this way - I don’t put my own stuff into my User folder, but separate folders like “projects”.
This is not a set of instructions at the moment, it’s a record of actions.
Grab Windows 10 Technical Preview
Grab it from here - for now, this is going to be final soon.
Create a VHD
Using Disk Management console
mmc diskmgmt.msc from the command-line or launch Computer Management from Administrative tools or directly via Manage Computer. Or use DiskPart.
Action: Create VHD. Dynamically expanding VHDs have a slight performance overhead and aren’t appropriate in certain scenarios (like, for example, booting from it).
This will create an uninitialized disk, so initialize it, either as MBR or GPT. Either is a fine choice for modern systems. I do GPT.
MBR versus GPT
Use MBR if you’re going to boot from this on a non-UEFI system, or if it’s a small disk, otherwise use GPT. In reality, use MBR for “small” disks (say under 500 GB) and use GPT for larger ones. GPT is slightly more wasteful since it always includes a Protective MBR so that older operating systems don’t think the drive is uninitialized, and this consumes between 30 to 100 MB, at least on drives formatted on Windows 7 (bigger if it has an MSR).
- A 2 GB VHD partitioned as GPT and initialized with one volume gives a capacity of 2,111,827,968 bytes.
- A 2 GB VHD partitioned as MBR and initialized with one volume gives a capacity of 2,144,333,824 bytes.
You may or may not consider this substantial. GPT drives should be slightly more resilient than MBR drives, and as an added bonus, volume labels are 72 bytes (36 UTF-16LE characters) in GPT (MBR volumes don’t actually have names, but FAT-formatted volumes have a 11-byte limit and NTFS-fofmatted volumes have a 32-character limit). So in reality, it’s irrelevant, because we almost always use NTFS, right?
Mount a VHD
mmc diskmgmt.msc from the command-line or launch Computer Management from Administrative tools or directly via Manage Computer.
Action: Attach VHD. Select the mosunt point, which is typically going to be a drive letter.
Unmount a VHD
Detach VHD in Disk Management (right-click on a Disk to see this menu item).
DiskPart can do many disk-related tasks, and more importantly, can be driven with scripts. For example, create this script
and run it
This will create a 50 GB VHD file, and then create a single primary partition on it.
Hyper-V and Windows 8
One reason to upgrade to Windows 8.1 is to get Client Hyper-V
Burn ISO to USB drive
Well, not really burn. Windows doesn’t have native ISO tools, which is really annoying (especially since ISO is a pretty simple format). Enter Rufus.
- Dual Boot Windows 10 Technical Preview From A VHD
- Windows 10 Technical Preview Using VHD Native Boot
- Guide: How to install Windows 10 using VHDs
- How to Create Windows 8 VHD for Boot to VHD using simple, easy to follow steps
- Windows and GPT FAQ
- Creating and Managing MBR Disk Partitions on Windows Server 2008 Basic Disks
- Using Basic Disks and Partitions
- GUID Partition Table
- Windows and GPT FAQ
- Dual-boot Windows 7 and Windows 8 using a VHD