Access VMFS Volumes without a VMware Host
As VMWare becomes more prevalent in more environments, the ability to access VMWare formatted file systems (VMFS) from other operating systems is increasingly important. In most cases where the need to access a VMWare disk on a non VMWare system arises, the issue is a time critical “system down” event. If your environment has more than one VMWare server, chances are that you can simply put the hard drive – or remap the LUN – into another VMWare system. Unfortunately, that is not always possible. There are also cases in which the VMFS has become corrupt in such a way that ESXI will not talk to it. In these circumstances we turn to the open source VMFS driver written by fluid Ops.
This article will address accessing VMFS under Windows. For the purposes of this article, I am going to assume that you have the latest Java 6 Runtime Environment (32-bit) installed on your computer. This method is untested with Java 7.
How to Access VMWare VMFS Volumes
Before we begin, we need to know what physical drive number Windows has assigned to the VMWare drive. In order to do this, open up Computer Management.
From within Computer Management, navigate to Storage -> Disk Management and find the disk labelled as an Unknown Partition.
Write down which disk represents the unknown partition. Next, go to the Open Source VMFS Driver.
Select Downloads and download the latest version by clicking on the file name. It will typically be listed as “featured.”
This will take you to a verification page. Click the file name one more time to download.
Open the file that downloads. It will be a ZIP archive.
Inside the archive will be a folder labelled VMFS_the version number (for example: vmfs_r95). Copy this folder out of the ZIP into any location on your hard drive that you choose.
Make sure you write down where you copied the folder. I prefer to copy such things to C:\Data Store\
Next, we need to open an administrative Command Prompt. Go to Start, then open Programs. From there, go to Accessories and right-click Command Prompt.
Select Run as Administrator.
Select Yes to the User Account Control Prompt.
This will bring up an administrative command prompt window. Type in cd “c:\Program Files (x86)\Java\jre6\bin\java.exe” and click Enter.
For this next step, it’s important to know where you placed the VMFS folder you downloaded, as well as the physical drive number of the drive you wish to access. Please note that I have placed the folder here: c:\data store\vmfs_r95 — on my system, the drive appears as physical drive 3. In this case, the command to hook the driver to the drive is:
java.exe -jar “c:\data store\vmfs_r95\fvmfs.jar” \\.\PhysicalDrive3 webdav
Type it into your administrative command prompt, replacing the appropriate elements, and hit Enter.
Assuming all goes to plan and that the VMFS volume that you are attempting to access is not too corrupt for the driver to read, this will launch a small web server offering up WEBDAV access and basic browsable http access to the files on the drive. This driver should provide access to most VMFS volumes suffering simple corruption due to an unexpected power outage, but it may error out if the corruption is more severe. You can get access to the files on your drive by opening a web browser and pointing it at http://localhost:50080/vmfs. DO NOT close the command prompt window.
You will see a series of files ending in .sf – you can safely ignore these. Descending into the directories will provide you access to the files which contain the virtual machines that you need to recover.
For those who wish a brief look at how to accomplish the same task under Ubuntu, please take a look at this article on Accessing VMFS partitions.