Привет, у нас были проблемы с заполнением нашего сервера из-за того, что моментальные снимки не включались,
Мне удалось скопировать все и восстановить файлы дескриптора моментального снимка (надеюсь).
Проблема в том, что последний файл данных моментального снимка в цепочке больше не существует.
Я пытался включить виртуальную машину с помощью Workstation, но выдает ошибку, говоря, что не может найти последний файл.
Какие у меня есть возможности сейчас?
VM была создана в vmware esxi 4.1 и представляет собой 64-битную виртуальную машину Ubuntu 10.10.
Я пробовал смонтировать виртуальную машину, но она монтирует только плоский файл, на котором есть действительно старые данные.
Основной файл .vmdk содержит это, было 13 снимков (я плохо знаю), 13-й отсутствовал.
# 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"
Файл .vmk
#!/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"
Сортировать по имени файла
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
Файл снимка содержит все новые данные, записанные на диск с момента создания снимка. Если у вас нет последнего снимка, вы потеряете все данные, записанные с момента последнего снимка. Вам нужно будет отредактировать файл vmdk (небольшой текстовый файл, а не * flat.vmdk) и удалить ссылку на снимок.
Это очень сложная задача. Однажды у меня была такая же ситуация. Один снимок был пропущен. Пропущенный снимок был одним из самых первых (сделанных очень давно).
Итак, что я сделал: я просто скопировал еще один файл снимка и переименовал его. И это просто сработало. Но, может быть, я был очень кружевным ...
Но это был не ESX / ESXi, это была VMWare Workstation.
И, конечно же, перед тем, как что-либо делать, сделайте резервную копию всех файлов виртуальной машины.