Hyper v virtualbox ошибка

Вчера написал про виртуальные машины, параллельно тестируя их. С утра же, когда устанавливать операционные системы, оказалось, что в VirtualBox вылетает ошибка «Не удалось открыть сессию для виртуальной машины». Код ошибки на скриншоте ниже. Дескать не поддерживается технология виртуализации. Проверил ещё раз настройки BIOS для надёжности — всё в порядке. Настройки VirtualBox и виртуальной машины так же в норме. Оказалось, что просто конфликтуют две программы, а точнее Hyper-V от Microsoft забирал виртуализацию на себя. Решается эта проблема удалением Hyper-V.

Конфликт Hyper-V и VirtualBox. Ошибка «Не удалось открыть сессию для виртуальной машины» 1

Итак, ошибка вот такая:

Конфликт Hyper-V и VirtualBox. Ошибка «Не удалось открыть сессию для виртуальной машины» 2

Удаляем Hyper-V:

Нажимаем Win + R, вводим OptionalFeatures и нажимаем Enter. Или же открываем:

Панель управления ➝ Все элементы панели управления ➝ Программы и компоненты ➝ Включение и отключение компонентов Windows

В открывшемся окне Компоненты Windows снимаем отметку с раздела Hyper-V.

Конфликт Hyper-V и VirtualBox. Ошибка «Не удалось открыть сессию для виртуальной машины» 3

Жмём ОК и перезагружаем компьютер. После этого в VirtualBox необходимо создать новую виртуальную машину и можно начинать с ней работать.


Спасибо, что читаете! Подписывайтесь на меня в социальных сетях Facebook, Twitter, VKOK и мессенджерах Telegram и TamTam!

Читайте анонсы и посты целиком в ЖЖ, Medium, Голосе и Яндекс.Дзен!

Поддержите мой блог финансово. Все донаты пойдут на оплату хостинга и развитие сайта!


На сегодняшний день VirtualBox является самой популярной бесплатной платформой виртуализации, однако даже у её приверженцев в какой-то момент может возникнуть желании опробовать другие виртуальные машины, в частности, встроенную платформу Hyper-V. Только вот включивший её пользователь очень вскоре обнаружит, что виртуальные машины на его любимом VirtualBox больше не запускаются, а платформа выдаёт ошибку «Не удалось открыть сессию для виртуальной машины» с кодом E_FAIL (0x80004005).

Ошибка E_FAIL (0x80004005)

Причиной ошибки может быть неудачная запись состояния ВМ в файл VBOX, кривое накопительное обновление самой Windows, отключение виртуализации в BIOS, но в данном случае причина кроется в конфликте VirtualBox с Hyper-V. Восстановить нормальную работу виртуалбокс можно удалив компоненты Hyper-V из системы, только вот как быть, если установленные на эту платформу машины вам всё же нужны? Запускать ВМ на одном ПК с включенными VirtualBox и Hyper-V нельзя, но можно временно отключить штатный компонент виртуализации, не удаляя его.

Делается это элементарно. Запустите от имени администратора командную строку или консоль PowerShell и выполните в ней команду bcdedit /set hypervisorlaunchtype off, а затем перезагрузите компьютер.

bcdedit

Виртуальные машины VirtualBox станут запускаться без ошибок. Чтобы вернуть Hyper-V в рабочее состояние, выполните команду bcdedit /set hypervisorlaunchtype auto и опять же перезагрузитесь.

PowerShell

Для удобства можете создать пакетные файлы с командами и разместить их на рабочем столе.

Кроме того, вы можете добавить режим работы системы с Hyper-V и без него в загрузочное меню.

Для этого в запущенной с повышенными правами командной строке (не PowerShell) выполните команду bcdedit /copy {current} /d «Hyper-V отключена». При этом будет создан новый элемент в загрузочном меню, а в консоли отобразится его идентификатор (32-значная строка). Скопируйте её в буфер, замените ею элемент GUID в команде bcdedit /set {GUID} hypervisorlaunchtype off и выполните команду.

Командная строка

Перезагрузившись, вы увидите меню выбора операционной системы.

Меню выбора операционной системы

Первое будет загружать рабочий стол с включенной Hyper-V, второе — без неё.

Загрузка…

Если вы использовали гипервизор Hyper-V и в какой-то момент решили установить VirtualBox, то при запуске виртуальной машины столкнетесь с ошибкой «Не удалось открыть сессию для виртуальной машины»:

