VMware ESXi nie widzi dysku po instalacji
Po zainstalowaniu ESXi dysk czasami nie pojawia się podczas tworzenia datastore albo ESXi znajduje na nim stary datastore, ale go nie montuje. Przyczyna decyduje o sposobie naprawy: niektóre metody zachowują dane na dysku, inne je usuwają. Ten przewodnik wyjaśnia, jak najpierw ustalić przyczynę, a następnie wybrać odpowiedni scenariusz.
Polecenia dotyczą ESXi 8.0 i działają również w ESXi 7.0. Uruchamiaj je w ESXi Shell lub przez SSH jako root.
Okres standardowego wsparcia dla ESXi 7.0 zakończył się 2 października 2025 r. i ta wersja nie otrzymuje już poprawek bezpieczeństwa. Jeśli serwer nadal działa na ESXi 7.0, zaplanuj aktualizację do obsługiwanej wersji.
Ustalenie przyczyny
Otwórz ESXi Host Client w przeglądarce i przejdź do Storage → Devices. Znajdź dysk i sprawdź, co widzisz.
- Dysk jest widoczny w Storage → Devices, ale nie jest dostępny w kreatorze New datastore. Zanim cokolwiek zmienisz, sprawdź, czy znajduje się na nim istniejący datastore, partycje systemowe lub inne partycje. Zobacz scenariusze 1 i 2.
- ESXi zgłasza na dysku stary datastore VMFS, ale nie jest on zamontowany. Najprawdopodobniej dysk był używany w innej instalacji ESXi lub został sklonowany. Przejdź do scenariusza 1.
- Dysku nie ma na liście w ogóle. ESXi nie widzi samego urządzenia. Przejdź do scenariusza 3.
To samo sprawdzenie z poziomu wiersza poleceń. Wyświetl dyski widoczne dla ESXi:
esxcli storage core device list | grep -E "^[a-z]|Display Name|Size"
Wyświetl woluminy VMFS, które ESXi wykrył, ale nie zamontował:
esxcli storage vmfs snapshot list
Jeśli drugie polecenie nie pokazuje żadnych woluminów, dysk nadal może zawierać zwykły datastore VMFS, który został odmontowany ręcznie. ESXi nie montuje takiego datastore automatycznie, ale nie jest on też snapshotem. Sprawdź listę systemów plików:
esxcli storage filesystem list
Jeśli datastore znajduje się na liście z wartością Mounted równą false, zamontuj go według nazwy:
esxcli storage filesystem mount -l DATASTORE_NAME
Lub według UUID:
esxcli storage filesystem mount -u DATASTORE_UUID
Jeśli drugie polecenie pokazuje wolumin, skorzystaj ze scenariusza 1. Jeśli żadne z poleceń nie pokazuje datastore, nie oznacza to jeszcze, że na dysku są tylko stare partycje: dysk może być dyskiem rozruchowym (zobacz scenariusz 4) lub zawierać potrzebne dane. Przed usunięciem czegokolwiek sprawdź partycje zgodnie z opisem w scenariuszu 2.
Scenariusz 1. Zamontowanie istniejącego datastore VMFS z zachowaniem danych
Skorzystaj z tego scenariusza, gdy na dysku znajduje się datastore z potrzebnymi maszynami wirtualnymi. Taka sytuacja występuje po ponownej instalacji ESXi na tym samym serwerze, po przeniesieniu dysku z innego hosta lub gdy dysk jest kopią innego dysku.
Każdy wolumin VMFS ma sygnaturę powiązaną z identyfikatorem urządzenia, na którym został utworzony. Jeśli identyfikator urządzenia ulegnie zmianie, na przykład po sklonowaniu dysku, przeniesieniu go do innego kontrolera lub udostępnieniu z innym identyfikatorem LUN, ESXi wykrywa wolumin jako nierozwiązany snapshot (unresolved snapshot) i nie montuje go automatycznie. Chroni to przed zamontowaniem dwóch kopii tego samego datastore. Nie każdy niezamontowany datastore jest snapshotem: jeśli poniższe polecenie nic nie zwraca, przyczyna jest inna.
Sprawdź wolumin:
esxcli storage vmfs snapshot list
Przykładowy wynik:
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
Możesz zachować istniejącą sygnaturę (mount) lub zapisać nową (resignature).
Zamontowanie woluminu z istniejącą sygnaturą
Użyj tej metody, gdy oryginalny datastore nie jest już podłączony do tego hosta, na przykład po ponownej instalacji ESXi:
esxcli storage vmfs snapshot mount -l datastore1
Zastąp datastore1 wartością Volume Name z wyniku polecenia. Jeśli kilka woluminów ma tę samą nazwę, użyj UUID: -u 5f5b217c-2b53d2b8-d1a4-ac1f6be04cea. To samo dotyczy resignature. Zamontowanie jest trwałe i przetrwa ponowne uruchomienie. Aby zamontować wolumin tylko do następnego restartu, dodaj -n.
Wybierz metodę w zależności od tego, czy oryginalny wolumin jest nadal podłączony. Jeśli na hoście jest zamontowany oryginalny datastore o tym samym UUID, kopii nie można zamontować z istniejącą sygnaturą. W takim przypadku użyj resignature.
Resignature woluminu
Użyj tej metody, gdy oryginalny datastore i jego kopia muszą działać na tym samym hoście jednocześnie:
esxcli storage vmfs snapshot resignature -l datastore1
ESXi zapisuje nowy UUID, a datastore pojawia się z nazwą w rodzaju snap-1a2b3c4d-datastore1. Możesz zmienić tę nazwę w Host Client.
Po resignature maszyny wirtualne znajdujące się na tym datastore nie są zarejestrowane na hoście. Otwórz datastore w Storage → Datastore browser, znajdź plik .vmx każdej maszyny wirtualnej i zarejestruj ją. W wierszu poleceń maszynę wirtualną rejestruje się poleceniem:
vim-cmd solo/registervm /vmfs/volumes/DATASTORE/VM/VM.vmx
Zastąp DATASTORE i VM nazwą datastore oraz folderem maszyny wirtualnej. Resignature jest operacją nieodwracalną.
Sprawdzenie wyniku
esxcli storage filesystem list
Datastore musi znajdować się na liście z wartością Mounted równą true. Pojawia się on również w Storage → Datastores w Host Client.
Starsze polecenia esxcfg-volume -l (wyświetlenie listy) i esxcfg-volume -M <UUID> (trwałe zamontowanie) wykonują to samo zadanie i nadal działają w ESXi 7.0 i 8.0. Polecenie vicfg-volume należy do vSphere CLI, które nie jest już wspierane.
Scenariusz 2. Wyczyszczenie starych partycji i użycie dysku jako nowego
Skorzystaj z tego scenariusza tylko wtedy, gdy na dysku nie ma żadnych potrzebnych danych. Typowe przypadki: dysk był używany przez inny system operacyjny, przez sprzętowy RAID lub przez starą instalację ESXi, która nie jest już potrzebna. ESXi nie oferuje takiego dysku do utworzenia nowego datastore, dopóki znajdują się na nim stare partycje.
Wyczyszczenie tablicy partycji usuwa wszystkie dane na dysku. Dwukrotnie sprawdź identyfikator dysku i upewnij się, że nie jest to dysk, z którego startuje ESXi, ani dysk z potrzebnym datastore.
W Host Client
Przejdź do Storage → Devices i kliknij dysk. Kliknij Actions i wybierz Clear partition table. Potwierdź operację.
Następnie przejdź do Storage → Datastores, kliknij New datastore i utwórz datastore VMFS na dysku.
Jeśli chcesz usunąć tylko jedną partycję, wybierz zamiast tego Edit partitions, usuń partycję i zapisz zmiany.
Z wiersza poleceń
Znajdź nazwę urządzenia dysku:
ls /vmfs/devices/disks/ | grep -v ":"
Upewnij się, że to nie jest dysk rozruchowy i że nie ma na nim żadnego datastore. Zastąp DEVICE nazwą uzyskaną z poprzedniego polecenia:
esxcli storage core device list -d DEVICE | grep -E "Display Name|Is Boot Device" esxcli storage vmfs extent list
Is Boot Device musi mieć wartość false, a urządzenie nie może występować w wyniku polecenia esxcli storage vmfs extent list. Upewnij się również, że dysk nie jest używany do zrzutu pamięci (crash dump) ani do dzienników systemowych:
esxcli system coredump partition list esxcli system syslog config get
Urządzenie nie może występować w wyniku polecenia coredump, a katalog syslog nie może znajdować się na datastore z tego dysku. Jeśli nie masz pewności, do czego służy dysk, nie uruchamiaj polecenia destrukcyjnego. Następnie wyświetl partycje dysku:
partedUtil getptbl /vmfs/devices/disks/DEVICE
Zapisz nową, pustą tablicę partycji GPT:
partedUtil mklabel /vmfs/devices/disks/DEVICE gpt
Wykonaj ponowne skanowanie adapterów, aby Host Client zobaczył pusty dysk:
esxcli storage core adapter rescan --all
Następnie utwórz datastore w Host Client zgodnie z powyższym opisem.
Scenariusz 3. Dysk w ogóle nie jest widoczny
Jeśli dysku nie ma w Storage → Devices, ESXi nie widzi samego urządzenia. Partycje i datastore nie mają tu znaczenia: problem leży w sprzęcie, trybie pracy kontrolera lub sterowniku.
Sprawdź adaptery pamięci masowej i ich sterowniki:
esxcli storage core adapter list
Następnie wykonaj ponowne skanowanie adapterów:
esxcli storage core adapter rescan --all
Ponownie sprawdź listę urządzeń:
esxcli storage core device list
Jeśli dysk nadal nie jest widoczny, sprawdź poniższe przyczyny.
Najczęstsze przyczyny:
- dysk jest podłączony do kontrolera RAID i nie został dodany do żadnego dysku wirtualnego (dysku logicznego) w ustawieniach kontrolera;
- kontroler pracuje w trybie nieobsługiwanym przez ESXi, na przykład w trybie programowego RAID płyty głównej;
- brak sterownika ESXi dla kontrolera lub dysku NVMe. ESXi 7.0 i nowsze nie obsługują już starych sterowników vmklinux, dlatego sprzęt działający z ESXi 6.x może przestać działać;
- dysk jest wyłączony w ustawieniach BIOS/UEFI, uszkodzony lub niepodłączony.
Sprawdź model kontrolera i dysku w Broadcom Compatibility Guide. W przypadku kontrolera RAID otwórz jego narzędzie konfiguracyjne podczas rozruchu i upewnij się, że dysk należy do dysku wirtualnego, lub przełącz kontroler w tryb HBA (pass-through), jeśli go obsługuje.
Klienci serwerów dedykowanych INTROSERV mogą skontaktować się z pomocą techniczną, jeśli dysk nie jest widoczny w ESXi. Pomoc techniczna sprawdzi konfigurację kontrolera i sprzęt serwera.
Scenariusz 4. Na dysku systemowym jest mało miejsca lub brak go na datastore
Począwszy od ESXi 7.0, instalator tworzy na dysku rozruchowym partycje rozruchowe oraz partycję ESX-OSData. Domyślnie te partycje systemowe zajmują do 138 GB. Jeśli dysk rozruchowy ma 142 GB lub mniej, instalator w ogóle nie tworzy na nim lokalnego datastore. Na większym dysku datastore otrzymuje tylko pozostałe miejsce. Dysk jest widoczny, ale wolnego miejsca na nim jest mało lub wcale.
To nie jest błąd. Dokładny układ zależy od rozmiaru dysku i opcji instalacji. Jeśli potrzebujesz miejsca na dysku systemowym, zainstaluj ESXi ponownie z mniejszymi partycjami systemowymi. Gdy pojawi się ekran startowy instalatora ESXi, naciśnij Shift+O, aby edytować opcje rozruchu, i dodaj następujący parametr na końcu wiersza. Jest to opcja rozruchowa instalatora, a nie polecenie dla ESXi Shell:
systemMediaSize=min
Przy wartości min partycje systemowe zajmują 33 GB. Ta wartość jest przeznaczona dla serwerów z jednym dyskiem i niewielkim zestawem funkcji. Pozostałe wartości to small (69 GB, dla serwerów z co najmniej 512 GB pamięci RAM), default (138 GB) i max (całe dostępne miejsce). Opcja jest dostępna od ESXi 7.0 Update 1c.
Ponowna instalacja ESXi z nowym układem partycji usuwa istniejący lokalny datastore na dysku systemowym. Wcześniej przenieś maszyny wirtualne lub wykonaj ich kopię zapasową.
Innym rozwiązaniem jest pozostawienie ESXi na dysku systemowym i tworzenie datastore wyłącznie na innych dyskach.
Podsumowanie
Najpierw sprawdź, czy ESXi widzi dysk i czy znalazł na nim stary wolumin VMFS. Jeśli na dysku znajduje się potrzebny datastore, zamontuj go lub wykonaj resignature. Jeśli na dysku są stare dane, które nie są potrzebne, wyczyść tablicę partycji i utwórz nowy datastore. Jeśli dysk w ogóle nie jest widoczny, sprawdź tryb pracy kontrolera i obsługę sterowników.