Announcing vmfs-tools version 0.2.5

The last release of vmfs-tools (0.2.1) was almost 2 years ago. It was about time to bring some of the changes that have been available in the git repository in an official tarball. So here it is.

It brings some limited VMFS 5 support and experimental extent removal, as well as some deep changes to the debugvmfs tool and various fixes.

Next release (0.2.6) will have a fixed fsck, which, while it still won’t fix file system inconsistencies, should at least report actual inconsistencies (which is far from being true currently). I won’t give any estimation as to when this will happen, though.

2012-03-25 11:02:03+0200

vmfs-tools

You can leave a response, or trackback from your own site.

6 Responses to “Announcing vmfs-tools version 0.2.5”

  1. rjc Says:

    Hi Mike,

    I had to follow the link to vmfs Google code web page to find out what VMFS actually is.

    I couldn’t find any links or information on your website or even the README on github.

    Just a thought.

  2. Jack VB Says:

    Just wanted to say that your work helped me recover over 4TB of vmdk files from a three lun extent vmfs filesystem that ESX refused to recognize. We even had VMWare themselves analyze the extents and they told us they were corrupt and we might as well restore from backup. Saved me days of restoring from tape not to mention extended downtime. +6 Beers

  3. Ulli Hankeln Says:

    Hello Mike
    thanks a lot for the new version. I used it several times with good results.
    Now I have a very tricky case and I hope that you may know a trick. An unreadable VMFS 5 volume cant be mounted with vmfs-fuse. It complains about a bad magic number. I have a good volume of exactly the same size and want to extract the section with the magic number from the working volume and inject it into the corrupt one. Can you tell me where in the vmfs-volume this details are stored so that I can inject that part ?
    Thanks a lot for your great work

    Regards Ulli

  4. ArrowSIVAC Says:

    This is likly not the appropriate place to make a posting but I am running out of options. The VMFS volume for our lab environment has been down for over two weeks and I just need to mount the volume one more time to rip the data to a new target. The VMWare posting is here: http://communities.vmware.com/thread/412601

    I have tried to compile vmfstools on Everything installs of CENTOS48 CENTOS55 Ubuntu 12… and though ubuntu is the ONLY distro which compilesthe vmfs-tools without error, I am stuck as getting the volume to mount (details below if of value)

    ******************
    login as: ibm
    ibm@172.20.13.28‘s password:
    Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)

    * Documentation: https://help.ubuntu.com/

    System information as of Tue Jul 31 01:09:23 EDT 2012

    System load: 0.16 Processes: 77
    Usage of /: 8.5% of 14.69GB Users logged in: 0
    Memory usage: 3% IP address for eth0: 172.20.13.28
    Swap usage: 0%

    Graph this data and manage this system at https://landscape.canonical.com/

    Last login: Mon Jul 30 23:39:47 2012 from 192.168.59.31
    su ibm@ubuntu12:~$ su -
    Password:
    su: Authentication failure
    ibm@ubuntu12:~$ su -
    Password:
    su: Authentication failure
    ibm@ubuntu12:~$ vmfs-fuse
    VMFS: Unable to read FS information
    Unable to open volume.
    ibm@ubuntu12:~$
    ibm@ubuntu12:~$
    ibm@ubuntu12:~$ mount
    /dev/mapper/ubuntu12-root on / type ext4 (rw,errors=remount-ro)
    proc on /proc type proc (rw,noexec,nosuid,nodev)
    sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
    none on /sys/fs/fuse/connections type fusectl (rw)
    none on /sys/kernel/debug type debugfs (rw)
    none on /sys/kernel/security type securityfs (rw)
    udev on /dev type devtmpfs (rw,mode=0755)
    devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
    tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
    none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
    none on /run/shm type tmpfs (rw,nosuid,nodev)
    /dev/sda1 on /boot type ext2 (rw)
    ibm@ubuntu12:~$ sudo iscsiadm -m discovery -t st -p 172.20.31.40
    [sudo] password for ibm:
    172.20.31.40:3260,1 iqn.2003-10.com.lefthandnetworks:atllhn1:2686:bl490-ss-2
    ibm@ubuntu12:~$ sudo iscsiadm –m node –targetname iqn.2003-10.com.lefthandnetworks:atllhn1:2686:bl490-ss-2 –portal 172.20.31.40 –login
    Logging in to [iface: default, target: iqn.2003-10.com.lefthandnetworks:atllhn1:2686:bl490-ss-2, portal: 172.20.31.40,3260]
    Login to [iface: default, target: iqn.2003-10.com.lefthandnetworks:atllhn1:2686:bl490-ss-2, portal: 172.20.31.40,3260]: successful
    ibm@ubuntu12:~$ sudo iscsiadm -m session
    tcp: [1] 172.20.31.40:3260,1 iqn.2003-10.com.lefthandnetworks:atllhn1:2686:bl490-ss-2
    ibm@ubuntu12:~$ sudo fdisk -l

    Disk /dev/sda: 17.2 GB, 17179869184 bytes
    255 heads, 63 sectors/track, 2088 cylinders, total 33554432 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0×00062394

    Device Boot Start End Blocks Id System
    /dev/sda1 * 2048 499711 248832 83 Linux
    /dev/sda2 501758 33552383 16525313 5 Extended
    /dev/sda5 501760 33552383 16525312 8e Linux LVM

    Disk /dev/mapper/ubuntu12-root: 15.8 GB, 15825108992 bytes
    255 heads, 63 sectors/track, 1923 cylinders, total 30908416 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0×00000000

    Disk /dev/mapper/ubuntu12-root doesn’t contain a valid partition table

    Disk /dev/mapper/ubuntu12-swap_1: 1069 MB, 1069547520 bytes
    255 heads, 63 sectors/track, 130 cylinders, total 2088960 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0×00000000

    Disk /dev/mapper/ubuntu12-swap_1 doesn’t contain a valid partition table

    Disk /dev/sdb: 279.2 GB, 279172874240 bytes
    255 heads, 63 sectors/track, 33940 cylinders, total 545259520 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x000927cf

    Device Boot Start End Blocks Id System
    /dev/sdb1 128 524281274 262140573+ fb VMware VMFS
    ibm@ubuntu12:~$ sudo vmfs-fuse /dev/sdb /media/cdrom/
    VMFS VolInfo: invalid magic number 0×00000000
    VMFS: Unable to read volume information
    Trying to find partitions
    ibm@ubuntu12:~$
    ibm@ubuntu12:~$ sudo parted /dev/sdb
    GNU Parted 2.3
    Using /dev/sdb
    Welcome to GNU Parted! Type ‘help’ to view a list of commands.
    (parted) p
    Model: LEFTHAND iSCSIDisk (scsi)
    Disk /dev/sdb: 279GB
    Sector size (logical/physical): 512B/512B
    Partition Table: msdos

    Number Start End Size Type File system Flags

    1 65.5kB 268GB 268GB primary

    ************

    Thanks,

  5. glandium Says:

    Have you tried looking under /media/cdrom? The error message is confusing, but since it says nothing after “Trying to find partitions”, it may have worked.

  6. Richard Correa Says:

    Greetings,

    First of all, thank you for the work you have done with this file system. It has helped a great many coders understand the intricacies of VMFS.

    I would like to know if there is a document that explains how the block mapping works as well as the unpacking of each the different block types. I have seen the macros but there seems to be some inconsistencies. I am sure it is my misunderstanding of how it all works.

    In addition, how is the offset determined for the first block in the file system.

    Finally, the reason I am trying to do this is that I am trying to recover files from the inode only and not a full file system. The file system I am working with has been destroyed but there are many inodes that are still intact. If I could unpack the inode and block data for each block type I could build a file then try and determine the file type by examining the contents of the file.

    Thank you for your patience.

    Warmest Regards,
    Richard Correa

Leave a Reply