{"id":160,"date":"2007-09-23T23:39:52","date_gmt":"2007-09-23T21:39:52","guid":{"rendered":"http:\/\/www.corelan.be:8800\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/"},"modified":"2007-09-23T23:39:52","modified_gmt":"2007-09-23T21:39:52","slug":"how-to-backup-vmware-esx-virtual-machines","status":"publish","type":"post","link":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/","title":{"rendered":"How to backup VMWare ESX virtual machines"},"content":{"rendered":"<div class=\"ExternalClass11DC576BBA444D1F87933E0D566B8444\">\n<p>Today, I will try to explain 2 techniques that will allow you to backup your vmdk files (virtual machines) on a VMWare ESX 3.0.x server. My lab runs on 3.0.2, but this will work on 3.0.1 (and maybe earlier versions) as well. Before continuing, let's make a couple of assumptions :<\/p>\n<ol>\n<li>I will explain how to backup the virtual machines to another location on the SAN. Although one of the scripts that will be explained in this document will allow you to backup using 3<sup>rd<\/sup> party software or copy the files over the network to another server (using NFS, FTP, SMB, \u2026), I'm not going to explain that because I don't use commercial 3<sup>rd<\/sup> party software myself. Furthermore, I'm sure you can figure out how to backup the backup copy yourself<\/li>\n<li>We will backup machines while they are powered on. There's one exception : Never backup a running Windows AD Domain Controller using the \"Powered On VM\" technique. Look at the section to backup Domain Controllers instead (which will explain you how to get the status, stop the VM, copy the files, and start the machine again). After all, backing up a live (running) Virtual Machine is based upon snapshots. Windows Domain Controllers don't like to be snapshotted in a virtual environment. You'll probably end up with a USN rollback event, which results in the netlogon service to be paused. End result : your DC will screwed and you'll need to <strong>rebuild<\/strong> it! (<a href=\"http:\/\/support.microsoft.com\/kb\/875495\">http:\/\/support.microsoft.com\/kb\/875495<\/a>)<\/li>\n<\/ol>\n<h4>Back up Powered On VM's<\/h4>\n<p>The basic technique used to back up running VM's is based upon native VMWare commands, but Massimiliano Daneri from www.vmts.net has built a very nice wrapper around the necessary commands. Go to his website and download the vmbk.pl package. (Current version is 3.0 revision 11). Copy the file to your esx hosts (using scp or Veeam's FastSCP). Put the file under \/tmp.<br \/>\nNext, open a root shell on the esx host and go to the \/tmp folder<br \/>\nUnpack the tar.gz archive by running : <span style=\"font-size: 9pt; font-family: courier new;\"><strong>tar \u2013xvfz vmbk.tar.gz<br \/>\n<\/strong><\/span>Go into the extracted folder : <span style=\"font-size: 9pt; font-family: courier new;\">cd vmbk<\/span><br \/>\nRun the install script : <span style=\"font-size: 9pt; font-family: courier new;\">.\/install.sh<\/span><\/p>\n<p>Note :If you already had an older version running on your server, you can do an inplace upgrade. The install.sh script will not overwrite any config files.<\/p>\n<p>The install script has copied the <span style=\"font-size: 9pt; font-family: courier new;\">vmbk.pl<\/span> script to <span style=\"font-size: 9pt; font-family: courier new;\">\/usr\/local\/bin<\/span> folder, along with the default config file <span style=\"font-size: 9pt; font-family: courier new;\">vmbk-default.conf. <\/span><\/p>\n<p>There are many ways to set up the config files and schedule the script, but I'd like to do it my way (which does not necessarily mean that my way is better\u2026 it's just somewhat different than the procedure which is provided on the vmts.net website).<\/p>\n<p>First of all, you'll need to determine the folders on your ESX server that contain the vmdk\/vmx files of the machines that need to be backed up. Don't forget : do NOT use this vmbk.pl script to back up Domain Controllers. The backup will be useless AND you'll screw up your running DC !<\/p>\n<p>My lab has 3 machines : Venus (which is the DC), Apollo, and Hercules<\/p>\n<p>The live machines are stored under :<br \/>\n<span style=\"font-family: courier new;\"><span style=\"font-size: 9pt\">\/vmfs\/volumes\/storage1\/apollo<br \/>\n\/vmfs\/volumes\/storage1\/hercules<br \/>\n\/vmfs\/volumes\/storage1\/Venus<\/span> <\/span><\/p>\n<p>The volume on the SAN that will be used to hold the backed up version of the machines is : <span style=\"font-size: 9pt; font-family: courier new;\">\/vmfs\/volumes\/SAN_os_Storage_170Gb\/backups<\/span><\/p>\n<p>Next, copy the default, unmodified, vmbk config file from \/usr\/local\/bin to <span style=\"font-size: 9pt; font-family: courier new;\">\/vmfs\/volumes\/storage1\/apollo<\/span> and to <span style=\"font-size: 9pt; font-family: courier new;\">\/vmfs\/volumes\/storage1\/hercules. <\/span>I want to make sure I'm not using the wrong config file for a certain machine, so I've renamed the config files and included the name of the virtual machine in the name of the config file. This is not a requirement for the script to work. So basically, the config file setup looks like this :<\/p>\n<p><span style=\"font-size: 9pt; font-family: courier new;\">[root@esx01 storage1]# pwd<br \/>\n\/vmfs\/volumes\/storage1<br \/>\n[root@esx01 storage1]# find -name vmbk*.conf<br \/>\n.\/apollo\/vmbk-apollo.conf<br \/>\n.\/hercules\/vmbk-hercules.conf<br \/>\n[root@esx01 storage1]# <\/span><\/p>\n<p>Edit both files and go over the parameters. The following parameters needed my attention :<\/p>\n<p><span style=\"font-size: 9pt; font-family: courier new;\">backupESX=true<br \/>\ndestination=\/vmfs\/volumes\/SAN_os_Storage_170Gb\/backups<br \/>\nRestore=true<br \/>\nBackupVMX=true<br \/>\nDiskFormat=VMDK<br \/>\nusecp=false<br \/>\nemail=true<br \/>\nsmtpserver=&lt;ip of your mailserver&gt;<br \/>\nto=&lt;your email address&gt;<br \/>\nfrom=&lt;from email address&gt;<br \/>\nencode=base64<br \/>\nhtml=true <\/span><\/p>\n<p>(I did not change any of the other parameters. )<\/p>\n<p>After editing the files, let's make a \"master\" script that will be used in the crontab, launching the 2 backups. Go to \/root and create a folder bin (if it doesn't exist already). Set the permissions on that bin folder to \"root\" only (chmod 700 \/root\/bin \u2013R).<\/p>\n<p>Create a file called backupvms.sh under \/root\/bin and put the following 2 lines in there (change the paths and filenames to reflect your environment of course):<br \/>\n<span style=\"font-size: 9pt; font-family: courier new;\">\/usr\/bin\/perl \/usr\/local\/bin\/vmbk.pl -d \/vmfs\/volumes\/SAN_os_Storage_170Gb\/backups -1 -4 -c -C \/vmfs\/volumes\/storage1\/hercules\/vmbk-hercules.conf -x \/vmfs\/volumes\/storage1\/hercules\/hercules.vmx<br \/>\n\/usr\/bin\/perl \/usr\/local\/bin\/vmbk.pl -d \/vmfs\/volumes\/SAN_os_Storage_170Gb\/backups -1 -4 -c -C \/vmfs\/volumes\/storage1\/apollo\/vmbk-apollo.conf -x \/vmfs\/volumes\/storage1\/apollo\/apollo.vmx<\/span><\/p>\n<p>This will first launch the vmbk.pl script, with the following parameters : (first script)<br \/>\n-d : use <span style=\"font-size: 9pt; font-family: courier new;\">\/vmfs\/volumes\/SAN_os_Storage_170Gb\/backups<\/span> as destination<br \/>\n-1 : always use vmdk extension (for export)<br \/>\n-4 : backup configuration file and CMOS<br \/>\n-c : create restore command on export directory (doesn't work with the current version)<br \/>\n-C : use <span style=\"font-size: 9pt; font-family: courier new;\">\/vmfs\/volumes\/storage1\/hercules\/vmbk-hercules.conf<\/span> as config file<br \/>\n-x : select guest by vmx file, use <span style=\"font-size: 9pt; font-family: courier new;\">\/vmfs\/volumes\/storage1\/hercules\/hercules.vmx<\/span><\/p>\n<p>Note : You could leave out the \u2013d and \u2013c parameters, as they are specified in the config file.<\/p>\n<p>Now edit the crontab, from your root shell, using the <span style=\"font-size: 9pt; font-family: courier new;\">crontab \u2013e<\/span> command. Assuming that you want to backup your guests on Sunday morning, 3:30am : Add the following entry :<\/p>\n<p><span style=\"font-size: 9pt; font-family: courier new;\">30 3 * * 0 \/bin\/sh \/root\/bin\/backupvm.sh &gt; \/dev\/null 2&gt;&amp;1 <\/span><\/p>\n<p>Save and exit.<\/p>\n<p>The last thing we need to do is to allow the ESX host to connect to your mailserver. You will have to change the ESX firewall for this. Run the following command to allow outgoing traffic on port 25 (for smtp) : <span style=\"font-size: 9pt; font-family: courier new;\">esxcfg-firewall -o 25,tcp,out,smtpclient<\/span><\/p>\n<p>Now, when the script runs, a snapshot will be made of the running guests. The machine will be backed up to the backup folder using the vmware tools export functionality, and the snapshot delta will be applied to the running machine. When each script completes, you'll receive an email that looks more or less like this :<\/p>\n<p><a href=\"https:\/\/www.corelan.be\/wp-content\/uploads\/2008\/09\/092307-0940-howtobackup1.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.corelan.be\/wp-content\/uploads\/2008\/09\/092307-0940-howtobackup1-thumb.png\" alt=\"092307_0940_Howtobackup1\" width=\"551\" height=\"514\"><\/a><\/p>\n<p>Quick note : the script will only backup running machines. If your machine is not running, no backup will be made.<\/p>\n<p>The script and config files, as configured in this procedure, will allow the backup script to backup ALL disks from the virtual machine. In my setup, I only use vmware based disks for OS partitions, and then use the Microsoft iSCSI initiator to connect to the SAN and mount additional disks within Windows. Those disks will not be backed up as part of this script !<\/p>\n<p>If you don't want certain (vmdk) disks to be backed up, you need to specify this in the corresponding vmx file. Have a look at http:\/\/www.vmts.net\/vmbkmanualv3.htm and look for \"option in vmx configuration file \u2013&gt; SCSIX:Y\"<\/p>\n<h4>Back up Windows AD Domain Controllers<\/h4>\n<p>There's one machine left : the domain controller.<br \/>\nAs explained earlier, we cannot use the ESX snapshot functionality because it will break your DC. And since we cannot just copy the files while the machine is running, this is what you can do.<br \/>\nFirst of all, I'll assume you have multiple DC's running, so taking down a DC is not a big problem. Another requirement is that you have the vmware tools installed on the guest. This will allow you to properly shut down the machine.<\/p>\n<p>Next, edit the <span style=\"font-size: 9pt; font-family: courier new;\">\/root\/bin\/backupvms.sh<\/span> script and add the following lines :<\/p>\n<p><span style=\"font-size: 9pt; font-family: courier new;\">#first, stop \"Venus\"<br \/>\nif [ -x \/usr\/bin\/vmware ]<br \/>\nthen<br \/>\nESXV3=`\/usr\/bin\/vmware -v | grep \"ESX Server 3\"`<br \/>\nif [ -n \"$ESXV3\" ]<br \/>\nthen<br \/>\n# Get the VM list and grep on Venus<br \/>\nVMLIST=`\/usr\/bin\/vmware-cmd -l | grep Venus`<br \/>\nfor VM in $VMLIST<br \/>\ndo<br \/>\n# Get the VM state<br \/>\nVMSTATE=`\/usr\/bin\/vmware-cmd \"$VM\" getstate -q`<br \/>\n# Guest OS shutdown if VMSTATE is equal to \"on\"<br \/>\nif [ \"$VMSTATE\" == \"on\" ]<br \/>\nthen<br \/>\necho \"Stopping Venus ($VM)\"<br \/>\n\/usr\/bin\/vmware-cmd \"$VM\" stop trysoft<br \/>\nsleep 2<br \/>\nfi<br \/>\ndone<br \/>\n# Delay for 1,5 minute to give the VMs more time<br \/>\n# to cleanly shutdown<br \/>\nsleep 90<br \/>\nfi<br \/>\nfi <\/span><\/p>\n<p><span style=\"font-size: 9pt; font-family: courier new;\">#see if Venus has shut down<br \/>\nVMLIST=`\/usr\/bin\/vmware-cmd -l | grep Venus`<br \/>\nfor VM in $VMLIST<br \/>\ndo<br \/>\nVMSTATE=`\/usr\/bin\/vmware-cmd \"$VM\" getstate -q`<br \/>\nif [ \"$VMSTATE\" == \"off\" ]<br \/>\nthen<br \/>\n#remove the old backup folder<br \/>\n\/bin\/rm \/vmfs\/volumes\/SAN_os_Storage_170Gb\/backups\/Venus -rf &gt;&gt;\/var\/log\/backup.log<br \/>\n#create a new backup folder<br \/>\n\/bin\/mkdir \/vmfs\/volumes\/SAN_os_Storage_170Gb\/backups\/Venus &gt;&gt;\/var\/log\/backup.log<br \/>\n#copy all files to the backup folder<br \/>\n\/bin\/cp \/vmfs\/volumes\/storage1\/Venus\/* \/vmfs\/volumes\/SAN_os_Storage_170Gb\/backups\/Venus -R &gt;&gt;\/var\/log\/backup.log<br \/>\nfi<br \/>\ndone <\/span><\/p>\n<p><span style=\"font-size: 9pt; font-family: courier new;\">#start Venus again<br \/>\nif [ -x \/usr\/bin\/vmware ]<br \/>\nthen<br \/>\nESXV3=`\/usr\/bin\/vmware -v | grep \"ESX Server 3\"`<br \/>\nif [ -n \"$ESXV3\" ]<br \/>\nthen<br \/>\n# Get the VM list and grep on Venus<br \/>\nVMLIST=`\/usr\/bin\/vmware-cmd -l | grep Venus`<br \/>\nfor VM in $VMLIST<br \/>\ndo<br \/>\n# Get the VM state<br \/>\nVMSTATE=`\/usr\/bin\/vmware-cmd \"$VM\" getstate -q`<br \/>\n# Guest OS shutdown if VMSTATE is equal to \"off\"<br \/>\nif [ \"$VMSTATE\" == \"off\" ]<br \/>\nthen<br \/>\necho \"Starting Venus ($VM)\"<br \/>\n\/usr\/bin\/vmware-cmd \"$VM\" start<br \/>\nsleep 2<br \/>\nfi<br \/>\ndone<br \/>\nfi<br \/>\nfi <\/span><\/p>\n<p>Pay attention: when doing a copy\/paste of the script, some of the lines in the script may be split into 2 lines \u2013 make sure to check every line and reassemble the broken lines. Save and exit. Before you run this script, you'll need to test. If you have multiple machines that have \"Venus\" in the name, you'll need to change the \"grep\" parameter to ensure that you are only stopping the machine that needs to be stopped.<\/p>\n<p>That's it. This will backup your running machines using vmbk.pl and backup your DC by stopping the machine, copying the files, and starting the machine again.<\/p>\n<p>The entire script can be downloaded from<br \/>\n[download id=\"1\"]<\/p>\n<h4>How to restore ?<\/h4>\n<p>Since the current version (rev11) does not support creating the .restore shell script yet, you'll have to perform the restore manually. See http:\/\/www.vmts.net\/snitz\/topic.asp?TOPIC_ID=316 for more info on restoring without the .restore script<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Today, I will try to explain 2 techniques that will allow you to backup your vmdk files (virtual machines) on a VMWare ESX 3.0.x server. My lab runs on 3.0.2, but this will work on 3.0.1 (and maybe earlier versions) as well. Before continuing, let's make a couple of assumptions : I will explain how &hellip; <a href=\"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> \"How to backup VMWare ESX virtual machines\"<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[373,233],"tags":[3740,240,32],"class_list":["post-160","post","type-post","status-publish","format-standard","hentry","category-scripts","category-virtualization","tag-backup-restore","tag-vmware","tag-active-directory"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>How to backup VMWare ESX virtual machines - Corelan | Exploit Development &amp; Vulnerability Research<\/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.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to backup VMWare ESX virtual machines - Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"og:description\" content=\"Today, I will try to explain 2 techniques that will allow you to backup your vmdk files (virtual machines) on a VMWare ESX 3.0.x server. My lab runs on 3.0.2, but this will work on 3.0.1 (and maybe earlier versions) as well. Before continuing, let&#039;s make a couple of assumptions : I will explain how &hellip; Continue reading &quot;How to backup VMWare ESX virtual machines&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/\" \/>\n<meta property=\"og:site_name\" content=\"Corelan | Exploit Development &amp; Vulnerability Research\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/corelanconsulting\" \/>\n<meta property=\"article:published_time\" content=\"2007-09-23T21:39:52+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.corelan.be\/wp-content\/uploads\/2008\/09\/092307-0940-howtobackup1-thumb.png\" \/>\n<meta name=\"author\" content=\"corelanc0d3r\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@corelanc0d3r\" \/>\n<meta name=\"twitter:site\" content=\"@corelanc0d3r\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/\"},\"author\":{\"name\":\"corelanc0d3r\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\"},\"headline\":\"How to backup VMWare ESX virtual machines\",\"datePublished\":\"2007-09-23T21:39:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/\"},\"wordCount\":1768,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2008\\\/09\\\/092307-0940-howtobackup1-thumb.png\",\"keywords\":[\"backup restore\",\"vmware\",\"Active Directory\"],\"articleSection\":[\"Scripts\",\"Virtualization\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/\",\"name\":\"How to backup VMWare ESX virtual machines - Corelan | Exploit Development &amp; Vulnerability Research\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2008\\\/09\\\/092307-0940-howtobackup1-thumb.png\",\"datePublished\":\"2007-09-23T21:39:52+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2008\\\/09\\\/092307-0940-howtobackup1-thumb.png\",\"contentUrl\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2008\\\/09\\\/092307-0940-howtobackup1-thumb.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/2007\\\/09\\\/23\\\/how-to-backup-vmware-esx-virtual-machines\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.corelan.be\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to backup VMWare ESX virtual machines\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#website\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"name\":\"Corelan CyberSecurity Research\",\"description\":\"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.corelan.be\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#organization\",\"name\":\"Corelan CyberSecurity Research\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"contentUrl\":\"https:\\\/\\\/www.corelan.be\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/corelanlogo2_small-20.png\",\"width\":200,\"height\":200,\"caption\":\"Corelan CyberSecurity Research\"},\"image\":{\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/corelanconsulting\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\",\"https:\\\/\\\/x.com\\\/corelanconsulting\",\"https:\\\/\\\/instagram.com\\\/corelanconsult\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.corelan.be\\\/#\\\/schema\\\/person\\\/3be5542b9b0a0787893db83a5ad68e8f\",\"name\":\"corelanc0d3r\",\"pronouns\":\"he\\\/him\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x\",\"caption\":\"corelanc0d3r\"},\"description\":\"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.\",\"sameAs\":[\"https:\\\/\\\/www.corelan-training.com\",\"https:\\\/\\\/instagram.com\\\/corelanc0d3r\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/petervaneeckhoutte\\\/\",\"https:\\\/\\\/x.com\\\/corelanc0d3r\"],\"url\":\"https:\\\/\\\/www.corelan.be\\\/index.php\\\/author\\\/admin0\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to backup VMWare ESX virtual machines - Corelan | Exploit Development &amp; Vulnerability Research","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.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/","og_locale":"en_US","og_type":"article","og_title":"How to backup VMWare ESX virtual machines - Corelan | Exploit Development &amp; Vulnerability Research","og_description":"Today, I will try to explain 2 techniques that will allow you to backup your vmdk files (virtual machines) on a VMWare ESX 3.0.x server. My lab runs on 3.0.2, but this will work on 3.0.1 (and maybe earlier versions) as well. Before continuing, let's make a couple of assumptions : I will explain how &hellip; Continue reading \"How to backup VMWare ESX virtual machines\"","og_url":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/","og_site_name":"Corelan | Exploit Development &amp; Vulnerability Research","article_publisher":"https:\/\/www.facebook.com\/corelanconsulting","article_published_time":"2007-09-23T21:39:52+00:00","og_image":[{"url":"https:\/\/www.corelan.be\/wp-content\/uploads\/2008\/09\/092307-0940-howtobackup1-thumb.png","type":"","width":"","height":""}],"author":"corelanc0d3r","twitter_card":"summary_large_image","twitter_creator":"@corelanc0d3r","twitter_site":"@corelanc0d3r","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/#article","isPartOf":{"@id":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/"},"author":{"name":"corelanc0d3r","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f"},"headline":"How to backup VMWare ESX virtual machines","datePublished":"2007-09-23T21:39:52+00:00","mainEntityOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/"},"wordCount":1768,"commentCount":0,"publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"image":{"@id":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/#primaryimage"},"thumbnailUrl":"https:\/\/www.corelan.be\/wp-content\/uploads\/2008\/09\/092307-0940-howtobackup1-thumb.png","keywords":["backup restore","vmware","Active Directory"],"articleSection":["Scripts","Virtualization"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/","url":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/","name":"How to backup VMWare ESX virtual machines - Corelan | Exploit Development &amp; Vulnerability Research","isPartOf":{"@id":"https:\/\/www.corelan.be\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/#primaryimage"},"image":{"@id":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/#primaryimage"},"thumbnailUrl":"https:\/\/www.corelan.be\/wp-content\/uploads\/2008\/09\/092307-0940-howtobackup1-thumb.png","datePublished":"2007-09-23T21:39:52+00:00","breadcrumb":{"@id":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/#primaryimage","url":"https:\/\/www.corelan.be\/wp-content\/uploads\/2008\/09\/092307-0940-howtobackup1-thumb.png","contentUrl":"https:\/\/www.corelan.be\/wp-content\/uploads\/2008\/09\/092307-0940-howtobackup1-thumb.png"},{"@type":"BreadcrumbList","@id":"https:\/\/www.corelan.be\/index.php\/2007\/09\/23\/how-to-backup-vmware-esx-virtual-machines\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.corelan.be\/"},{"@type":"ListItem","position":2,"name":"How to backup VMWare ESX virtual machines"}]},{"@type":"WebSite","@id":"https:\/\/www.corelan.be\/#website","url":"https:\/\/www.corelan.be\/","name":"Corelan CyberSecurity Research","description":"Corelan publishes in-depth tutorials on exploit development, Windows exploitation, vulnerability research, heap internals, reverse engineering and security tooling used by professionals worldwide.","publisher":{"@id":"https:\/\/www.corelan.be\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.corelan.be\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.corelan.be\/#organization","name":"Corelan CyberSecurity Research","url":"https:\/\/www.corelan.be\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/","url":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","contentUrl":"https:\/\/www.corelan.be\/wp-content\/uploads\/2026\/03\/corelanlogo2_small-20.png","width":200,"height":200,"caption":"Corelan CyberSecurity Research"},"image":{"@id":"https:\/\/www.corelan.be\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/corelanconsulting","https:\/\/x.com\/corelanc0d3r","https:\/\/x.com\/corelanconsulting","https:\/\/instagram.com\/corelanconsult"]},{"@type":"Person","@id":"https:\/\/www.corelan.be\/#\/schema\/person\/3be5542b9b0a0787893db83a5ad68e8f","name":"corelanc0d3r","pronouns":"he\/him","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","url":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3783bed6acd72d7fa5bb2387d88acbb9a3403e7cada60b2037e1cbb74ad451f9?s=96&d=mm&r=x","caption":"corelanc0d3r"},"description":"Peter Van Eeckhoutte is the founder of Corelan and a globally recognized expert in exploit development and vulnerability research. With over two decades in IT security, he built Corelan into a respected platform for deep technical research, hands-on training, and knowledge sharing. Known for his influential exploit development tutorials, tools, and real-world training, Peter combines a strong research mindset with a passion for education\u2014helping security professionals understand not just how exploits work, but why.","sameAs":["https:\/\/www.corelan-training.com","https:\/\/instagram.com\/corelanc0d3r","https:\/\/www.linkedin.com\/in\/petervaneeckhoutte\/","https:\/\/x.com\/corelanc0d3r"],"url":"https:\/\/www.corelan.be\/index.php\/author\/admin0\/"}]}},"views":14370,"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/160","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/comments?post=160"}],"version-history":[{"count":0,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/posts\/160\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/media?parent=160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/categories?post=160"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.corelan.be\/index.php\/wp-json\/wp\/v2\/tags?post=160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}