0

Hi we had some problems with our server filling up because of snapshots then failing to turn on,

I have managed to copy everything across and repair the snapshot descriptor files (hopefully).

The problem is the last snapshot data file in the chain no longer exists.

I have been trying to turn the vm on using Workstation but it gives an error saying it can't find that last file.

What options do I have now?

Vm was created in vmware esxi 4.1 and is an Ubuntu 10.10 64bit vm.

I have tried mounting the vm, but it only mounts the flat file which has really old data on it.

The main .vmdk file contains this, there was 13 snapshots (i know bad), with the 13th one missing.

# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=3fdc2270
parentCID=ffffffff
isNativeSnapshot="no"
createType="vmfs"

# Extent description
RW 1468006400 VMFS "Ubuntu 10.10 64bit-flat.vmdk"

# The Disk Data Base 
#DDB

ddb.toolsVersion = "8290"
ddb.adapterType = "lsilogic"
ddb.thinProvisioned = "1"
ddb.geometry.sectors = "63"
ddb.geometry.heads = "16"
ddb.geometry.cylinders = "16383"
ddb.uuid = "60 00 C2 9b 77 97 73 b0-1a 8a 88 8d 95 86 63 92"
ddb.longContentID = "683825f0bd3ea08938742a933fdc2270"
ddb.virtualHWVersion = "7"
ddb.uuid.image = "cb1659d9-62ae-4869-90ea-9690fa7c9adc"
ddb.uuid.modification = "4fe52ccf-d698-488f-970d-369aa3571eb2"
ddb.uuid.parent = "00000000-0000-0000-0000-000000000000"
ddb.uuid.parentmodification = "57854f45-ab17-44d4-aa0a-92c2ba69128c"
ddb.geometry.biosCylinders = "1024"
ddb.geometry.biosHeads = "255"
ddb.geometry.biosSectors = "63"

The .vmk file

#!/usr/bin/vmware
.encoding = "UTF-8"
config.version = "8"
virtualHW.version = "7"
pciBridge0.present = "TRUE"
pciBridge4.present = "TRUE"
pciBridge4.virtualDev = "pcieRootPort"
pciBridge4.functions = "8"
pciBridge5.present = "TRUE"
pciBridge5.virtualDev = "pcieRootPort"
pciBridge5.functions = "8"
pciBridge6.present = "TRUE"
pciBridge6.virtualDev = "pcieRootPort"
pciBridge6.functions = "8"
pciBridge7.present = "TRUE"
pciBridge7.virtualDev = "pcieRootPort"
pciBridge7.functions = "8"
vmci0.present = "TRUE"
nvram = "Ubuntu 10.10 64bit.nvram"
virtualHW.productCompatibility = "hosted"
powerType.powerOff = "soft"
powerType.powerOn = "hard"
powerType.suspend = "hard"
powerType.reset = "soft"
displayName = "Ubuntu 10.10 64bit"
extendedConfigFile = "Ubuntu 10.10 64bit.vmxf"
floppy0.present = "TRUE"
numvcpus = "1"
scsi0.present = "TRUE"
scsi0.sharedBus = "none"
scsi0.virtualDev = "lsilogic"
memsize = "500"
scsi0:0.present = "TRUE"
scsi0:0.fileName = "Ubuntu 10.10 64bit-000007.vmdk"
scsi0:0.deviceType = "disk"
ide1:0.present = "TRUE"
ide1:0.fileName = ""
ide1:0.deviceType = "atapi-cdrom"
floppy0.startConnected = "FALSE"
floppy0.fileName = ""
floppy0.clientDevice = "TRUE"
ethernet0.present = "TRUE"
ethernet0.virtualDev = "e1000"
ethernet0.networkName = "VM Network"
ethernet0.addressType = "generated"
svga.autodetect = "TRUE"
chipset.onlineStandby = "FALSE"
guestOS = "ubuntu-64"
uuid.location = "56 4d 2d 91 89 e0 42 a5-51 dc bf 0f 96 37 99 24"
uuid.bios = "56 4d 2d 91 89 e0 42 a5-51 dc bf 0f 96 37 99 24"
vc.uuid = "52 55 6d 32 84 61 28 32-6d 24 ef ed f8 6f ce d6"
snapshot.action = "keep"
sched.cpu.min = "0"
sched.cpu.units = "mhz"
sched.cpu.shares = "normal"
sched.mem.minsize = "0"
sched.mem.shares = "normal"
ide1:0.startConnected = "FALSE"
ethernet0.generatedAddress = "00:0C:29:01:63:A3"
svga.vramSize = "16777216"
vmci0.id = "1610703779"
tools.syncTime = "FALSE"
cleanShutdown = "TRUE"
replay.supported = "FALSE"
unity.wasCapable = "FALSE"
sched.swap.derivedName = "/vmfs/volumes/4cb58377-099d6cba-3e29-f04da206751f/Ubuntu 10.10 64bit/Ubuntu 10.10 64bit-ef71d4e1.vswp"
scsi0:0.redo = ""
pciBridge0.pciSlotNumber = "17"
pciBridge4.pciSlotNumber = "21"
pciBridge5.pciSlotNumber = "22"
pciBridge6.pciSlotNumber = "23"
pciBridge7.pciSlotNumber = "24"
scsi0.pciSlotNumber = "16"
ethernet0.pciSlotNumber = "32"
vmci0.pciSlotNumber = "33"
vmotion.checkpointFBSize = "33554432"
ethernet0.generatedAddressOffset = "0"
hostCPUID.0 = "0000000b756e65476c65746e49656e69"
hostCPUID.1 = "000106a510100800009ce3bdbfebfbff"
hostCPUID.80000001 = "00000000000000000000000128100800"
guestCPUID.0 = "0000000b756e65476c65746e49656e69"
guestCPUID.1 = "000106a500010800809822010febfbff"
guestCPUID.80000001 = "00000000000000000000000128100800"
userCPUID.0 = "0000000b756e65476c65746e49656e69"
userCPUID.1 = "000106a510100800009822010febfbff"
userCPUID.80000001 = "00000000000000000000000128100800"
evcCompatibilityMode = "FALSE"
checkpoint.vmState.readOnly = "FALSE"
checkpoint.vmState = ""
replay.filename = ""
debugStub.linuxOffsets = "0x0,0xffffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0"
ide1:0.clientDevice = "TRUE"
scsi0:0.mode = "persistent"
sched.scsi0:0.shares = "normal"
sched.scsi0:0.throughputCap = "none"
vcpu.hotadd = "TRUE"
mem.hotadd = "TRUE"