Call to WHvSetupPartition failed: ERROR_SUCCESS (Last=0xc000000d/87) (VERR_NEM_VM_CREATE_FAILED).

Код ошибки: E_FAIL (0x80004005)
Компонент: ConsoleWrap
Интерфейс: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

Решить это можно, удалив компоненты Hyper-V в Windows: Панель управления — Программы и компоненты — Установка и удаление компонентов. Однако, если виртуальные машины Hyper-V вам нужны, это может быть неудобно.

Для того, чтобы иметь возможность запускать виртуальные машины VirtualBox при установленных компонентах Hyper-V, требуется выключить запуск гипервизора Hyper-V. Для этого запустите командную строку от имени администратора и введите следующую команду:

> bcdedit /set hypervisorlaunchtype off

После выполнения команды перезагрузите компьютер. Теперь VirtualBox будет запускаться без ошибки «Не удалось открыть сессию для виртуальной машины» (однако Hyper-V запускаться не будет).

Чтобы вернуть всё в исходное состояние, используйте команду

> bcdedit /set hypervisorlaunchtype auto

с последующей перезагрузкой компьютера.

Этот способ можно модифицировать, добавив в меню загрузки Windows два пункта: один с включенным Hyper-V, другой — с отключенным. В в командной строке от имени администратора:

> bcdedit /copy {current} /d "Отключить Hyper-V"

Будет создан новый пункт меню загрузки Windows, также в командной строке отобразится GUID этого пункта.

> bcdedit /set {GUID этого пункта меню} hypervisorlaunchtype off

В результате, после перезагрузки Windows 10 или 8, вы увидите два пункта меню загрузки ОС:

/files/blog/429/3.jpg

Поиск:
Web-разработка • Windows • Ubuntu • Linux • Виртуальная машина • VirtualBox • MS Hyper-V • bcdedit

Каталог оборудования

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Производители

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

Функциональные группы

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

If you are using Windows 10 operating system and want to use virtualization on it, then you have 2 options.

1. Using Virtual Box
2. Using Hyper V

This post is not about how to use them but instead, what are the issues you will encounter if you have them together.

One scenario is, you have VirtualBox installed and working fine. Then you realize you want to use a docker on your Windows machine. The VirtualBox working fine until will start comparing about virtualization and acceleration. After installing the docker on your windows, all your VMs on the VirtualBox cannot start. It complains about the availability of virtualization.

«The hardware virtualization is enabled in the Acceleration section of the system although it is not supported from the host system. It should be disabled in order to start the visual system«

The error message not straight forward to understand. As you know virtualization is required for docker or VirtualBox to work. First thing you will do now is, check whether your system is virtualization enabled or not. There are multiple options to check if your system is enabled with virtualization or not. Check the BIOS settings, check the CPU section of the Task manager. 

Now you start worrying more about the possible reason for VirtualBox failure. The reason for this failure is having VirtualBox and Docker running on your system. 

If you install docker in your Windows, it will enable the Hyper V and install a virtual machine for docker to work. This is the requirement for docker on Windows. Both VirtualBox and Hyper V cannot run together. However, the later versions of docker might come up with some capability to have them together. 

To solve this problem, disable the Hyper V from optional features on your Windows 10. Remember, disabling the Hyper V will stop your docker. Only if you are not interested in docker and only need VirtualBox to run, then do this. 

Open the optional feature dialog box by entering the optionalfeatures in the run box

Then uncheck the box Hyper-V, it requires a restart. After a restart, your VirtualBox should work as before. 

Error messages:

1. Invalid settings detected. 

2. System acceleration page:

The hardware virtualization is enabled in the Acceleration section of the System page although it is not supported by the host machine. It should be disabled in order to start the virtual system.

3. General Basic page:

The virtual machine operating hint is set to 64-bit type. 64-bit guest system require hardware virtualization, so this will be enabled automatically if you confirm the changes. 

4. Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT

Failed to open a session for the virtual machine ubantu.
Raw-mode is unavailable courtesy of Hyper-V. (VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT).

Result Code: E_FAIL (0x80004005)
Component: ConsoleWrap
Interface: IConsole {872da645-4a9b-1727-bee2-5585105b9eed}

vb_and_hyper_v_logo

