Introduction sur le VMDK
Chez VMware les disques virtuels sont appelés des VMDK, utilisant généralement le nom de la VM avec un numéro s’il en existe plusieurs et l’extension .vmdk.
Par contre vous ne le savez peut-être pas mais il fonctionne via deux fichiers :
- Le premier se terminant par « -flat.vmdk » contenant les data au format brut.
- Le deuxième sans le « -flat » contenant la configuration en mode texte comme l’encodage, l’id, le contrôleur, la taille…
Pêche aux informations
Il peut arriver que vous ayez un fichier -flat.vmdk mais que l’ESXi ne puisse pas l’attacher, la raison étant qu’il lui manque le fichier de configuration mais heureusement il est possible de le reconstruire. La première chose est de retrouver le type de contrôleur et la taille du flat VMDK à reconstruire.
- Le reste se fera en SSH en se plaçant dans le folder de la VM
cd /vmfs/volumes/<DatastoreName>/<VMName>
- Pour la type il est possible d’ouvrir le VMX pour rechercher le contrôleur lsisas1068, lsilogic ou buslogic
vi <VMName>.vmx
scsi0.virtualDev = "lsilogic"
- Pour retrouver la taille du disque, il faut utiliser le -flat.vmdk
ls -l <VMName>-flat.vmdk
-rw------- 1 root root 53687091200 Apr 8 14:00 <VMName>-flat.vmdk
Reconstruction du VMDK
- On va créer un VMDK complet temporaire via cette commande avec les informations récoltées au dessus
vmkfstools -c 53687091200 -a lsilogic -d thin temporary.vmdk
- On ne garde que le fichier de configuration
rm -i temporary-flat.vmdk
- Puis on renomme correctement le .vmdk
mv -i temporary.vmdk <VMName>.vmdk
- Il faut maintenant adapter le fichier de configuration pour correspondre à notre -flat.vmdk
chmod 600 <VMName>.vmdk
vi <VMName>.vmdk
- Il faudra modifier (i) le nom du -flat, le type de contrôleur et choisir le Provisioning. Si vous êtes sur que ce n’était pas un disque en ThinProvisioning, il faudra supprimer la ligne ddb.thinProvisioned
[...] # Extent description RW 53687091200 VMFS "<VMName>-flat.vmdk" [...] ddb.adapterType = "lsilogic" ddb.thinProvisioned = "1"
- Enregistrer le tout via Echap :wq
- Après un petit check d’intégrité, il sera possible d’attacher de nouveau votre VMDK à une VM
vmkfstools -e <VMName>.vmdk
Merci beaucoup pour votre article, il m’a bien dépanné. J’avais un fichier .vmdk corrompu après un déplacement vers un volume qui n’avait pas assez d’espace disponible. J’avais toujours le fichier -flat.vmdk. Grâce à votre procédure, j’ai pu reconstituer mon fichier .vmdk et relancer ma VM. En plus, j’ai mieux compris le rôle de chaque fichier.
Merci pour votre commentaire, content d’avoir pu vous dépanner !
Bonjour,
Pour que ca fonctionne chez moi j’ai du diviser par 512 la taille du flat
A+
Merci pour la précision, ça peut en aider quelques un ! 😉
Bonjour Mathieu,
Pour apporter une precision a ce que dit justement Raoul,
lors de l’edition du fichier .vmdk
dans la ligne commencant par RW, il faut uniquement changer le nom du disque,
la taille est deja configurée par l’operation vmkfstools.
@Mathieu si vous avez le temps de modifier la dite ligne
Encore merci,
Cordialement,
Xavier
Effectivement j’ai été un peu trop loin pendant l’écriture, article modifié merci ! 😉
Oups, merci Mathieu ! Pile poil ce qu’il fallait à notre vieux virtualiseur…
Vraiment merci !
Avec plaisir, merci pour le com’ ! 😉