VMware ESXi не видит диск после установки
После установки ESXi диск иногда не появляется при создании datastore, или ESXi находит на нём старый datastore, но не подключает его. От причины зависит решение: одни способы сохраняют данные на диске, другие их удаляют. В этой инструкции описано, как сначала найти причину, а затем выбрать подходящий сценарий.
Команды приведены для ESXi 8.0 и работают также в ESXi 7.0. Выполняйте их в ESXi Shell или по SSH под root.
Общая поддержка ESXi 7.0 закончилась 2 октября 2025 года, исправления безопасности для него больше не выпускаются. Если на сервере ещё работает ESXi 7.0, запланируйте обновление до поддерживаемой версии.
Найдите причину
Откройте ESXi Host Client в браузере и перейдите в Storage → Devices. Найдите диск и посмотрите, что видно.
- Диск есть в Storage → Devices, но недоступен в мастере New datastore. Прежде чем что-то менять, проверьте, нет ли на нём существующего datastore, системных или других разделов. Смотрите сценарии 1 и 2.
- ESXi сообщает о старом datastore VMFS на диске, но datastore не подключён. Скорее всего, диск использовался другой установкой ESXi или был склонирован. Переходите к сценарию 1.
- Диска нет в списке совсем. ESXi не видит само устройство. Переходите к сценарию 3.
Та же проверка из командной строки. Выведите диски, которые видит ESXi:
esxcli storage core device list | grep -E "^[a-z]|Display Name|Size"
Выведите тома VMFS, которые ESXi нашёл, но не подключил:
esxcli storage vmfs snapshot list
Если вторая команда не показывает томов, на диске всё равно может быть обычный datastore VMFS, который отключили вручную. ESXi не подключает такой datastore автоматически, но снапшотом он тоже не является. Проверьте список файловых систем:
esxcli storage filesystem list
Если datastore есть в списке со значением false в столбце Mounted, подключите его по имени:
esxcli storage filesystem mount -l DATASTORE_NAME
Или по UUID:
esxcli storage filesystem mount -u DATASTORE_UUID
Если вторая команда показывает том, используйте сценарий 1. Если ни одна из команд не показывает datastore, это ещё не значит, что на диске только старые разделы: диск может быть загрузочным (смотрите сценарий 4) или содержать нужные данные. Проверьте разделы, как описано в сценарии 2, прежде чем что-либо удалять.
Сценарий 1. Подключите существующий datastore VMFS и сохраните данные
Используйте этот сценарий, если на диске есть datastore с нужными виртуальными машинами. Так бывает после переустановки ESXi на том же сервере, при переносе диска с другого хоста или если диск является копией другого диска.
У каждого тома VMFS есть сигнатура, связанная с идентификатором устройства, на котором том был создан. Если идентификатор устройства меняется, например после клонирования диска, переноса на другой контроллер или смены LUN ID, ESXi определяет том как неразрешённый снапшот и не подключает его автоматически. Это защищает от подключения двух копий одного datastore. Не каждый неподключённый datastore является снапшотом: если команда ниже ничего не показывает, причина другая.
Проверьте том:
esxcli storage vmfs snapshot list
Пример вывода:
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
Можно сохранить текущую сигнатуру (mount) или записать новую (resignature).
Подключите том с текущей сигнатурой
Используйте этот способ, если исходный datastore больше не подключён к этому хосту, например после переустановки ESXi:
esxcli storage vmfs snapshot mount -l datastore1
Замените datastore1 значением Volume Name из вывода. Если у нескольких томов одинаковое имя, укажите UUID: -u 5f5b217c-2b53d2b8-d1a4-ac1f6be04cea. То же относится к resignature. Подключение сохраняется после перезагрузки. Чтобы подключить том только до следующей перезагрузки, добавьте -n.
Выбирайте по тому, подключён ли исходный том. Если исходный datastore с тем же UUID подключён к хосту, копию нельзя подключить с текущей сигнатурой. В этом случае используйте resignature.
Запишите новую сигнатуру
Используйте этот способ, если исходный datastore и его копия должны работать на одном хосте одновременно:
esxcli storage vmfs snapshot resignature -l datastore1
ESXi запишет новый UUID, и datastore появится с именем вида snap-1a2b3c4d-datastore1. Его можно переименовать в Host Client.
После resignature виртуальные машины на этом datastore не зарегистрированы на хосте. Откройте datastore в Storage → Datastore browser, найдите файл .vmx каждой виртуальной машины и зарегистрируйте её. Из командной строки виртуальную машину можно зарегистрировать так:
vim-cmd solo/registervm /vmfs/volumes/DATASTORE/VM/VM.vmx
Замените DATASTORE и VM на имя datastore и папку виртуальной машины. Resignature нельзя отменить.
Проверьте результат
esxcli storage filesystem list
Datastore должен быть в списке со значением true в столбце Mounted. Он также появится в Storage → Datastores в Host Client.
Старые команды esxcfg-volume -l (список) и esxcfg-volume -M <UUID> (постоянное подключение) делают то же самое и по-прежнему работают в ESXi 7.0 и 8.0. Команда vicfg-volume относится к vSphere CLI, который больше не поддерживается.
Сценарий 2. Очистите старые разделы и используйте диск как новый
Используйте этот сценарий, только если на диске нет нужных данных. Типичные случаи: диск использовался другой операционной системой, аппаратным RAID или старой установкой ESXi, которая больше не нужна. Пока на диске остаются старые разделы, ESXi не предлагает его для нового datastore.
Очистка таблицы разделов удаляет все данные на диске. Дважды проверьте идентификатор диска и убедитесь, что это не диск, с которого загружается ESXi, и не диск с нужным datastore.
В Host Client
Перейдите в Storage → Devices и нажмите на диск. Нажмите Actions и выберите Clear partition table. Подтвердите действие.
После этого перейдите в Storage → Datastores, нажмите New datastore и создайте на диске datastore VMFS.
Если нужно удалить только один раздел, вместо этого выберите Edit partitions, удалите раздел и сохраните изменения.
Из командной строки
Найдите имя устройства диска:
ls /vmfs/devices/disks/ | grep -v ":"
Убедитесь, что это не загрузочный диск и на нём нет datastore. Замените DEVICE именем из предыдущей команды:
esxcli storage core device list -d DEVICE | grep -E "Display Name|Is Boot Device" esxcli storage vmfs extent list
Значение Is Boot Device должно быть false, а устройства не должно быть в выводе esxcli storage vmfs extent list. Также убедитесь, что диск не используется для дампа памяти и системных журналов:
esxcli system coredump partition list esxcli system syslog config get
Устройства не должно быть в выводе coredump, а каталог syslog не должен находиться на datastore этого диска. Если вы не уверены, для чего используется диск, не выполняйте разрушительную команду. Затем выведите его разделы:
partedUtil getptbl /vmfs/devices/disks/DEVICE
Запишите новую пустую таблицу разделов GPT:
partedUtil mklabel /vmfs/devices/disks/DEVICE gpt
Пересканируйте контроллеры, чтобы Host Client увидел пустой диск:
esxcli storage core adapter rescan --all
Затем создайте datastore в Host Client, как описано выше.
Сценарий 3. Диск не виден совсем
Если диска нет в Storage → Devices, ESXi не видит само устройство. Разделы и datastore здесь ни при чём: проблема в оборудовании, режиме контроллера или драйвере.
Проверьте контроллеры хранилища и их драйверы:
esxcli storage core adapter list
Затем пересканируйте контроллеры:
esxcli storage core adapter rescan --all
Снова проверьте список устройств:
esxcli storage core device list
Если диска по-прежнему нет, проверьте причины ниже.
Частые причины:
- диск подключён к RAID-контроллеру и не добавлен ни в один виртуальный диск (логический диск) в настройках контроллера;
- контроллер работает в режиме, который ESXi не поддерживает, например программный RAID материнской платы;
- для контроллера или NVMe-диска нет драйвера ESXi. ESXi 7.0 и новее больше не поддерживают старые драйверы vmklinux, поэтому оборудование, которое работало с ESXi 6.x, может перестать работать;
- диск отключён в настройках BIOS/UEFI, неисправен или не подключён.
Проверьте контроллер и модель диска в Broadcom Compatibility Guide. Для RAID-контроллера откройте его утилиту настройки при загрузке и убедитесь, что диск входит в виртуальный диск, или переключите контроллер в режим HBA (pass-through), если он это поддерживает.
Клиенты INTROSERV с выделенными серверами могут обратиться в поддержку, если ESXi не видит диск. Поддержка проверит настройки контроллера и оборудование сервера.
Сценарий 4. На системном диске мало места для datastore или его нет
Начиная с ESXi 7.0, установщик создаёт на загрузочном диске загрузочные разделы и раздел ESX-OSData. По умолчанию эти системные разделы занимают до 138 ГБ. Если загрузочный диск 142 ГБ или меньше, установщик вообще не создаёт на нём локальный datastore. На диске большего размера datastore получает только оставшееся место. Диск виден, но свободного места на нём мало или нет совсем.
Это не ошибка. Точная разметка зависит от размера диска и параметров установки. Если место на системном диске нужно, переустановите ESXi с меньшими системными разделами. Когда появится экран загрузки установщика ESXi, нажмите Shift+O, чтобы изменить параметры загрузки, и добавьте в конец строки следующий параметр. Это параметр загрузки установщика, а не команда для ESXi Shell:
systemMediaSize=min
С min системные разделы занимают 33 ГБ. Это значение рассчитано на серверы с одним диском и небольшим набором функций. Другие значения: small (69 ГБ, для серверов с объёмом памяти от 512 ГБ), default (138 ГБ) и max (всё доступное место). Параметр доступен начиная с ESXi 7.0 Update 1c.
Переустановка ESXi с новой разметкой удаляет существующий локальный datastore на системном диске. Сначала перенесите виртуальные машины или сделайте их резервные копии.
Другой вариант: оставить ESXi на системном диске и создавать datastore только на других дисках.
Заключение
Сначала проверьте, видит ли ESXi диск и нашёл ли он на нём старый том VMFS. Если на диске есть нужный datastore, подключите его или запишите новую сигнатуру. Если на диске старые ненужные данные, очистите таблицу разделов и создайте новый datastore. Если диск не виден совсем, проверьте режим контроллера и поддержку драйверов.