vmdk not found – Ripristino del descriptor file vmdk
Recreating a missing VMDK (VMware virtual machine disk descriptor file)
Cosa accade se accidentalmente viene cancellato il descrittore dei dischi virtuali di VMware? Semplicemente si rende il disco illegibile compromettendo la partenza della virtual machine.
Diamo il caso che una delle nostre VM non parta più e che riceviamo l’errore “vmdk not found “. Prima di allarmarci verifichiamo che sia presente il “disco”.
Per comodità entriamo nella directory della VM
cd /vmfs/volumes/CT500MX/VM_LBIT_TEST
Cerchiamo il tipo di controllo SCSI della virtual machine nel file .vmx
grep scsi VM_LBIT_TEST.vmx
Ora dobbiamo vedere l’esatta dimensione del file -flat:
ls -l VM_LBIT_TEST-flat.vmdk
-rw------- 1 root root 171798691840 Oct 11 12:30 VM_LBIT_TEST-flat.vmdk
Andiamo a creare un file temporaneo usando il tool vmkfstools:
vmkfstools -c 171798691840 -d thin temp.vmdk
Eliminiamo il file -flat.vmdk che ci ha creato
rm -i temp-flat.vmdk
Ed ora andiamo a rinominare il nostro Mware virtual machine disk descriptor file temp.vmdk in VM_LBIT_TEST.vmdk:
mv -i temp.vmdk VM_LBIT_TEST-flat.vmdk
Ora apriam il nostro VMDK e andiamo a sostituire i paramentri temp con il nome del nostro file -flat, nel nostro caso è VM_LBIT_TEST-flat.vmdk
Ecco come si presenta il file generato dal comando vmkfstools:
# Disk DescriptorFile
version=3
encoding="UTF-8"
CID=3bc86a12
parentCID=ffffffff
createType="vmfs"
#
# Extent description
RW 335544320 VMFS "temp.vmdk"
#
# Change Tracking File
changeTrackPath="temp-ctk.vmdk"
#
# The Disk Data Base
#DDB
#
ddb.adapterType = "lsilogic"
ddb.geometry.cylinders = "20886"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "df24793fbf5a3e5ba49813303bc86a12"
ddb.thinProvisioned = "1"
ddb.toolsInstallType = "2"
ddb.toolsVersion = "10346"
ddb.uuid = "60 00 C2 90 3f 7b d4 cb-98 bb 90 11 81 8c 3d 91"
ddb.virtualHWVersion = "14"
E questo modificato con il nome del nostro disco virtuale
# Disk DescriptorFile
version=3
encoding="UTF-8"
CID=3bc86a12
parentCID=ffffffff
createType="vmfs"
#
# Extent description
RW 335544320 VMFS "VM_LBIT_TEST.vmdk"
#
# Change Tracking File
changeTrackPath="VM_LBIT_TEST-ctk.vmdk"
#
# The Disk Data Base
#DDB
#
ddb.adapterType = "lsilogic"
ddb.geometry.cylinders = "20886"
ddb.geometry.heads = "255"
ddb.geometry.sectors = "63"
ddb.longContentID = "df24793fbf5a3e5ba49813303bc86a12"
ddb.thinProvisioned = "1"
ddb.toolsInstallType = "2"
ddb.toolsVersion = "10346"
ddb.uuid = "60 00 C2 90 3f 7b d4 cb-98 bb 90 11 81 8c 3d 91"
ddb.virtualHWVersion = "14"
Possiamo verificare che il file sia “consistente” con il seguente comando:
vmkfstools -e VM_LBIT_TEST.vmdk
Non ci reste che avviare la VM ed abbiamo finito.
Buon lavoro.