Назад | Перейти на главную страницу

Не удается завершить прерванное обновление ESXi 5 до U2

Я пытался сделать интерактивное обновление VMware ESXi 5.0.0 update 1 до 5.0.0 update 2 через образ установщика, записанный на DVD.

Когда я впервые запустил обновление, все сначала казалось, что все идет хорошо. Я выбрал вариант «Обновить ESXi, сохранить хранилище данных VMFS».

Однако программа установки завершила работу с «неожиданной ошибкой»: «OSError: [Errno 39] Directory not empty». Он ссылался на каталог $ RECYCLE.BIN в корне тома VMFS, который в противном случае содержал только imgdb.tgz. Используя консоль обслуживания, я также обнаружил, что каталог $ RECYCLE.BIN содержит только файл DESKTOP.INI, содержимое которого согласовано с расширениями оболочки Windows.

Я подозреваю, что этому файлу удалось случайно попасть туда, когда я использовал инструменты на базе Windows (загружаемые отдельно) для проверки и управления томами RAID, на которые установлен хост. В любом случае файл не выглядел так, как будто он принадлежал и действительно мешал обновлению, поэтому я просто удалил его через консоль управления.

Затем я попытался выполнить обновление еще раз, но на этот раз установщик не предоставил параметр «Обновить ESXi, сохранить хранилище данных VMFS». Теперь установщик указывает для привода:

ESX (i) Найдено: Нет

(Он сказал «Да» до того, как установщик вылетел.)

Это позволило бы мне переустановить ESXi с нуля, сохранив хранилище данных, но в прошлом у меня были проблемы с такими вещами, как изменение MAC-адресов при повторном импорте виртуальных машин, поэтому я не хотел идти по этому пути.

Я также попытался удалить сам каталог $ RECYCLE.BIN, но это ничего не изменило.

Хост по-прежнему работает нормально, но мне нужно установить обновление 2 для поддержки Solaris 11.1.

Любая информация или предложения будут оценены!

Спасибо, Кевин

Я тоже столкнулся с этой проблемой, и я смог найти решение.

Объяснение

Некоторое объяснение для начала. Эта проблема вызвана загрузкой Windows, у которой есть доступ к дискам хранилища данных, в каждом разделе, который Windows видит, он создает папку $ RECYCLE: BIN, но символ $ создает проблемы с Linux, поэтому нам нужно удалить его. Поэтому, если вам когда-либо приходилось загружаться в Windows, я рекомендую очистить их перед обновлением или, что еще лучше, после загрузки в Windows.

Устранение основной причины

Первый шаг - очистить папки $ RECYCLING.BIN.

  1. Включите SSH и подключитесь к хосту
  2. Бегать cd /vmfs/volumes/
  3. Бегать ls -allh это перечислит все ваши тома
  4. Выполните следующую команду для каждого тома и обратите внимание, какие из них имеют папку $ RECYCLING.BIN. ls -allh [volume id] (замените [идентификатор тома] каждым томом, указанным ранее)

Теперь, когда мы определили, на каких томах есть папки, нам нужно их очистить.

  1. Перейдите к тому с помощью cd [volume id]
  2. Сначала мы переименуем папку, чтобы избавиться от $, запустите mv '$RECYCLING.BIN' REC (включая одинарные кавычки) (я не думаю, что это требуется, но я все равно это сделал)
  3. Теперь удаляем папку с rm -rf REC

Папка должна исчезнуть, я снова запустил ls, чтобы убедиться, что папка исчезла, но это необязательно, я также запустил ls REC/ чтобы убедиться, что перед удалением в каталоге больше ничего не было.

Завершение обновления

Теперь мы займемся фактическим завершением обновления. Поскольку мы, по сути, «сожгли» вариант обновления с DVD, нам нужен другой способ, к счастью, есть несколько способов обновления.

  1. Сначала нам нужно будет выключить ваши виртуальные машины и перевести хост в режим обслуживания.
  2. Включите SSH, если это еще не сделано
  3. Нам нужно включить правило брандмауэра httpclient, вы можете сделать это из графического интерфейса или с помощью команды esxcli network firewall ruleset set -e true -r httpClient

Что касается фактического обновления, есть два способа сделать это: а. позволить хосту загрузить необходимые файлы или b. загрузите архив обновления с сайта VMWare и загрузите его на хост (для этого требуется соответствующая лицензия в вашей учетной записи MyVMWare).

  1. Запустите команду

esxcli software profile update -d https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml -p ESXi-6.5.0-4564106-standard

В этой команде я обновляюсь до 6.5, если вы обновляетесь до более новой версии, вам нужно будет знать имя профиля, к счастью, вы можете получить его с сайта VMWare или образа iso, в корне диска есть XML файл под названием PROFILE.XML, если вы откроете его, вы увидите <name> тег, это версия на диске, замените это в последней части команды.

Если вы обновляетесь с ZIP, вы будете использовать команду esxcli software vib update -d /vmfs/volumes/DATASTORE/VMware-ESXi-6.0.0-2494585-depot.zip

  1. Теперь перезагрузитесь, и когда хост вернется, у вас должна быть последняя версия.
  2. Наконец, отключите правило брандмауэра httpclient из графического интерфейса или с помощью команды esxcli network firewall ruleset set -e false -r httpClient, выйдите из режима обслуживания и не забудьте отключить SSH

Я знаю, что ему 4 года, но это по-прежнему один из лучших результатов в Google, а также есть только один соответствующий результат, так что это для всех, кто приходит.