Modifier le vmx vmxf vmdk et nvram sur VMware ESXi

Modifier le vmx vmxf vmdk et nvram sur VMware ESXi
Jérémie Kassianoff
14 décembre 2013
3 min de lecture

Vous souhaitez renommer l'ensemble de votre VM? Il existe des solutions simples et efficaces! Pré-requis : posséder un ESXi avec l’accès SSH activé.

Cas d'usage concret

Vous devez renommer une VM ESXi de bout en bout, fichiers inclus : voici comment modifier proprement le vmx, vmxf, vmdk et nvram.

Le but de cet article est de comprendre comment renommer l’ensemble d’une VM dans ESXi.
Une machine virtuelle utilise un chemin et des fichiers de configuration présents dans un datastore.
On note la présence de 4 fichiers qui permettent le lancement de la machine virtuelle :

  • un fichier .vmx qui contient l’ensemble des données de configuration avec les chemins absolus etc…
  • un fichier .vmxf qui est un fichier de configuration  supplémentaire.
  • un fichier .vmdk qui correspond au contenu du disque dur de la machine virtuelle.
  • un fichier .nvram qui représente  le bios de la machine virtuelle.

Sauvegarde de la machine à renommer

Avant toute manipulation avec la machine virtuelle, celle-ci doit être hors tension et sans snapshots.
Vous pouvez effectuer un clone du « .vmdk » afin d’assurer vos arrières avec l’outil « vmkfstools » :

bash
vmkfstools -i vm_prod.vmdk vm_prod_save.vmdk -d thin

N’oubliez pas de déplacer le clone dans un dossier différent :

bash
mv vm_prod_save.vmdk ../vm_prod_save/

Et de copier les fichiers annexes importants dans ce répertoire :

bash
cp vm_prod.vmx vm_prod.vmxf vm_prod.nvram ../vm_prod_save/

Une fois les étapes ci-dessous effectuées, lancez-vous dans la manipulation de la VM.

Renommer le dossier de la machine virtuelle

Ma machine est stockée dans le datastore1 :

bash
cd /vmfs/volumes/datastore1/

Renommer le dossier « vm_prod » en « prod » :

bash
mv vm_prod/ prod

Se déplacer dans le dossier « prod » :

bash
cd prod/

Lister l’ensemble des fichiers disponibles :

bash
ls

Le résultat suivant apparaît :

bash
vm_prod-flat.vmdk  vm_prod.nvram      vm_prod.vmdk       vm_prod.vmsd       vm_prod.vmx        vm_prod.vmxf       vmware.log

Editer le fichier « vm_prod.vmx » :

bash
vi vm_prod.vmx

Appuyer sur la touche « i » (mode insère) pour modifier le fichier de cette façon :

bash
nvram = "prod.nvram"
extendedConfigFile = "prod.vmxf"
scsi0:0.fileName = "prod.vmdk"
sched.swap.derivedName = "/vmfs/volumes/"VOTRE_NUMERO_DATASTORE_ICI"/prod/prod-e6f7a239.vswp"

Une fois les modifications vérifiées, appuyer la touche »echap » de votre clavier.
Pour sauvegarder les modifications faite « !« , si vous avez fait une erreur « ! » et recommencer.

Renommer les fichiers « vm_prod.vmx » et « vm_prod.vmxf » :

bash
mv vm_prod.vmx prod.vmx
mv vm_prod.vmxf prod.vmxf

Vous pouvez aussi le faire pour  « vm_prod.nvram » et le « .vswp », mais ce n’est pas obligatoire!

Lancement de la machine virtuelle après modification

Je vous conseille de supprimer l’ancienne machine : »vm_prod » de votre inventaire.

Avec vSphere client , rendez-vous dans votre datastore1 et ajoutez « prod.vmx » à l’inventaire ESXi.
Un message apparaît lors du lancement de la machine virtuelle, faite « I copied it » :

Vous avez officiellement renommer l’ensemble de votre machine virtuelle dans VMware ESXi.

Conclusion

Cet article a expliqué comment renommer proprement une machine virtuelle sous VMware ESXi, en travaillant sur ses fichiers .vmx, .vmxf, .vmdk et .nvram : sauvegarde préalable du disque et des fichiers annexes, renommage du dossier et des fichiers, puis mise à jour des chemins dans le fichier .vmx avant de réajouter la VM à l’inventaire. Cette méthode évite de devoir recréer la machine virtuelle de zéro et permet de conserver son disque et sa configuration d’origine. Il est toutefois indispensable d’éteindre la VM et de supprimer ses snapshots avant toute manipulation.