Microsoft Virtual Machine Converter fails with error: Heads values must be between 0 and 254

Symptoms

Attempting to perform a virtual machine conversion using the Microsoft Virtual Machine Converter (MVMC) solution accelerator returns the following status at completion :

Microsoft Virtual Machine Converter encountered an error while attempting to convert the virtual machine.

Details:
Heads values must be between 0 and 254.
Parameter name: value
Actual value was 255.

Cause

This can occur if the virtual machine being converted has a GUID Partition Table (GPT) disk attached. MVMC supports converting virtual machines that have Master Boot Record (MBR) partitioned disks attached but not virtual machines that have GPT disks attached.

Resolution

This is by design. MVMC does not currently support GPT disks.

More Information

Sample output from the log file:

258 11/02/2012 05:59:05 +01:00 [6] Progress message: 'Converting source virtual machine 'VM01''.
259 11/02/2012 05:59:21 +01:00  [6]  System.ArgumentOutOfRangeException: Heads values must be between 0 and 254.
260 Parameter name: value
261 Actual value was 255.
262    at Microsoft.Accelerators.Mvmc.Engine.Drive.MasterBootRecord.ChsTupleMemoryMap.set_Heads(Byte value)
263    at Microsoft.Accelerators.Mvmc.Engine.Drive.MasterBootRecord.ChsTupleMemoryMap.Refresh()
264    at Microsoft.Accelerators.Mvmc.Engine.IO.MemoryMap.CreateImpl(Type type, IAddressableRange addressableRange, Boolean refresh)
265    at Microsoft.Accelerators.Mvmc.Engine.IO.MemoryMap.ReadMemoryMap(PropertyInfo propertyInfo, WriteData writeData)
266    at Microsoft.Accelerators.Mvmc.Engine.IO.MemoryMap.HydrateValue(PropertyInfo propertyInfo, WriteData writeData)
267    at Microsoft.Accelerators.Mvmc.Engine.IO.MemoryMap.Refresh()
268    at Microsoft.Accelerators.Mvmc.Engine.IO.MemoryMap.CreateImpl(Type type, IAddressableRange addressableRange, Boolean refresh)
269    at Microsoft.Accelerators.Mvmc.Engine.IO.MemoryMap.ReadMemoryMap(PropertyInfo propertyInfo, WriteData writeData)
270    at Microsoft.Accelerators.Mvmc.Engine.IO.MemoryMap.HydrateValue(PropertyInfo propertyInfo, WriteData writeData)
271    at Microsoft.Accelerators.Mvmc.Engine.IO.MemoryMap.Refresh()
272    at Microsoft.Accelerators.Mvmc.Engine.IO.MemoryMap.Create[T](IAddressableRange addressableRange)
273    at Microsoft.Accelerators.Mvmc.Engine.Utilities.Helpers.UpdateDriveGeometryHelper.VerifyAndFixDriveGeometry(IDrive drive, IAddressableRange mbrAddressableRange)
274    at Microsoft.Accelerators.Mvmc.Engine.Drive.Vhd.FixedVhdDrive.UpdateFrom(IDrive source)
275    at Microsoft.Accelerators.Mvmc.Engine.ServiceLayer.DriveConversionService.ConvertVmdkToVhd(String vmdkDrivePath, String vhdDrivePath, VhdType vhdType)
276    at Microsoft.Accelerators.Mvmc.Engine.ServiceLayer.MachineConversionServiceImplementation.Phases.ConvertDisksService.ConvertDisksImpl(ISubject`1 conversionStepSubject, IDirectoryInfo2 vmdkDirectory, IDirectoryInfo2 vhdDirectory, Boolean dynamicDisks)
277    at Microsoft.Accelerators.Mvmc.Engine.ServiceLayer.MachineConversionServiceImplementation.Phases.ConvertDisksService.ConvertDisks(ISubject`1 conversionStepSubject, IDirectoryInfo2 vmdkDirectory, IDirectoryInfo2 vhdDirectory, IMachineConfiguration machineConfiguration, IOSInfo guestOS, String guestDllDirectory, Boolean dynamicDisks)
278    at Microsoft.Accelerators.Mvmc.Engine.ServiceLayer.MachineConversionServiceImplementation.Phases.ConvertDisksService.ConvertDisksToFixedVhd(ISubject`1 conversionStepSubject, IDirectoryInfo2 vmdkDirectory, IDirectoryInfo2 vhdDirectory, IMachineConfiguration machineConfiguration, IOSInfo guestOS, String guestDllDirectory)
279    at Microsoft.Accelerators.Mvmc.Engine.ServiceLayer.MachineConversionService.Convert(IMachineConversionRequest machineConversionRequest, Boolean dynamicDisks)
280 11/02/2012 05:59:21 +01:00 [6] _4127 End - Machine conversion

Properties

Article ID: 2785521 - Last Review: Dec 4, 2012 - Revision: 1

Microsoft Virtual Machine Converter

Feedback