{
"meta": {
"title": "Exportar VM para OVA / OVF | Documentação ProxMenux",
"description": "Exporte uma VM Proxmox para um arquivo OVA portátil ou um diretório OVF com o esquema padrão DMTF. Discos VMDK no formato streamOptimized e manifesto SHA1. Importável no VMware ESXi / Workstation / Fusion, VirtualBox e novamente no Proxmox.",
"ogTitle": "Exportar VM para OVA / OVF | Documentação ProxMenux",
"ogDescription": "Converta uma VM Proxmox num pacote OVA / OVF portátil compatível com VMware e VirtualBox."
},
"header": {
"title": "Exportar VM para OVA / OVF",
"description": "Converte uma VM Proxmox num pacote OVA portátil (um único arquivo TAR) ou OVF (descritor e ficheiros VMDK) com o esquema OVF padrão DMTF. Os discos são convertidos com qemu-img para VMDK streamOptimized. O resultado pode ser importado no VMware (ESXi / Workstation / Fusion), VirtualBox e novamente no Proxmox através da ferramenta de importação.",
"section": "Utilitários"
},
"intro": {
"title": "O que isto faz",
"body": "Lê a configuração de uma VM parada, converte cada disco para VMDK streamOptimized, gera um descritor OVF e um manifesto SHA1 e reúne tudo num único ficheiro .ova ou num diretório -ovf. A VM de origem nunca é modificada."
},
"picker": {
"heading": "Seletor de VM",
"body": "Ao iniciar, o script lista todas as VMs de qm list com VMID, nome e estado. Escolha a que pretende exportar:",
"imgAlt": "Janela de seleção da VM a exportar com a lista de todas as VMs"
},
"stopped": {
"heading": "A VM tem de estar parada",
"intro": "Uma imagem de disco consistente exige uma VM parada. Se a VM selecionada estiver em execução, o ProxMenux propõe desligá-la:",
"items": [
"Encerramento normal através de qm shutdown $VMID --timeout 120 (aguarda 2 minutos pelo encerramento ACPI do sistema convidado).",
"Se o tempo de espera terminar, propõe uma paragem forçada: qm stop $VMID (equivale a cortar a alimentação).",
"Se você recusar ambos, a exportação é interrompida — nenhum dado é tocado."
],
"warnTitle": "A paragem forçada equivale a cortar a alimentação",
"warnBody": "qm stop equivale a desligar a alimentação à força. O sistema convidado pode precisar de reparar o sistema de ficheiros no arranque seguinte. Prefira o encerramento normal e reserve a paragem forçada para sistemas convidados que não respondem."
},
"format": {
"heading": "Selector de formato: OVA vs OVF",
"headerFormat": "Formato",
"headerOutput": "Saída",
"headerPros": "Vantagens",
"headerCons": "Desvantagens",
"rows": [
{
"format": "OVA",
"output": "name-vmid-ts.ova",
"pros": "Um único ficheiro autónomo, fácil de mover, transferir por sftp ou anexar a um pedido de suporte.",
"cons": "Requer ~220% do tamanho virtual do disco (espaço adicional para o arquivo TAR durante a criação)."
},
{
"format": "OVF",
"output": "name-vmid-ts-ovf/",
"pros": "~120% do tamanho virtual do disco. Mais fácil de inspecionar, pois o descritor é XML em texto. Pode ser editado antes da importação.",
"cons": "Vários ficheiros, que têm de ser transferidos em conjunto."
}
]
},
"destination": {
"heading": "Diretório de destino",
"body": "Escolha um caminho predefinido (/var/lib/vz/dump, /var/lib/vz/template/iso) ou introduza um caminho personalizado. O script verifica se o diretório permite escrita e avisa se o espaço livre parecer insuficiente antes de começar.",
"calloutTitle": "Estimativa do espaço livre necessário",
"calloutBody": "Para exportar em OVF uma VM cujos discos somam 100 GB virtuais, reserve ~120 GB livres; para OVA, ~220 GB. A utilização real pode ser menor para discos quase vazios. O arquivo OVA é criado com TAR sem compressão enquanto os ficheiros VMDK temporários ainda existem, pelo que deve reservar espaço para ambos. Se o espaço acabar durante a exportação, o gestor de EXIT limpa o diretório temporário e terá de recomeçar."
},
"package": {
"heading": "O que acaba no pacote",
"intro": "Para um OVA/OVF denominado myvm-100-2026-04-26_18-30-15:",
"code": "# OVA mode (single .ova file is a TAR of):\nmyvm-100-2026-04-26_18-30-15.ovf # XML descriptor (DMTF OVF 1.0 + RASD + VSSD)\nmyvm-100-2026-04-26_18-30-15.mf # SHA1 manifest\nmyvm-100-2026-04-26_18-30-15-disk0.vmdk\nmyvm-100-2026-04-26_18-30-15-disk1.vmdk\n...\n\n# OVF mode (a directory):\nmyvm-100-2026-04-26_18-30-15-ovf/\n├── myvm-100-2026-04-26_18-30-15.ovf\n├── myvm-100-2026-04-26_18-30-15.mf\n├── myvm-100-2026-04-26_18-30-15-disk0.vmdk\n└── myvm-100-2026-04-26_18-30-15-disk1.vmdk"
},
"exported": {
"heading": "O que é exportado",
"items": [
"Discos: todas as entradas scsi*, sata*, virtio* e ide* da configuração da VM, convertidas para VMDK streamOptimized.",
"Número de vCPUs (RASD ResourceType 3) e memória em MiB (ResourceType 4).",
"Número de placas de rede (ResourceType 10: apenas o número, sem a bridge ou o modelo).",
"Nome da VM e indicação do tipo de sistema operativo."
],
"notTitle": "O que não é exportado",
"notItems": [
"Montagens CD-ROM / ISO (excluídas intencionalmente).",
"Unidades cloud-init (excluídas intencionalmente).",
"Bridge e modelo específicos da placa de rede (apenas o número é conservado).",
"Escolha BIOS / UEFI, a configurar novamente na importação.",
"Configuração de passthrough PCI.",
"Instantâneos — apenas o estado atual é capturado.",
"Opções de nível VM (NUMA, páginas enormes, hotplug, ...)."
]
},
"conversion": {
"heading": "Conversão de disco",
"intro": "Cada disco é convertido com:",
"code": "qemu-img convert -p -O vmdk -o subformat=streamOptimized \\\n \"$source_path\" \\\n \"$work_dir/-disk.vmdk\"",
"outro": "streamOptimized é o formato VMware legível numa única passagem, suportado pelo ESXi 6.7+, VMware Workstation, VirtualBox e pelo próprio Proxmox. É o subformato VMDK com maior compatibilidade e adequado à portabilidade. A desvantagem é não permitir acesso aleatório, pelo que não pode ser montado diretamente sem conversão."
},
"manifest": {
"heading": "Manifesto SHA1",
"intro": "Cada pacote inclui um ficheiro .mf com os hashes SHA1 do descritor OVF e de cada VMDK:",
"code": "SHA1(myvm-100-2026-04-26_18-30-15.ovf)= 3a7bd3e2360a3d29eea436fcfb7e44c735d117c9\nSHA1(myvm-100-2026-04-26_18-30-15-disk0.vmdk)= b7e23ec29af22b0b4e41da31e868d57226121c84\nSHA1(myvm-100-2026-04-26_18-30-15-disk1.vmdk)= a87ff679a2f3e71d9181a67b7542122c",
"outro": "É opcional na especificação OVF e muitos programas ignoram-no, mas permite verificar se o pacote foi transferido intacto. Verifique manualmente com sha1sum -c file.mf."
},
"import": {
"heading": "Importar o resultado",
"intro": "O pacote exportado pode ser importado em:",
"items": [
{
"href": "/docs/utils/import-vm",
"preRich": "Proxmox — use a ferramenta correspondente ",
"linkLabel": "Importar VM de OVA / OVF",
"tailRich": "."
},
{
"tailRich": "VMware ESXi — Datacenter → Deploy OVF Template; selecione o ficheiro .ova ou .ovf."
},
{
"tailRich": "VMware Workstation / Fusion — File → Open; selecione o ficheiro .ova ou .ovf."
},
{
"tailRich": "VirtualBox — File → Import Appliance; selecione o ficheiro .ova ou .ovf."
}
]
},
"troubleshoot": {
"heading": "Resolução de Problemas",
"noSpaceTitle": "qemu-img convert falha durante a conversão com \"No space left on device\"",
"noSpaceBody": "O destino ficou sem espaço livre. O gestor de EXIT limpa automaticamente o diretório temporário. Escolha um destino com mais espaço livre (consulte a estimativa acima) e repita a exportação.",
"unsupportedHwTitle": "A exportação termina, mas o VMware recusa a importação: \"Unsupported hardware family\"",
"unsupportedHwBody": "Algumas versões do ESXi rejeitam descritores OVF que declaram uma família de hardware desconhecida. Abra o .ovf num editor de texto, ou extraia primeiro o .ova, procure <vssd:VirtualSystemType> e defina um valor aceite pelo ESXi, como vmx-13 para ESXi 6.5+. Para contornar rapidamente o problema, experimente o VirtualBox, que é mais permissivo.",
"nicTitle": "A VM importada usa uma placa de rede ou um controlador SCSI diferente",
"nicBody": "O OVF conserva o número de placas de rede, mas não o modelo original. Reveja as definições de rede da VM importada no hipervisor de destino. A exportação declara um controlador SCSI lsilogic para compatibilidade com o VMware. Ao importar novamente no Proxmox com o ProxMenux, a VM é criada com um controlador LSI e placas e1000; mude depois para VirtIO SCSI e VirtIO se o sistema convidado tiver os controladores adequados.",
"runningTitle": "A VM estava em execução e recusei pará-la: exportação cancelada",
"runningBody": "O script não consegue produzir uma imagem consistente enquanto há escrita nos discos. Aceite o pedido de encerramento na próxima vez, ou desligue primeiro a VM manualmente (qm shutdown $VMID) e repita a exportação.",
"slowTitle": "A conversão do disco é lenta",
"slowBody": "qemu-img convert usa uma única thread e lê a origem à velocidade máxima. Para um disco de 100 GB num disco rígido mecânico, conte com 15–30 minutos. De NVMe para NVMe é 5–10 vezes mais rápido. Os discos de uma VM são convertidos em sequência; o tempo aumenta linearmente com o tamanho virtual total."
},
"related": {
"heading": "Relacionado",
"items": [
{
"href": "/docs/utils/import-vm",
"label": "Importar VM de OVA / OVF",
"tail": " — a ferramenta complementar para voltar a importar a VM."
},
{
"href": "/docs/utils",
"label": "Visão geral dos utilitários",
"tail": " — voltar ao panorama da secção."
}
]
}
}