После установки Microsoft Hyper-V Oracle VM VirtualBox при запуске виртуальной машины выдаёт сообщение как на скриншоте ниже.

Ошибка возникает из-за особенностей работы гипервизора от Microsoft с nested virtualization (вложенной виртуализацией).

Современные процессоры поддерживают аппаратные функции, которые делают виртуализацию быстрее и надежнее. Hyper-V использует эти расширения процессора (например, Intel VT-x и AMD-V) для выполнения виртуальных машин. Как правило, после запуска Hyper-V другое программное обеспечение блокируется с помощью этих возможностей процессора. Это предотвращает запуск Hyper-V на гостевых виртуальных машинах.

https://docs.microsoft.com/ru-ru/virtualization/hyper-v-on-windows/user-guide/nested-virtualization

Для совместной, но не одновременной, работы обоих гипервизоров необходимо отключать Hyper-V. Делается это через настройку загрузчика Microsoft Windows — bcdedit.

Запустите командную строку Windows или PowerShell с правами администратора. И выполните команду:

bcdedit /set hypervisorlaunchtype off

Изменения вступят в силу после перезагрузки Windows. Чтобы вернуть в исходное состояние работоспособность Hyper-V выполните команду:

bcdedit /set hypervisorlaunchtype Auto

Изменения по прежнему вступят в силу после перезагрузки Windows.

Для автоматизации переключения состояния Hyper-V я собрал небольшой скрипт для PowerShell. Из-за настроек безопасности Windows выполнение PowerShell скриптов не разрешено. Обходить запрет можно несколькими способами: либо включением возможности выполнения скриптов, либо прибегать к иным способам.

Чтобы включить выполнение скриптов достаточно единожды выполнить в терминале PowerShell команду

Set-ExecutionPolicy Unrestricted

Теперь можно выполнять свои скрипты на PowerShell! Чтобы вернуть настройки выполнения скриптов в исходное состояние выполните команду:

Set-ExecutionPolicy Restricted

Если по каким-то причинам вы не хотите прибегать к данному способу, то попробуйте выполнить приведённый скрипт ниже при помощи нескольких ухищрений. Сохраните скрипт к себе на компьютер. В той директории, в которую вы сохранили скрипт, запустите PowerShell.

TYPE .\ваше_название_скрипта.ps1 | PowerShell.exe -noprofile -
PowerShell.exe -ExecutionPolicy UnRestricted -File .\ваше_название_скрипта.ps1
PowerShell.exe -ExecutionPolicy Bypass -File .\ваше_название_скрипта.ps1

Более обширно о альтернативных вариантах выполнения скриптов в этой статье https://www.securitylab.ru/analytics/461333.php

Скрипт для автоматического включения/выключения Hyper-V.

# Запускайте скрипт с правами администратора!
# Thanks for the solution https://stackoverflow.com/a/31602095

if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs; exit }

$hypervisor_status = Invoke-Expression "bcdedit /enum" | Select-String "hypervisorlaunchtype"
$reboot_timeout = 300; #Время в секундах до перезагрузки компьютера
$status_message = "Выключаем Hyper-V. Компьютер будет перезагружен через $reboot_timeout секунд.";
$message_displayed = 15; # How long the message will be displayed
$commentary_to_system_journal = @("Включаем Hyper-V","Выключаем Hyper-V");
$reboot_reason = "P:2:4";

If( $hypervisor_status -match "auto" )
{
    Write-Host $status_message;
    Start-Sleep -Seconds $message_displayed;
    bcdedit /set hypervisorlaunchtype off;
    shutdown -r -t $reboot_timeout /c $commentary_to_system_journal[1] /d $reboot_reason;
} Else {
    Write-Host $status_message;
    Start-Sleep -Seconds $message_displayed;
    bcdedit /set hypervisorlaunchtype Auto;
    shutdown -r -t $reboot_timeout /c $commentary_to_system_journal[0] /d $reboot_reason;
}

Метки: виртуализация, hyper-v, скрипт, Powershell, scripts, virtualbox, Windows


This entry was posted on 2018/07/19 at 21:54:07 and is filed under Software. You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.

Понравилась статья? Поделить с друзьями:
  • Hyundai accent коды ошибок p1610
  • Hydronic d5wsc коды ошибок
  • Hypervisor is not running ошибка
  • Hyper stark dx650 ошибка е3
  • Hydrosta коды ошибок