Sorted by filename

File Name-parent    Actual chain order
1          -4                 main
2          -1                  3
3          -main           11
4          -13                 12
5          -2   
6          -5   
7          -6   
11         -3   
12        -11   


    The missing snapshot is 13
user964406
  • 19
  • 1
  • 3

2 Answers2

2

The snapshot file contains all new data written to disk since the snapshot was took. If you do not have the last snapshot you will lose all data written since the last snapshot. You will need to edit the vmdk file (the small text file, not the *flat.vmdk) and remove the snapshot reference.

Mircea Vutcovici
  • 17,619
  • 4
  • 56
  • 83
  • This is the problem, there is no reference to any snapshots in the vmdk file. I have updated the first post with the .vmdk file contents – user964406 Dec 22 '11 at 01:56
  • Check then the .vmx file. – Mircea Vutcovici Dec 22 '11 at 02:08
  • I can't see any reference, posted that up as well. It must be seeing the snapshots somehow if it displays that one is missing? – user964406 Dec 22 '11 at 02:18
  • You have `scsi0:0.fileName = "Ubuntu 10.10 64bit-000007.vmdk"` in the .vmx file. Is this the lost snapshot? – Mircea Vutcovici Dec 22 '11 at 02:22
  • Try to change it to the previous snapshot file. Make a backup of all files of the VM before doing any change. – Mircea Vutcovici Dec 22 '11 at 02:23
  • I posted the files name, their parent and what I can find is the actual order and it seems nothing has snapshot 12 as its parent so the chain ends there? (A person on the vmware forums fixed all the descriptor files up for me) – user964406 Dec 22 '11 at 03:08
  • let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/2058/discussion-between-user964406-and-mircea-vutcovici) – user964406 Dec 22 '11 at 03:28
-2

It is very complicated task. One time I had a same situation. One snapshot was missed. The missed snapshot was one of the very first (made long time ago).

So what I did: I just copied another one snapshot file and renamed it. And it just worked. But maybe I was very lacy...

But it was not ESX/ESXi, it was VMWare Workstation.

And of course make a backup of all files of the VM before doing anything.

BBK
  • 515
  • 1
  • 5
  • 18