Sunday, February 12, 2012

“esxconsole.vmdk” mssing, ESX host boot stops at the error: VSD mount/Bin/SH:cant access TTY job control turned off

This issue occurs if an esxconsole.vmdk file is missing in which the service console resides. We will need to recreate esxconsole.vmdk file and associate with esxconsole-flat.vmdk.

  1. Identify the location esxconsole.vmdk by running this command #grep -i cosvmdk /etc/vmware/esx.conf
  2. Output will similar to /boot/cosvmdk = "/vmfs/volumes/<uuid>/<dir>/esxconsole.vmdk" .
  3. Make note of the <uuid> and the <dir> values in the output.
  4. Verify that the files exist by running the command: #ls -al /vmfs/volumes/<uuid>/<dir>/*.vmdk  The output is similar to:
  5. total 7906560
    drwxr-xr-x 1 root root        840 May 21 00:45 .
    drwxr-xr-t 1 root root       2660 Oct 21 09:10 ..
    -rw------- 1 root root 8095006720 Oct 26 15:37 esxconsole-flat.vmdk
    -rw------- 1 root root        475 May 21 00:32 esxconsole.vmdk
    drwxr-xr-x 1 root root        980 May 21 00:45 logs

  6. Navigate to the directory that contains the virtual machine disk with the missing descriptor file using the command: #cd "/vmfs/volumes/<uuid>/<dir>
  7. Identify the type of SCSI controller the virtual disk is using. You can do this by examining the virtual machine configuration file (.vmx). The controller is identified by the line scsi#.virtualDev, where # is the controller number; there may be more than one controller and controller type attached to the virtual machine. This example uses bslgic:
  8. scsi0.present = "true"
    scsi0.sharedBus = "none"
    scsi1.present = "true"
    scsi1.sharedBus = "virtual"
    scsi1.virtualDev = "buslogic”

  9. Identify and record the exact size of the -flat file using a command similar to:
  10. # ls -l vmdisk0-flat.vmdk
    -rw------- 1 root root 4294967296 Oct 11 12:30 vmdisk0-flat.vmdk
  11. Use the vmkfstools command to create a new virtual disk:
  12. # vmkfstools -c 4294967296 –a buslogic temp.vmdk
    This command uses these flags:
    -c <size>  (This is the size of the virtual disk).
    -a <virtual controller> (Whether the virtual disk was configured to work with BusLogic or LSILogic).
    -d thin  (This creates the disk in a thin-provisioned format).

    Note: To save disk space, we create the disk in a thin-provisioned format using the type thin. The resulting flat file then consumes minimal amounts of space (1MB) instead of immediately assuming the capacity specified with the -c switch. The only consequence, however, is the descriptor file contains an extra line that must be removed manually in a later step.

    The files temp.vmdk and temp-flat.vmdk are created as a result.

  13. Delete temp-flat.vmdk, as it is not needed. Run the command:# rm temp-flat.vmdk
  14. Rename temp.vmdk to the name that is required to match the orphaned .flat file (or esxconsole.vmdk,in this example): # mv temp.vmdk esxconsole.vmdk
  15. Edit the descriptor file with a text editor (VI) : a) Under Extent Description section, change the name of the .flat file to match the orphaned .flat file you have. b) Find and remove the line ddb.thinProvisioned = "1" if the original .vmdk was not a thin disk. If it was, retain this line.
  16. # Disk DescriptorFile
    # Extent description
    RW 4294967296 VMFS "esxconsole-flat.vmdk"
    # The Disk Data Base
    ddb.virtualHWVersion = "4"
    ddb.geometry.cylinders = "522"
    ddb.geometry.heads = "255"
    ddb.geometry.sectors = "63"
    ddb.adapterType = "buslogic”

    ddb.consoleOsDisk = "True"
    ddb.thinProvisioned = “1”

  17. Restart the host to make the changes get affected.

No comments: