mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-01 18:32:13 +00:00
- The OVA/OVF import creates the VM with LSI and e1000 - The utilities picker lists 25 tools; jq and ncdu come from the analysis group - A finished UUP Dump ISO is chosen with Install with personal ISO
146 lines
10 KiB
JSON
146 lines
10 KiB
JSON
{
|
|
"meta": {
|
|
"title": "Exportar VM a OVA / OVF | Documentación de ProxMenux",
|
|
"description": "Exporta una VM de Proxmox a un archivo OVA portable o un directorio OVF usando el esquema estándar DMTF. Discos VMDK en formato streamOptimized, manifiesto SHA1. Importable en VMware ESXi / Workstation / Fusion, VirtualBox y de vuelta a Proxmox.",
|
|
"ogTitle": "Exportar VM a OVA / OVF | Documentación de ProxMenux",
|
|
"ogDescription": "Convierte una VM de Proxmox en un paquete portable OVA / OVF compatible con VMware y VirtualBox."
|
|
},
|
|
"header": {
|
|
"title": "Exportar VM a OVA / OVF",
|
|
"description": "Convierte una VM de Proxmox en un paquete portable OVA (un único archivo TAR) o OVF (descriptor + archivos VMDK) usando el esquema OVF estándar de DMTF. Los discos se convierten con qemu-img a VMDK streamOptimized. El resultado es importable en VMware (ESXi / Workstation / Fusion), VirtualBox y de vuelta a Proxmox vía la herramienta de importación.",
|
|
"section": "Utilidades"
|
|
},
|
|
"intro": {
|
|
"title": "Qué hace",
|
|
"body": "Lee la configuración de una VM parada, convierte cada disco a VMDK streamOptimized, genera un descriptor OVF y un manifiesto SHA1, y empaqueta todo como un único archivo <code>.ova</code> o como un directorio <code>-ovf</code>. La VM origen nunca se modifica."
|
|
},
|
|
"picker": {
|
|
"heading": "Selector de VM",
|
|
"body": "Al arrancar, el script lista cada VM de <code>qm list</code> con VMID, nombre y estado. Elige la que quieras exportar:",
|
|
"imgAlt": "Diálogo selector de VM para exportar listando todas las VMs"
|
|
},
|
|
"stopped": {
|
|
"heading": "La VM debe estar parada",
|
|
"intro": "Una imagen de disco consistente requiere una VM parada. Si la VM seleccionada está corriendo, ProxMenux ofrece detenerla:",
|
|
"items": [
|
|
"Apagado controlado vía <code>qm shutdown $VMID --timeout 120</code> (espera 2 min al apagado ACPI del guest).",
|
|
"Si hay timeout, ofrece parada forzosa: <code>qm stop $VMID</code> (equivalente a quitar la corriente).",
|
|
"Si declinas ambas, la exportación se aborta — no se toca ningún dato."
|
|
],
|
|
"warnTitle": "La parada forzosa es como quitar la corriente",
|
|
"warnBody": "<code>qm stop</code> equivale a tirar del cable. El guest puede necesitar reparación del sistema de archivos en su siguiente arranque. Prefiere el apagado controlado siempre que sea posible; reserva la parada forzosa para guests que no responden."
|
|
},
|
|
"format": {
|
|
"heading": "Selector de formato: OVA vs OVF",
|
|
"headerFormat": "Formato",
|
|
"headerOutput": "Salida",
|
|
"headerPros": "Ventajas",
|
|
"headerCons": "Inconvenientes",
|
|
"rows": [
|
|
{
|
|
"format": "OVA",
|
|
"output": "name-vmid-ts.ova",
|
|
"pros": "Un único archivo, fácil de mover, transferir por sftp o adjuntar a una incidencia. Contiene todo lo necesario.",
|
|
"cons": "Necesita ~220% del tamaño virtual del disco (overhead de TAR durante la creación)."
|
|
},
|
|
{
|
|
"format": "OVF",
|
|
"output": "name-vmid-ts-ovf/",
|
|
"pros": "~120% del tamaño virtual del disco. Más fácil de inspeccionar (el descriptor es XML de texto). Se puede editar antes de importar.",
|
|
"cons": "Varios archivos — hay que transferirlos todos juntos."
|
|
}
|
|
]
|
|
},
|
|
"destination": {
|
|
"heading": "Directorio de destino",
|
|
"body": "Elige entre presets (<code>/var/lib/vz/dump</code>, <code>/var/lib/vz/template/iso</code>) o introduce una ruta manual. El script valida que el directorio es escribible y avisa si el espacio libre va justo antes de empezar.",
|
|
"calloutTitle": "Estimación orientativa del espacio libre",
|
|
"calloutBody": "Para exportar a OVF una VM cuyos discos suman 100 GB virtuales, reserva ~120 GB libres; para OVA, ~220 GB. El uso real puede ser menor si los discos están casi vacíos. El archivo OVA se crea con TAR sin compresión mientras aún existen los archivos VMDK temporales, por lo que hay que reservar espacio para ambos. Si te quedas sin espacio durante la exportación, el manejador de EXIT limpia el directorio temporal y tendrás que empezar de nuevo."
|
|
},
|
|
"package": {
|
|
"heading": "Qué acaba en el paquete",
|
|
"intro": "Para un OVA / OVF llamado <code>myvm-100-2026-04-26_18-30-15</code>:",
|
|
"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": "Qué se exporta",
|
|
"items": [
|
|
"<strong>Discos:</strong> todas las entradas <code>scsi*</code>, <code>sata*</code>, <code>virtio*</code>, <code>ide*</code> de la configuración de la VM, convertidas a VMDK streamOptimized.",
|
|
"<strong>Número de vCPUs</strong> (RASD ResourceType 3) y <strong>memoria</strong> en MiB (ResourceType 4).",
|
|
"<strong>Número de NICs</strong> (ResourceType 10 — solo el recuento, no el bridge ni el modelo).",
|
|
"<strong>Nombre de la VM</strong> y una pista del tipo de SO."
|
|
],
|
|
"notTitle": "Qué NO se exporta",
|
|
"notItems": [
|
|
"Montajes de CD-ROM / ISO (excluidos por diseño).",
|
|
"Unidades de cloud-init (excluidas por diseño).",
|
|
"Bridge / modelo específico de NIC (solo se preserva el recuento).",
|
|
"Elección de BIOS / UEFI — hay que volver a configurarla al importar.",
|
|
"Configuración de passthrough PCI.",
|
|
"Snapshots — solo se captura el estado actual.",
|
|
"Opciones a nivel de VM (NUMA, hugepages, hotplug, …)."
|
|
]
|
|
},
|
|
"conversion": {
|
|
"heading": "Conversión de discos",
|
|
"intro": "Cada disco se convierte con:",
|
|
"code": "qemu-img convert -p -O vmdk -o subformat=streamOptimized \\\n \"$source_path\" \\\n \"$work_dir/<base_name>-disk<N>.vmdk\"",
|
|
"outro": "<code>streamOptimized</code> es el formato legible en una sola pasada de VMware — soportado por ESXi 6.7+, VMware Workstation, VirtualBox y obviamente el propio Proxmox. Es el subformato VMDK más ampliamente compatible y la elección correcta para portabilidad. Contrapartida: no es accesible aleatoriamente, así que no puedes montarlo directamente sin conversión."
|
|
},
|
|
"manifest": {
|
|
"heading": "Manifiesto SHA1",
|
|
"intro": "Todo paquete incluye un archivo <code>.mf</code> con hashes SHA1 del descriptor OVF y 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 en la especificación OVF — muchos lectores lo ignoran — pero útil para verificar que el paquete llegó intacto. Verifica manualmente con <code>sha1sum -c file.mf</code>."
|
|
},
|
|
"import": {
|
|
"heading": "Importar el resultado",
|
|
"intro": "El paquete exportado se puede importar en:",
|
|
"items": [
|
|
{
|
|
"href": "/docs/utils/import-vm",
|
|
"preRich": "<strong>Proxmox</strong> — usa la herramienta correspondiente ",
|
|
"linkLabel": "Importar VM desde OVA / OVF",
|
|
"tailRich": "."
|
|
},
|
|
{
|
|
"tailRich": "<strong>VMware ESXi</strong> — Datacenter → Deploy OVF Template, apunta al .ova o .ovf."
|
|
},
|
|
{
|
|
"tailRich": "<strong>VMware Workstation / Fusion</strong> — File → Open, elige el .ova o .ovf."
|
|
},
|
|
{
|
|
"tailRich": "<strong>VirtualBox</strong> — File → Import Appliance, elige el .ova o .ovf."
|
|
}
|
|
]
|
|
},
|
|
"troubleshoot": {
|
|
"heading": "Solución de problemas",
|
|
"noSpaceTitle": "qemu-img convert falla a mitad con \"No space left on device\"",
|
|
"noSpaceBody": "El destino se ha quedado sin espacio. El manejador de EXIT limpia automáticamente el directorio temporal. Elige un destino con más espacio libre (consulta la estimación anterior) y vuelve a ejecutar la herramienta.",
|
|
"unsupportedHwTitle": "La exportación termina pero VMware se niega a importar: \"Unsupported hardware family\"",
|
|
"unsupportedHwBody": "Algunas versiones de ESXi rechazan los descriptores OVF que declaran una familia de hardware que no reconocen. Abre el .ovf en un editor de texto (o extrae primero el .ova), busca <code><vssd:VirtualSystemType></code> y cambia su valor por uno que ESXi acepte (por ejemplo, <code>vmx-13</code> para ESXi 6.5+). Como solución rápida, prueba con VirtualBox, que es más permisivo.",
|
|
"nicTitle": "La VM importada usa una NIC o un controlador SCSI diferente",
|
|
"nicBody": "El OVF conserva el número de NIC, pero no el modelo original. Revisa la configuración de red de la VM importada en el hipervisor de destino. La exportación declara un controlador SCSI lsilogic por compatibilidad con VMware. Al importarla de vuelta a Proxmox con ProxMenux, la VM se crea con un controlador LSI y tarjetas e1000; cambia después a <code>VirtIO SCSI</code> y VirtIO si el sistema invitado tiene los controladores adecuados.",
|
|
"runningTitle": "La VM estaba en ejecución y rechacé detenerla: exportación cancelada",
|
|
"runningBody": "El script no puede producir una imagen consistente mientras se escribe en los discos. O bien aceptas el prompt de apagado la próxima vez, o paras la VM manualmente primero (<code>qm shutdown $VMID</code>) y vuelves a ejecutar.",
|
|
"slowTitle": "La conversión de discos es lenta",
|
|
"slowBody": "<code>qemu-img convert</code> es de un solo hilo y lee el origen a velocidad máxima. Para un disco de 100 GB en disco mecánico, espera 15-30 minutos. NVMe a NVMe es 5-10x más rápido. Las VMs multi-disco se convierten secuencialmente — el tiempo escala linealmente con el tamaño virtual total."
|
|
},
|
|
"related": {
|
|
"heading": "Relacionado",
|
|
"items": [
|
|
{
|
|
"href": "/docs/utils/import-vm",
|
|
"label": "Importar VM desde OVA / OVF",
|
|
"tail": " — la herramienta complementaria para volver a importar."
|
|
},
|
|
{
|
|
"href": "/docs/utils",
|
|
"label": "Resumen de utilidades",
|
|
"tail": " — volver al resumen de la sección."
|
|
}
|
|
]
|
|
}
|
|
}
|