Si vous avez ce message d’erreur « Impossible d’accéder au fichier filename> car il est verrouillé » ou « Unable to access file since it is locked » vous ne pouvez plus effectuer aucune action sur votre VM comme la démarrer, ou l’arrêter etc..
Les causes peuvent être multiple, problème lors de la perte d’un ESXi, problème stockage etc…
Pour résoudre cet erreur, un peu de troubleshoot s’impose.
Tout d’abord il faut trouver par quel hôte la VM est verrouillée. Pour cela connectez vous sur un ESXi, et taper la commande suivante :
find -name « NOMDEVOTREVM »
Ensuite placez vous dans le chemin renvoyé par la commande (Cela correspond au chemin d’accès à votre VM).
Il faut ensuite lister les fichiers présent dans le répertoire de votre VM. Ce qui nous intéressent ceux sont les fichiers de log vmware.log
Pour rechercher le dernier ESXi sur lequel la VM s’éxécute, taper la commande suivante :
cat vmware.log | grep « nomdelesx ».
Si vous avez la même norme de nommage pour vos ESX (Exemple vsphere01,vsphere02,etc) taper la commande suivante :
cat vmware.log | grep vsphere
Le résultat de la commande sera sous la forme suivante :
hostname = NOMDELESX
Vous connaitrez donc le nom de l’ESX sur lequel la VM s’exécute.
Connectez vous en ssh sur l’ESXI puis taper la commande suivante :
vim-cmd vmsvc/getallvms | grep « VOTREVM »
Récupérer ensuite l’ID de votre VM, ici 230.
Taper ensuite la commande suivante pour récupérer l’état de votre VM
vim-cmd vmsvc/power.getstate 230
Dans mon cas, la VM apparait « powered on » alors que dans le vCenter elle est considérée comme « powered off ».
Taper donc la commande suivante pour éteindre votre VM.
vim-cmd vmsvc/power.off 230
Supprimer si besoin votre VM de l’inventaire et ajouté la à nouveau en naviguant dans votre datastore.
Et voila vous pouvez démarrer votre VM.