VMware ESXi ne voit pas le disque après installation
Après l'installation d'ESXi, il arrive qu'un disque n'apparaisse pas lors de la création d'un datastore, ou qu'ESXi détecte un ancien datastore sur ce disque sans le monter. La cause détermine la solution : certaines solutions conservent les données du disque, d'autres les suppriment. Ce guide explique comment identifier d'abord la cause, puis choisir le scénario adapté.
Les commandes sont destinées à ESXi 8.0 et fonctionnent également sur ESXi 7.0. Exécutez-les dans l'ESXi Shell ou via SSH en tant que root.
Le support général d'ESXi 7.0 a pris fin le 2 octobre 2025 et cette version ne reçoit plus de correctifs de sécurité. Si le serveur fonctionne toujours sous ESXi 7.0, prévoyez une mise à niveau vers une version prise en charge.
Identifier la cause
Ouvrez l'ESXi Host Client dans un navigateur et accédez à Storage → Devices. Repérez le disque et vérifiez ce que vous observez.
- Le disque figure dans Storage → Devices, mais n'est pas disponible dans l'assistant New datastore. Avant de modifier quoi que ce soit, vérifiez s'il contient un datastore existant, des partitions système ou d'autres partitions. Voir les scénarios 1 et 2.
- ESXi signale un ancien datastore VMFS sur le disque, mais celui-ci n'est pas monté. Le disque a très probablement été utilisé par une autre installation d'ESXi ou a été cloné. Passez au scénario 1.
- Le disque n'apparaît pas du tout dans la liste. ESXi ne voit pas le périphérique lui-même. Passez au scénario 3.
La même vérification en ligne de commande. Listez les disques détectés par ESXi :
esxcli storage core device list | grep -E "^[a-z]|Display Name|Size"
Listez les volumes VMFS qu'ESXi a détectés mais n'a pas montés :
esxcli storage vmfs snapshot list
Si la seconde commande n'affiche aucun volume, le disque peut tout de même contenir un datastore VMFS normal qui a été démonté manuellement. ESXi ne monte pas automatiquement un tel datastore, mais ce n'est pas non plus un snapshot. Vérifiez la liste des systèmes de fichiers :
esxcli storage filesystem list
Si le datastore figure dans la liste avec Mounted défini sur false, montez-le par son nom :
esxcli storage filesystem mount -l DATASTORE_NAME
Ou par son UUID :
esxcli storage filesystem mount -u DATASTORE_UUID
Si la seconde commande affiche un volume, utilisez le scénario 1. Si aucune des deux commandes n'affiche le datastore, cela ne signifie pas encore que le disque ne contient que d'anciennes partitions : il peut s'agir du disque de démarrage (voir le scénario 4) ou contenir des données dont vous avez besoin. Vérifiez les partitions comme décrit dans le scénario 2 avant de supprimer quoi que ce soit.
Scénario 1. Monter un datastore VMFS existant et conserver les données
Utilisez ce scénario lorsque le disque contient un datastore avec des machines virtuelles dont vous avez besoin. Cela se produit après une réinstallation d'ESXi sur le même serveur, lorsque le disque est déplacé depuis un autre hôte ou lorsqu'il s'agit d'une copie d'un autre disque.
Chaque volume VMFS possède une signature liée à l'identifiant du périphérique sur lequel il a été créé. Si l'identifiant du périphérique change, par exemple après le clonage du disque, son déplacement vers un autre contrôleur ou sa présentation avec un autre LUN ID, ESXi détecte le volume comme un snapshot non résolu (unresolved snapshot) et ne le monte pas automatiquement. Cela évite de monter deux copies du même datastore. Tous les datastores non montés ne sont pas des snapshots : si la commande ci-dessous n'affiche rien, la cause est différente.
Vérifiez le volume :
esxcli storage vmfs snapshot list
Exemple de sortie :
5f5b217c-2b53d2b8-d1a4-ac1f6be04cea Volume Name: datastore1 VMFS UUID: 5f5b217c-2b53d2b8-d1a4-ac1f6be04cea Can mount: true Reason for un-mountability: Can resignature: true Reason for non-resignaturability: Unresolved Extent Count: 1
Vous pouvez conserver la signature existante (mount) ou en écrire une nouvelle (resignature).
Monter le volume avec la signature existante
Utilisez cette méthode lorsque le datastore d'origine n'est plus connecté à cet hôte, par exemple après une réinstallation d'ESXi :
esxcli storage vmfs snapshot mount -l datastore1
Remplacez datastore1 par la valeur Volume Name de la sortie. Si plusieurs volumes portent le même nom, utilisez l'UUID à la place : -u 5f5b217c-2b53d2b8-d1a4-ac1f6be04cea. Il en va de même pour resignature. Le montage est conservé après un redémarrage. Pour monter le volume uniquement jusqu'au prochain redémarrage, ajoutez -n.
Choisissez la méthode selon que le volume d'origine est toujours connecté ou non. Si le datastore d'origine ayant le même UUID est monté sur l'hôte, la copie ne peut pas être montée avec la signature existante. Dans ce cas, utilisez resignature.
Resignature du volume
Utilisez cette méthode lorsque le datastore d'origine et sa copie doivent fonctionner simultanément sur le même hôte :
esxcli storage vmfs snapshot resignature -l datastore1
ESXi écrit un nouvel UUID et le datastore apparaît avec un nom tel que snap-1a2b3c4d-datastore1. Vous pouvez le renommer dans le Host Client.
Après la resignature, les machines virtuelles de ce datastore ne sont pas enregistrées sur l'hôte. Ouvrez le datastore dans Storage → Datastore browser, repérez le fichier .vmx de chaque machine virtuelle et enregistrez-la. En ligne de commande, enregistrez une machine virtuelle avec :
vim-cmd solo/registervm /vmfs/volumes/DATASTORE/VM/VM.vmx
Remplacez DATASTORE et VM par le nom du datastore et le dossier de la machine virtuelle. La resignature est irréversible.
Vérifier le résultat
esxcli storage filesystem list
Le datastore doit figurer dans la liste avec Mounted défini sur true. Il apparaît également dans Storage → Datastores dans le Host Client.
Les anciennes commandes esxcfg-volume -l (liste) et esxcfg-volume -M <UUID> (montage persistant) remplissent la même fonction et fonctionnent toujours sur ESXi 7.0 et 8.0. La commande vicfg-volume appartient à vSphere CLI, qui n'est plus prise en charge.
Scénario 2. Effacer les anciennes partitions et utiliser le disque comme neuf
Utilisez ce scénario uniquement lorsque le disque ne contient aucune donnée dont vous avez besoin. Cas typiques : le disque a été utilisé par un autre système d'exploitation, par un RAID matériel ou par une ancienne installation d'ESXi dont vous n'avez plus besoin. ESXi ne propose pas un tel disque pour un nouveau datastore tant que les anciennes partitions s'y trouvent.
L'effacement de la table de partitions supprime toutes les données du disque. Vérifiez deux fois l'identifiant du disque et assurez-vous qu'il ne s'agit ni du disque sur lequel ESXi démarre, ni d'un disque contenant un datastore dont vous avez besoin.
Dans le Host Client
Accédez à Storage → Devices et cliquez sur le disque. Cliquez sur Actions et sélectionnez Clear partition table. Confirmez l'action.
Ensuite, accédez à Storage → Datastores, cliquez sur New datastore et créez un datastore VMFS sur le disque.
Si vous devez supprimer une seule partition, sélectionnez plutôt Edit partitions, supprimez la partition et enregistrez les modifications.
En ligne de commande
Trouvez le nom du périphérique du disque :
ls /vmfs/devices/disks/ | grep -v ":"
Assurez-vous qu'il ne s'agit pas du disque de démarrage et qu'aucun datastore ne s'y trouve. Remplacez DEVICE par le nom obtenu avec la commande précédente :
esxcli storage core device list -d DEVICE | grep -E "Display Name|Is Boot Device" esxcli storage vmfs extent list
Is Boot Device doit être false, et le périphérique ne doit pas apparaître dans la sortie de esxcli storage vmfs extent list. Assurez-vous également que le disque n'est pas utilisé pour le vidage sur incident (crash dump) ni pour les journaux système :
esxcli system coredump partition list esxcli system syslog config get
Le périphérique ne doit pas apparaître dans la sortie coredump, et le répertoire syslog ne doit pas se trouver sur un datastore de ce disque. Si vous ne savez pas à quoi sert le disque, n'exécutez pas la commande destructive. Affichez ensuite ses partitions :
partedUtil getptbl /vmfs/devices/disks/DEVICE
Écrivez une nouvelle table de partitions GPT vide :
partedUtil mklabel /vmfs/devices/disks/DEVICE gpt
Relancez l'analyse des adaptateurs afin que le Host Client voie le disque vide :
esxcli storage core adapter rescan --all
Créez ensuite le datastore dans le Host Client comme décrit ci-dessus.
Scénario 3. Le disque n'est pas visible du tout
Si le disque ne figure pas dans Storage → Devices, ESXi ne voit pas le périphérique lui-même. Les partitions et les datastores n'ont ici aucune importance : le problème se situe au niveau du matériel, du mode du contrôleur ou du pilote.
Vérifiez les adaptateurs de stockage et leurs pilotes :
esxcli storage core adapter list
Relancez ensuite l'analyse des adaptateurs :
esxcli storage core adapter rescan --all
Vérifiez à nouveau la liste des périphériques :
esxcli storage core device list
Si le disque est toujours absent, vérifiez les causes ci-dessous.
Causes courantes :
- le disque est connecté à un contrôleur RAID et n'est ajouté à aucun disque virtuel (lecteur logique) dans les paramètres du contrôleur ;
- le contrôleur fonctionne dans un mode qu'ESXi ne prend pas en charge, par exemple le RAID logiciel de la carte mère ;
- il n'existe pas de pilote ESXi pour le contrôleur ou le disque NVMe. ESXi 7.0 et les versions ultérieures ne prennent plus en charge les anciens pilotes vmklinux, de sorte qu'un matériel qui fonctionnait avec ESXi 6.x peut cesser de fonctionner ;
- le disque est désactivé dans les paramètres BIOS/UEFI, défectueux ou non connecté.
Vérifiez le modèle du contrôleur et du disque dans le Broadcom Compatibility Guide. Pour un contrôleur RAID, ouvrez son utilitaire de configuration au démarrage et assurez-vous que le disque fait partie d'un disque virtuel, ou basculez le contrôleur en mode HBA (pass-through) s'il le prend en charge.
Les clients de serveurs dédiés INTROSERV peuvent contacter le support si le disque n'est pas visible dans ESXi. Le support vérifie la configuration du contrôleur et le matériel du serveur.
Scénario 4. Le disque système dispose de peu d'espace, voire d'aucun, pour un datastore
À partir d'ESXi 7.0, le programme d'installation crée des partitions de démarrage et une partition ESX-OSData sur le disque de démarrage. Par défaut, ces partitions système occupent jusqu'à 138 Go. Si le disque de démarrage fait 142 Go ou moins, le programme d'installation n'y crée aucun datastore local. Sur un disque plus grand, le datastore ne reçoit que l'espace restant. Le disque est visible, mais il y reste peu d'espace libre, voire aucun.
Il ne s'agit pas d'une erreur. La disposition exacte dépend de la taille du disque et des options d'installation. Si vous avez besoin de l'espace du disque système, réinstallez ESXi avec des partitions système plus petites. Lorsque l'écran de démarrage du programme d'installation d'ESXi s'affiche, appuyez sur Shift+O pour modifier les options de démarrage et ajoutez le paramètre suivant à la fin de la ligne. Il s'agit d'une option de démarrage du programme d'installation, et non d'une commande pour l'ESXi Shell :
systemMediaSize=min
Avec min, les partitions système occupent 33 Go. Cette valeur est destinée aux serveurs dotés d'un seul disque et d'un ensemble restreint de fonctionnalités. Les autres valeurs sont small (69 Go, pour les serveurs disposant d'au moins 512 Go de RAM), default (138 Go) et max (tout l'espace disponible). L'option est disponible à partir d'ESXi 7.0 Update 1c.
La réinstallation d'ESXi avec une nouvelle disposition des partitions supprime le datastore local existant sur le disque système. Déplacez ou sauvegardez d'abord les machines virtuelles.
L'autre solution consiste à conserver ESXi sur le disque système et à créer les datastores uniquement sur d'autres disques.
Conclusion
Vérifiez d'abord si ESXi voit le disque et s'il y a trouvé un ancien volume VMFS. Si le disque contient un datastore dont vous avez besoin, montez-le ou effectuez une resignature. Si le disque contient d'anciennes données inutiles, effacez la table de partitions et créez un nouveau datastore. Si le disque n'est pas visible du tout, vérifiez le mode du contrôleur et la prise en charge des pilotes.