Skip to content

Convertendo VMDK para VHD ou VHDX via PowerShell

Afim de complementar o post anterior Migrando máquinas virtuais do VMware para Hyper-V resolvi fazer mais este post sobre como você pode migrar facilmente seus arquivos VMDK para VHD ou VHDX.

O processo é muito simples. Você só precisa ter o Microsoft Virtual Machine Converter (MVMC) instalado e executar o procedimento abaixo:

  1. Importe o módulo com os comandos PowerShell:
    Import-Module 'C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1'
  2. Agora execute o comando abaixo, indicando o caminho do VMDK e o local onde será o destino do novo arquivo. Você também pode indicar o tipo do VHD (DynamicHardDisk ou FixedHardDisk) e o formato (VHD ou VHDX):
    ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath C:\vm\disco_vmware.vmdk -VhdType DynamicHardDisk -VhdFormat vhdx -destination c:\vm\
  3. Abaixo um exemplo do comando sendo executado. Note que o arquivo VHDX está sendo gerado. E o arquivo -flat não é mencionado no comando, mesmo ele sendo o arquivo “grande”.
  4. Após o processo executado, a saída do PowerShell será esta abaixo:

O processo é muito simples. Você pode ver todos os cmdlets disponíveis neste documento.

Até o próximo post!

Published inHyper-VPowerShellWindows Server

7 Comments

  1. Evans Evans

    Olá Estou com problema para realizar este procedimento no windows server 2008 R2 no Import-Module, ocorre o seguinte problema:

    Import-Module : O módulo ‘C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1’ não pode ser importado
    porque seu manifesto contém um ou mais membros inválidos. Os membros de manifesto válidos são (‘ModuleToProcess’, ‘Nest
    edModules’, ‘GUID’, ‘Author’, ‘CompanyName’, ‘Copyright’, ‘ModuleVersion’, ‘Description’, ‘PowerShellVersion’, ‘PowerSh
    ellHostName’, ‘PowerShellHostVersion’, ‘CLRVersion’, ‘DotNetFrameworkVersion’, ‘ProcessorArchitecture’, ‘RequiredModule
    s’, ‘TypesToProcess’, ‘FormatsToProcess’, ‘ScriptsToProcess’, ‘PrivateData’, ‘RequiredAssemblies’, ‘ModuleList’, ‘FileL
    ist’, ‘FunctionsToExport’, ‘VariablesToExport’, ‘AliasesToExport’, ‘CmdletsToExport’). Remova os membros inválidos (‘Ro
    otModule’) e tente importar o módulo novamente.
    Em linha:1 caractere:14
    + Import-Module <<<< .\MvmcCmdlet.psd1
    + CategoryInfo : InvalidData: (C:\Program File…MvmcCmdlet.psd1:String) [Import-Module], InvalidOperatio
    nException
    + FullyQualifiedErrorId : Modules_InvalidManifestMember,Microsoft.PowerShell.Commands.ImportModuleCommand

    No windows 8 eu consigo realizar, mas no win 2008 server não. Alguém que possa me ajudar?

  2. Iericê Iericê

    Estou com o mesmo problema do amigo Evans.

  3. Marcel Mascarenhas Andrade Marcel Mascarenhas Andrade

    Só queria agradecer por esse excelente post, onde trabalho nosso storage e Vcenter estão com problemas e resolvemos migrar para Hyper-V server. Com essa dica foi possível migrar serviços exponenciais em tempo hábil.

  4. Kaique Santos Kaique Santos

    Muito obrigado pelo post. Foi de muito valia e está nos favoritos.

  5. Lucas Natan Alexandre Lucas Natan Alexandre

    Pessoal que está com problemas em versões mais antigas do windows, é por causa da versão do power shell que estão utilizando. no link https://www.rootusers.com/install-powershell-5-windows-server-2008-r2/ mostra como podemos atualizar.
    Mas eu indico fazer o procedimento em um windows 10 , pois vmdx só é compatível em windows acima do 8 .

  6. Luciano Tres Luciano Tres

    Excelente post, 2018 mas ajuda ainda hoje.
    Só pra acrescentar, se tiver este erro “The entry 4 is not a supported disk database entry for the descriptor.” é preciso tirar essa opção dentro do arquivo vmdk. Forma “simples” que achei foi usando o sed:
    $ sed ‘0,/ddb.toolsInstallType/s//#db.toolsInstallType/’ ‘disco.vmdk’ > novo-disco.vmdk

    E dependendo a maquina que converta, talvez tenha que estender a virtualização. Pra isso o PS a seguir resolve:
    Set-VMProcessor -VMName “EVE-novo” -ExposeVirtualizationExtensions $True

    Vlws

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *