Ошибка запуска виртуальных машин после установки драйвера Intel IPMI

Те читатели блога, которые подписались на получение комментариев к статьям, на прошлой неделе получили порцию сообщений сильно больше обычной. Причиной послужила длительная переписка с одним из читателей, который столкнулся со следующей проблемой. После установки пакета под названием «Intel Active System Console» версии 3.0 любые попытки запуска виртуальных машин заканчивались ошибкой.

Проведенное исследование показало, что проблема заключается в совместимости с Windows Server 2008 драйвера Intel IPMI версии 13.0. Этот драйвер входит как в Intel Active System Console, так и в Intel Active System Monitor. Несовместимость как раз и проявляется в том, что после установки драйвера все виртуальные машины Hyper-V перестают запускаться. При этом выводится ошибка доступа к файлу виртуального диска, которая выглядит следующим образом.

  • В английской версии: The application encountered an error while attempting to change the state of 'VM name' - IDE/ATAPI: Couldn't attach 'path to disk.VHD' to location 0/0 of IDE Controller. Error: 'General access denied error' (0x80070005) .
  • Или в русской версии: Приложением обнаружена ошибка при попытке внести изменения состояния «Имя ВМ» .

Я специально привел текст ошибок полностью — чтобы эту запись впоследствии можно было найти через поисковые системы. А вот как выглядят сами ошибки в обоих вариантах.

Простое удаление ПО Intel проблемы не решает — виртуальные машины по-прежнему не запускаются. В результате мозгового штурма с нашей американской командой виртуализации мы нашли следующий способ восстановления работоспособности системы.

  1. Удалить установленное ПО Intel, если это не было сделано ранее.
  2. Перевести службы «Intel IPMI Service» и «Intel Monitoring Agent» в состояние Disabled (отключено), если они остались в системе после удаления ПО.
  3. Отключить драйвер IPMI, выставив значение «4» ключа «Start» ветви «HKLM\System\CurrentControlSet\Services\imbdrv».
  4. Стать владельцем ветви «HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E97D-E325-11CE-BFC1-08002BE10318}».
  5. Дать себе полные права (Full Control) на эту ветвь и убрать права всех остальных субъектов безопасности.
  6. Удалить эту ветвь.
  7. Перезагрузиться.

Данная последовательность действий заведомо устраняет проблему, это проверено на трех системах — в том числе, и у нашего читателя. Впрочем, возможно, что один из этих шагов может быть лишним, и что в действительности необходим лишь последний из них — удаления ветви «HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E97D-E325-11CE-BFC1-08002BE10318}». Впрочем, взять ее во владение и дать себе права придется в любом случае. Для этого потребуется запустить редактор реестра с полными правами администратора (Elevated).

Если кто-то столкнулся с этой проблемой — пожалуйста, проверьте предложенный способ решения и напишите в комментариях, какие шаги оказались достаточными. Надо понимать, что предложенный метод лишь устраняет проблему с Hyper-V, причем делает это достаточно грубым способом. По вопросам работы ПО Intel с вашим сервером виртуализации следует обращаться в поддержку Intel.