Skip to main content

Unable to poweron the VM. (Failed to lock the file)

I have encountered may issues like where after some upgrade or migration we were unable to power on the VM.

Figure 1

An error was received from the ESX host while powering on VM HSSVSQL01.
Failed to start the virtual machine.
Cannot open the disk '/vmfs/volumes/578d835c-18b2c97a-9b0d-0025b5f13920/SAMPLE1_cloud/000000.vmdk' or one of the snapshot disks it depends on.

Failed to lock the file

In above Figure:1, where while powering on the VM, its prompt for an error.

Well, there are several reason for where the VM unable to poweron and you can find many article on this.

Here in this article we will discuss to resolve this issue.

Please use below step to resolve the disk lock issue

  •  Checked that VM is running on snapshot if its getting error " VM Consolidation required".

  • Checked the snapshot manager if its showing any snapshot. If yes, try to delete the  snapshot.

  • Verified the same from Esxi cli to identify whether it has delta files are located on all or some of the disks.

  • Checked the consistency of the .vmdk file by using "vmkfstools -D /vmfs/volumes/.vmdk"

  • Disk consistency can also be checked from below command

     (find . -name \*.vmdk -size -10k | xargs egrep -i "CID|PID" | sort -n) This is a nice
     command which you can run inside the VM folder to check the consistency against CID
     and PID of the .VMDK files.

  • Verified by using touch command to VMDK " touch abcdefgh.vmdk to verify if there is any lock on the .VMDK.

  • Verified the snapshot from the Esxcli by using "vim-cmd vmsvc/snapshot.get (VMID)

  • If unable to find any snapshot available from the output but in actual there are snapshot on the VM.
  • Tried to delete the snapshot from the VM by using vim-cmd vmsvc/snapshot.removeall (vmid)

  • Checked the .ctk files under vm directory and move all the .ctk.vmdk files to other folder i.e (Temp folder)

  • Try cloning all the .vmdk base disk as the last snapshot disks are getting error of "failed to lock the file. If last snapshot files unable to create the clone drive, try cloning next above to that. Here in this case if any of the snapshot disk failes to take snapshot , there are chances to loose the data. Verify by using df -h to verify the .delta.vmdk disk size, if its less then 16 MB then there are rare chances to loose the data, but ifs more than that then chances of loosing data from snapshot disk is quite higher.

          Use below command to clone the snaphot file or base file of the .vmdk

        vmkfstools -i TEST01.vmdk vmfs/volumes/578d835c-18b2c97a-9b0d-
        0025b5f13920/SAMPLE1_cloud/000000.vmdk -d thin

  •  After cloning all the VM, attached all the disks to the VM, and now able to power on all the VM without any issue.

Happy Sharing.... :)

Popular posts from this blog

Changing the FQDN of the vCenter appliance (VCSA)

This article states how to change the system name or the FQDN of the vCenter appliance 6.x You may not find any way to change the FQDN from the vCenter GUI either from VAMI page of from webclient as the option to change the hostname always be greyed out. Now the option left is from the command line of VCSA appliance. Below steps will make it possible to change the FQDN of the VCSA from the command line. Access the VCSA from console or from Putty session. Login with root permission Use above command in the command prompt of VCSA : /opt/vmware/share/vami/vami_config_net Opt for option 3 (Hostname) Change the hostname to new name Reboot the VCSA appliance.   After reboot you will be successfully manage to change the FQDN of the VCSA . Note: Above step is unsupported by VMware and may impact your SSL certificate and face problem while logging to vSphere Web Client. If you are using self-signed certificate, you can regenerate the certificate with the

VM Creation Date & Time from Powercli

Most of the times we have several requirement when we talk about IT environment like designing , deployment , compliance check or for Security auditing the environment. Somewhere during security auditing we require to provide several information to security team to get successful audit. One of them is the compliance of Virtual machine auditing of creation date and time. Here into this post we will explore how to get the creation date and time of virtual machine hosted into the vCenter or ESXi. To get the details we will use VMware Powercli to extract the details. By default there is no function added into Powercli to get such details, so here we will add a function of vm creation date. Below is the function which needed to be copy and paste into the Powercli. ======================================================================= function  Get-VMCreationTime  {     $vms  =  get-vm     $vmevts  = @()     $vmevt  =  new-object  PSObject     for