{"id":4798,"date":"2026-06-15T15:12:24","date_gmt":"2026-06-15T15:12:24","guid":{"rendered":"https:\/\/www.it-react.com\/?p=4798"},"modified":"2026-06-15T15:12:29","modified_gmt":"2026-06-15T15:12:29","slug":"swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter","status":"publish","type":"post","link":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/","title":{"rendered":"Swimming Upstream: Exporting VMs from Proxmox to ESXi\/vCenter"},"content":{"rendered":"\n<p>Everyone is migrating from VMware to Proxmox. Blog posts, Reddit threads, YouTube tutorials \u2014 the internet is flooded with guides on escaping VMware licensing costs and embracing the open-source promised land. It&#8217;s practically a movement.<\/p>\n\n\n\n<p>And then there&#8217;s me, going the other way.<\/p>\n\n\n\n<p>While the rest of the world is celebrating their freedom from vCenter, I found myself needing to export VMs <em>out<\/em> of Proxmox and <em>into<\/em> ESXi \u2014 because a client requires it. I searched for a proper guide and found almost nothing useful: a few forum posts with single-disk examples, no mention of multiple disks, UEFI, Windows Server 2025, or the OVF errors vCenter throws at you. So here&#8217;s the guide I wish existed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What We&#8217;re Building<\/h2>\n\n\n\n<p>We&#8217;ll export a VM from Proxmox as an OVA file that can be imported directly into ESXi or vCenter. The process involves:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Installing <strong>ovftool<\/strong> on Proxmox<\/li>\n\n\n\n<li>Converting disks to <strong>streamOptimized VMDK<\/strong> (only real data, not empty space)<\/li>\n\n\n\n<li>Writing a valid <strong>OVF descriptor<\/strong> that vCenter actually accepts<\/li>\n\n\n\n<li>Packaging everything into a single <strong>.ova<\/strong> file<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1: Install ovftool on Proxmox<\/h2>\n\n\n\n<p>Proxmox doesn&#8217;t ship with ovftool, so we need to install it manually. Download <strong>VMware-ovftool-5.1.0-25410048-lin.x86_64<\/strong> from <a href=\"https:\/\/developer.broadcom.com\/tools\/open-virtualization-format-ovf-tool\/latest\" type=\"link\" id=\"https:\/\/developer.broadcom.com\/tools\/open-virtualization-format-ovf-tool\/latest\">Broadcom&#8217;s developer portal<\/a> and copy it to your Proxmox server via WinSCP or SCP.<\/p>\n\n\n\n<p>Then install <code>unzip<\/code> and extract it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-get install -y unzip\ncd \/tmp\nunzip VMware-ovftool-5.1.0-25410048-lin.x86_64.zip<\/code><\/pre>\n\n\n\n<p>Move it to a permanent location and create a symlink:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mv \/tmp\/ovftool \/opt\/ovftool\nln -s \/opt\/ovftool\/ovftool \/usr\/local\/bin\/ovftool<\/code><\/pre>\n\n\n\n<p>Verify the installation:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ovftool --version\n# VMware ovftool 5.1.0 (build-24031167)<\/code><\/pre>\n\n\n\n<p>\ud83d\udca1 You may see a <code>getcwd: cannot access parent directories<\/code> warning if you run it from the directory that was just moved. It&#8217;s harmless \u2014 just <code>cd \/<\/code> first.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2: Check VM Configuration and Actual Disk Usage<\/h2>\n\n\n\n<p>Before converting anything, check how much data is actually on the disks. Proxmox uses LVM thin provisioning, which means a 500GB disk might only contain 1GB of real data \u2014 and your OVA will reflect that.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>qm config 300<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>scsi0: local-lvm:vm-300-disk-1,size=150G\nscsi1: local-lvm:vm-300-disk-2,size=150G\nscsi2: local-lvm:vm-300-disk-3,size=500G\nscsi3: local-lvm:vm-300-disk-4,size=100G<\/code><\/pre>\n\n\n\n<p>Now check actual usage per disk:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>lvs \/dev\/pve\/vm-300-disk-1\nlvs \/dev\/pve\/vm-300-disk-2\nlvs \/dev\/pve\/vm-300-disk-3\nlvs \/dev\/pve\/vm-300-disk-4<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>vm-300-disk-1  150.00g  24.68%  \u2192 ~37G actual\nvm-300-disk-2  150.00g  10.37%  \u2192 ~15G actual\nvm-300-disk-3  500.00g   0.02%  \u2192 ~0.1G actual\nvm-300-disk-4  100.00g   0.09%  \u2192 ~0.1G actual<\/code><\/pre>\n\n\n\n<p>In our case: <strong>~52GB of real data instead of 900GB<\/strong>. The OVA will be roughly that size.<\/p>\n\n\n\n<p>Also check where you have free space \u2014 avoid <code>\/tmp<\/code>, it&#8217;s tmpfs and typically limited to 2GB:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>df -h\n# \/dev\/mapper\/pve-local--backup  2.9T  2.1M  2.8T  \/var\/backup  \u2190 use this<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3: Stop the VM and Convert Disks<\/h2>\n\n\n\n<p>\u26a0\ufe0f <strong>Always stop the VM before exporting.<\/strong> Exporting a running VM risks data corruption.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>qm stop 300\nqm status 300\n# status: stopped<\/code><\/pre>\n\n\n\n<p>Create the export folder and convert each disk to streamOptimized VMDK. This format compresses blocks and skips empty space \u2014 it&#8217;s designed exactly for transport:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p \/var\/backup\/vm-300-export\n\nqemu-img convert -p -f raw -O vmdk \\\n  -o subformat=streamOptimized \\\n  \/dev\/pve\/vm-300-disk-1 \\\n  \/var\/backup\/vm-300-export\/vm-300-disk-1.vmdk\n\nqemu-img convert -p -f raw -O vmdk \\\n  -o subformat=streamOptimized \\\n  \/dev\/pve\/vm-300-disk-2 \\\n  \/var\/backup\/vm-300-export\/vm-300-disk-2.vmdk\n\nqemu-img convert -p -f raw -O vmdk \\\n  -o subformat=streamOptimized \\\n  \/dev\/pve\/vm-300-disk-3 \\\n  \/var\/backup\/vm-300-export\/vm-300-disk-3.vmdk\n\nqemu-img convert -p -f raw -O vmdk \\\n  -o subformat=streamOptimized \\\n  \/dev\/pve\/vm-300-disk-4 \\\n  \/var\/backup\/vm-300-export\/vm-300-disk-4.vmdk<\/code><\/pre>\n\n\n\n<p>\ud83d\udca1 Skip the EFI disk and TPM disk \u2014 ESXi recreates them automatically on import.<\/p>\n\n\n\n<p>Verify the result:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -lh \/var\/backup\/vm-300-export\/\n# 23G  vm-300-disk-1.vmdk\n# 16G  vm-300-disk-2.vmdk\n# 70M  vm-300-disk-3.vmdk\n# 15M  vm-300-disk-4.vmdk<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4: Write the OVF Descriptor<\/h2>\n\n\n\n<p>This is the part nobody documents properly. The OVF file is an XML descriptor that tells vCenter what the VM looks like. If the section order is wrong, vCenter will refuse the import with cryptic errors.<\/p>\n\n\n\n<p><strong>The correct order is always: <code>References<\/code> \u2192 <code>DiskSection<\/code> \u2192 <code>NetworkSection<\/code> \u2192 <code>VirtualSystem<\/code>.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat > \/var\/backup\/vm-300-export\/vm-300.ovf << 'EOF'\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;Envelope xmlns=\"http:\/\/schemas.dmtf.org\/ovf\/envelope\/1\"\n  xmlns:ovf=\"http:\/\/schemas.dmtf.org\/ovf\/envelope\/1\"\n  xmlns:vmw=\"http:\/\/www.vmware.com\/schema\/ovf\"\n  xmlns:rasd=\"http:\/\/schemas.dmtf.org\/wbem\/wscim\/1\/cim-schema\/2\/CIM_ResourceAllocationSettingData\"\n  xmlns:vssd=\"http:\/\/schemas.dmtf.org\/wbem\/wscim\/1\/cim-schema\/2\/CIM_VirtualSystemSettingData\"&gt;\n  &lt;References&gt;\n    &lt;File ovf:id=\"disk-1\" ovf:href=\"vm-300-disk-1.vmdk\"\/&gt;\n    &lt;File ovf:id=\"disk-2\" ovf:href=\"vm-300-disk-2.vmdk\"\/&gt;\n    &lt;File ovf:id=\"disk-3\" ovf:href=\"vm-300-disk-3.vmdk\"\/&gt;\n    &lt;File ovf:id=\"disk-4\" ovf:href=\"vm-300-disk-4.vmdk\"\/&gt;\n  &lt;\/References&gt;\n  &lt;DiskSection&gt;\n    &lt;Info&gt;Virtual disk information&lt;\/Info&gt;\n    &lt;Disk ovf:diskId=\"disk-1\" ovf:fileRef=\"disk-1\" ovf:capacity=\"161061273600\"\n          ovf:format=\"http:\/\/www.vmware.com\/interfaces\/specifications\/vmdk.html#streamOptimized\"\/&gt;\n    &lt;Disk ovf:diskId=\"disk-2\" ovf:fileRef=\"disk-2\" ovf:capacity=\"161061273600\"\n          ovf:format=\"http:\/\/www.vmware.com\/interfaces\/specifications\/vmdk.html#streamOptimized\"\/&gt;\n    &lt;Disk ovf:diskId=\"disk-3\" ovf:fileRef=\"disk-3\" ovf:capacity=\"536870912000\"\n          ovf:format=\"http:\/\/www.vmware.com\/interfaces\/specifications\/vmdk.html#streamOptimized\"\/&gt;\n    &lt;Disk ovf:diskId=\"disk-4\" ovf:fileRef=\"disk-4\" ovf:capacity=\"107374182400\"\n          ovf:format=\"http:\/\/www.vmware.com\/interfaces\/specifications\/vmdk.html#streamOptimized\"\/&gt;\n  &lt;\/DiskSection&gt;\n  &lt;NetworkSection&gt;\n    &lt;Info&gt;List of logical networks&lt;\/Info&gt;\n    &lt;Network ovf:name=\"VM Network\"&gt;\n      &lt;Description&gt;VM Network&lt;\/Description&gt;\n    &lt;\/Network&gt;\n  &lt;\/NetworkSection&gt;\n  &lt;VirtualSystem ovf:id=\"d-s9999g\"&gt;\n    &lt;Info&gt;Windows Server 2025 Standard&lt;\/Info&gt;\n    &lt;Name&gt;d-s9999g&lt;\/Name&gt;\n    &lt;OperatingSystemSection ovf:id=\"112\"&gt;\n      &lt;Info&gt;Guest OS&lt;\/Info&gt;\n      &lt;Description&gt;windows2025srv_64Guest&lt;\/Description&gt;\n    &lt;\/OperatingSystemSection&gt;\n    &lt;VirtualHardwareSection&gt;\n      &lt;Info&gt;Virtual hardware&lt;\/Info&gt;\n      &lt;System&gt;\n        &lt;vssd:ElementName&gt;Virtual Hardware Family&lt;\/vssd:ElementName&gt;\n        &lt;vssd:InstanceID&gt;0&lt;\/vssd:InstanceID&gt;\n        &lt;vssd:VirtualSystemType&gt;vmx-19&lt;\/vssd:VirtualSystemType&gt;\n      &lt;\/System&gt;\n      &lt;Item&gt;\n        &lt;rasd:ElementName&gt;4 vCPU&lt;\/rasd:ElementName&gt;\n        &lt;rasd:InstanceID&gt;1&lt;\/rasd:InstanceID&gt;\n        &lt;rasd:ResourceType&gt;3&lt;\/rasd:ResourceType&gt;\n        &lt;rasd:VirtualQuantity&gt;4&lt;\/rasd:VirtualQuantity&gt;\n        &lt;vmw:CoresPerSocket ovf:required=\"false\"&gt;4&lt;\/vmw:CoresPerSocket&gt;\n      &lt;\/Item&gt;\n      &lt;Item&gt;\n        &lt;rasd:ElementName&gt;16384 MB RAM&lt;\/rasd:ElementName&gt;\n        &lt;rasd:InstanceID&gt;2&lt;\/rasd:InstanceID&gt;\n        &lt;rasd:ResourceType&gt;4&lt;\/rasd:ResourceType&gt;\n        &lt;rasd:VirtualQuantity&gt;16384&lt;\/rasd:VirtualQuantity&gt;\n        &lt;rasd:AllocationUnits&gt;byte * 2^20&lt;\/rasd:AllocationUnits&gt;\n      &lt;\/Item&gt;\n      &lt;Item&gt;\n        &lt;rasd:ElementName&gt;UEFI Boot&lt;\/rasd:ElementName&gt;\n        &lt;rasd:InstanceID&gt;3&lt;\/rasd:InstanceID&gt;\n        &lt;rasd:ResourceType&gt;1&lt;\/rasd:ResourceType&gt;\n        &lt;vmw:Config ovf:required=\"false\" vmw:key=\"firmware\" vmw:value=\"efi\"\/&gt;\n      &lt;\/Item&gt;\n      &lt;Item&gt;\n        &lt;rasd:ElementName&gt;SCSI Controller 0&lt;\/rasd:ElementName&gt;\n        &lt;rasd:InstanceID&gt;4&lt;\/rasd:InstanceID&gt;\n        &lt;rasd:ResourceType&gt;6&lt;\/rasd:ResourceType&gt;\n        &lt;rasd:ResourceSubType&gt;VirtualSCSI&lt;\/rasd:ResourceSubType&gt;\n        &lt;rasd:Address&gt;0&lt;\/rasd:Address&gt;\n      &lt;\/Item&gt;\n      &lt;Item&gt;\n        &lt;rasd:ElementName&gt;Hard Disk 1&lt;\/rasd:ElementName&gt;\n        &lt;rasd:HostResource&gt;ovf:\/disk\/disk-1&lt;\/rasd:HostResource&gt;\n        &lt;rasd:InstanceID&gt;5&lt;\/rasd:InstanceID&gt;\n        &lt;rasd:Parent&gt;4&lt;\/rasd:Parent&gt;\n        &lt;rasd:AddressOnParent&gt;0&lt;\/rasd:AddressOnParent&gt;\n        &lt;rasd:ResourceType&gt;17&lt;\/rasd:ResourceType&gt;\n      &lt;\/Item&gt;\n      &lt;Item&gt;\n        &lt;rasd:ElementName&gt;Hard Disk 2&lt;\/rasd:ElementName&gt;\n        &lt;rasd:HostResource&gt;ovf:\/disk\/disk-2&lt;\/rasd:HostResource&gt;\n        &lt;rasd:InstanceID&gt;6&lt;\/rasd:InstanceID&gt;\n        &lt;rasd:Parent&gt;4&lt;\/rasd:Parent&gt;\n        &lt;rasd:AddressOnParent&gt;1&lt;\/rasd:AddressOnParent&gt;\n        &lt;rasd:ResourceType&gt;17&lt;\/rasd:ResourceType&gt;\n      &lt;\/Item&gt;\n      &lt;Item&gt;\n        &lt;rasd:ElementName&gt;Hard Disk 3&lt;\/rasd:ElementName&gt;\n        &lt;rasd:HostResource&gt;ovf:\/disk\/disk-3&lt;\/rasd:HostResource&gt;\n        &lt;rasd:InstanceID&gt;7&lt;\/rasd:InstanceID&gt;\n        &lt;rasd:Parent&gt;4&lt;\/rasd:Parent&gt;\n        &lt;rasd:AddressOnParent&gt;2&lt;\/rasd:AddressOnParent&gt;\n        &lt;rasd:ResourceType&gt;17&lt;\/rasd:ResourceType&gt;\n      &lt;\/Item&gt;\n      &lt;Item&gt;\n        &lt;rasd:ElementName&gt;Hard Disk 4&lt;\/rasd:ElementName&gt;\n        &lt;rasd:HostResource&gt;ovf:\/disk\/disk-4&lt;\/rasd:HostResource&gt;\n        &lt;rasd:InstanceID&gt;8&lt;\/rasd:InstanceID&gt;\n        &lt;rasd:Parent&gt;4&lt;\/rasd:Parent&gt;\n        &lt;rasd:AddressOnParent&gt;3&lt;\/rasd:AddressOnParent&gt;\n        &lt;rasd:ResourceType&gt;17&lt;\/rasd:ResourceType&gt;\n      &lt;\/Item&gt;\n      &lt;Item&gt;\n        &lt;rasd:ElementName&gt;Network Adapter&lt;\/rasd:ElementName&gt;\n        &lt;rasd:InstanceID&gt;9&lt;\/rasd:InstanceID&gt;\n        &lt;rasd:ResourceType&gt;10&lt;\/rasd:ResourceType&gt;\n        &lt;rasd:ResourceSubType&gt;E1000&lt;\/rasd:ResourceSubType&gt;\n        &lt;rasd:Connection&gt;VM Network&lt;\/rasd:Connection&gt;\n      &lt;\/Item&gt;\n    &lt;\/VirtualHardwareSection&gt;\n  &lt;\/VirtualSystem&gt;\n&lt;\/Envelope&gt;\nEOF<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5: Build the OVA with ovftool<\/h2>\n\n\n\n<p>Now let ovftool do the packaging. It validates the OVF, calculates checksums, and produces a proper OVA:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/var\/backup\/vm-300-export\novftool vm-300.ovf \/var\/backup\/vm-300.ova<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>Opening OVF source: vm-300.ovf\nOpening OVA target: \/var\/backup\/vm-300.ova\nWriting OVA package: \/var\/backup\/vm-300.ova\nTransfer Completed\nCompleted successfully<\/code><\/pre>\n\n\n\n<p>\ud83d\udca1 Warnings about \"Wrong file size\" and \"No manifest\" are expected \u2014 ovftool corrects them in the final OVA. As long as you see <code>Completed successfully<\/code> you're good.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ls -lh \/var\/backup\/vm-300.ova\n# -rw------- 1 root root 40G Jun 3 14:05 \/var\/backup\/vm-300.ova<\/code><\/pre>\n\n\n\n<p>40GB instead of 900GB. Not bad.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Step 6: Import into vCenter<\/h2>\n\n\n\n<p>Copy the OVA to your local machine via WinSCP, then in vSphere Client:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Right-click on the cluster\/host \u2192 <strong>Deploy OVF Template<\/strong><\/li>\n\n\n\n<li>Select the <code>.ova<\/code> file<\/li>\n\n\n\n<li>Follow the wizard \u2014 name, datastore, network<\/li>\n\n\n\n<li>At the network step, map <strong>\"VM Network\"<\/strong> to whatever portgroup exists in your environment \u2014 it doesn't need to match exactly, vCenter lets you remap it<\/li>\n\n\n\n<li>Choose <strong>Thin Provision<\/strong> if storage is limited, or <strong>Thick<\/strong> for production performance<\/li>\n\n\n\n<li>Done<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting \u2014 Errors You Will Hit<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Value 'VM Network' of Connection element not found in NetworkSection<\/h3>\n\n\n\n<p>Your OVF is missing the <code>&lt;NetworkSection&gt;<\/code> block, or it's in the wrong position. Add it between <code>DiskSection<\/code> and <code>VirtualSystem<\/code>, then rebuild the OVA.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">ELEMENT_REQUIRED: Element 'References' expected<\/h3>\n\n\n\n<p>The <code>&lt;References&gt;<\/code> section is not first in the OVF. Fix the order: References \u2192 DiskSection \u2192 NetworkSection \u2192 VirtualSystem.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Need to fix an OVA without rebuilding from scratch?<\/h3>\n\n\n\n<p>Extract it with 7-Zip, edit the <code>.ovf<\/code> in Notepad++, then repackage from PowerShell \u2014 note that 7-Zip cannot create a valid OVA, only <code>tar<\/code> can:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd C:\\Users\\you\\Desktop\\vm-folder\ntar cvf C:\\Users\\you\\Desktop\\vm-fixed.ova vm.ovf disk1.vmdk disk2.vmdk<\/code><\/pre>\n\n\n\n<p>\u26a0\ufe0f The OVF must always be the first file in the archive.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Migrating from Proxmox to ESXi isn't as well-documented as the reverse, but it's entirely doable with the right tools and a properly structured OVF. The two things that will save you the most time: use <code>streamOptimized<\/code> to avoid copying terabytes of empty disk space, and get the OVF section order right the first time so vCenter doesn't reject it.<\/p>\n\n\n\n<p>If you found this useful \u2014 or if you're also stubbornly going against the current \u2014 drop a comment below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Everyone is migrating from VMware to Proxmox. Blog posts, Reddit threads, YouTube tutorials \u2014 the internet is flooded with guides on escaping VMware licensing costs and embracing the open-source promised land. It&#8217;s practically a movement. And then there&#8217;s me, going the other way. While the rest of the world is celebrating their freedom from vCenter, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4802,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_FSMCFIC_featured_image_caption":"","_FSMCFIC_featured_image_nocaption":"","_FSMCFIC_featured_image_hide":"","footnotes":""},"categories":[7],"tags":[],"class_list":["post-4798","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Swimming Upstream: Exporting VMs from Proxmox to ESXi\/vCenter - IT-REACT<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Swimming Upstream: Exporting VMs from Proxmox to ESXi\/vCenter - IT-REACT\" \/>\n<meta property=\"og:description\" content=\"Everyone is migrating from VMware to Proxmox. Blog posts, Reddit threads, YouTube tutorials \u2014 the internet is flooded with guides on escaping VMware licensing costs and embracing the open-source promised land. It&#8217;s practically a movement. And then there&#8217;s me, going the other way. While the rest of the world is celebrating their freedom from vCenter, [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/\" \/>\n<meta property=\"og:site_name\" content=\"IT-REACT\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-15T15:12:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-15T15:12:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.it-react.com\/wp-content\/uploads\/2026\/06\/vida-huang-I-_wYj9yOzw-unsplash-e1781535967247.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"540\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ioan Penu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ioan Penu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/\"},\"author\":{\"name\":\"Ioan Penu\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#\\\/schema\\\/person\\\/bf08cffeb4b02ee6baff5d56ab17c8f0\"},\"headline\":\"Swimming Upstream: Exporting VMs from Proxmox to ESXi\\\/vCenter\",\"datePublished\":\"2026-06-15T15:12:24+00:00\",\"dateModified\":\"2026-06-15T15:12:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/\"},\"wordCount\":739,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#\\\/schema\\\/person\\\/bf08cffeb4b02ee6baff5d56ab17c8f0\"},\"image\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.it-react.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vida-huang-I-_wYj9yOzw-unsplash-e1781535967247.jpg\",\"articleSection\":[\"Linux\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/\",\"url\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/\",\"name\":\"Swimming Upstream: Exporting VMs from Proxmox to ESXi\\\/vCenter - IT-REACT\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.it-react.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vida-huang-I-_wYj9yOzw-unsplash-e1781535967247.jpg\",\"datePublished\":\"2026-06-15T15:12:24+00:00\",\"dateModified\":\"2026-06-15T15:12:29+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.it-react.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vida-huang-I-_wYj9yOzw-unsplash-e1781535967247.jpg\",\"contentUrl\":\"https:\\\/\\\/www.it-react.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/vida-huang-I-_wYj9yOzw-unsplash-e1781535967247.jpg\",\"width\":1080,\"height\":540,\"caption\":\"Foto von Vida Huang auf Unsplash\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/index.php\\\/2026\\\/06\\\/15\\\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.it-react.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Swimming Upstream: Exporting VMs from Proxmox to ESXi\\\/vCenter\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#website\",\"url\":\"https:\\\/\\\/www.it-react.com\\\/\",\"name\":\"it-react\",\"description\":\"Ctrl\u2022Alt\u2022Automate\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#\\\/schema\\\/person\\\/bf08cffeb4b02ee6baff5d56ab17c8f0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.it-react.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.it-react.com\\\/#\\\/schema\\\/person\\\/bf08cffeb4b02ee6baff5d56ab17c8f0\",\"name\":\"Ioan Penu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g\",\"caption\":\"Ioan Penu\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Swimming Upstream: Exporting VMs from Proxmox to ESXi\/vCenter - IT-REACT","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/","og_locale":"en_US","og_type":"article","og_title":"Swimming Upstream: Exporting VMs from Proxmox to ESXi\/vCenter - IT-REACT","og_description":"Everyone is migrating from VMware to Proxmox. Blog posts, Reddit threads, YouTube tutorials \u2014 the internet is flooded with guides on escaping VMware licensing costs and embracing the open-source promised land. It&#8217;s practically a movement. And then there&#8217;s me, going the other way. While the rest of the world is celebrating their freedom from vCenter, [&hellip;]","og_url":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/","og_site_name":"IT-REACT","article_published_time":"2026-06-15T15:12:24+00:00","article_modified_time":"2026-06-15T15:12:29+00:00","og_image":[{"width":1080,"height":540,"url":"https:\/\/www.it-react.com\/wp-content\/uploads\/2026\/06\/vida-huang-I-_wYj9yOzw-unsplash-e1781535967247.jpg","type":"image\/jpeg"}],"author":"Ioan Penu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Ioan Penu","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/#article","isPartOf":{"@id":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/"},"author":{"name":"Ioan Penu","@id":"https:\/\/www.it-react.com\/#\/schema\/person\/bf08cffeb4b02ee6baff5d56ab17c8f0"},"headline":"Swimming Upstream: Exporting VMs from Proxmox to ESXi\/vCenter","datePublished":"2026-06-15T15:12:24+00:00","dateModified":"2026-06-15T15:12:29+00:00","mainEntityOfPage":{"@id":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/"},"wordCount":739,"commentCount":0,"publisher":{"@id":"https:\/\/www.it-react.com\/#\/schema\/person\/bf08cffeb4b02ee6baff5d56ab17c8f0"},"image":{"@id":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/#primaryimage"},"thumbnailUrl":"https:\/\/www.it-react.com\/wp-content\/uploads\/2026\/06\/vida-huang-I-_wYj9yOzw-unsplash-e1781535967247.jpg","articleSection":["Linux"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/","url":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/","name":"Swimming Upstream: Exporting VMs from Proxmox to ESXi\/vCenter - IT-REACT","isPartOf":{"@id":"https:\/\/www.it-react.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/#primaryimage"},"image":{"@id":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/#primaryimage"},"thumbnailUrl":"https:\/\/www.it-react.com\/wp-content\/uploads\/2026\/06\/vida-huang-I-_wYj9yOzw-unsplash-e1781535967247.jpg","datePublished":"2026-06-15T15:12:24+00:00","dateModified":"2026-06-15T15:12:29+00:00","breadcrumb":{"@id":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/#primaryimage","url":"https:\/\/www.it-react.com\/wp-content\/uploads\/2026\/06\/vida-huang-I-_wYj9yOzw-unsplash-e1781535967247.jpg","contentUrl":"https:\/\/www.it-react.com\/wp-content\/uploads\/2026\/06\/vida-huang-I-_wYj9yOzw-unsplash-e1781535967247.jpg","width":1080,"height":540,"caption":"Foto von Vida Huang auf Unsplash"},{"@type":"BreadcrumbList","@id":"https:\/\/www.it-react.com\/index.php\/2026\/06\/15\/swimming-upstream-exporting-vms-from-proxmox-to-esxi-vcenter\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.it-react.com\/"},{"@type":"ListItem","position":2,"name":"Swimming Upstream: Exporting VMs from Proxmox to ESXi\/vCenter"}]},{"@type":"WebSite","@id":"https:\/\/www.it-react.com\/#website","url":"https:\/\/www.it-react.com\/","name":"it-react","description":"Ctrl\u2022Alt\u2022Automate","publisher":{"@id":"https:\/\/www.it-react.com\/#\/schema\/person\/bf08cffeb4b02ee6baff5d56ab17c8f0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.it-react.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.it-react.com\/#\/schema\/person\/bf08cffeb4b02ee6baff5d56ab17c8f0","name":"Ioan Penu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g","caption":"Ioan Penu"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/2a2a1b6be0f322a113eea11669895227e284c6091424d65be6c3c706c2822975?s=96&d=mm&r=g"}}]}},"_links":{"self":[{"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/posts\/4798","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/comments?post=4798"}],"version-history":[{"count":3,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/posts\/4798\/revisions"}],"predecessor-version":[{"id":4801,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/posts\/4798\/revisions\/4801"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/media\/4802"}],"wp:attachment":[{"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/media?parent=4798"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/categories?post=4798"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.it-react.com\/index.php\/wp-json\/wp\/v2\/tags?post=4798"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}