Что делать если не удалось открыть сессию для виртуальной машины

29.01.2019

Код ошибки e fail 0x80004005 возникает при попытке запустить виртуальную машину в программе Oracle VirtualBox. Возникает она практически по любому поводу, отличаются лишь модули программы в которых происходит сбой.

Текст ошибки который встречается наиболее часто

Не удалось открыть сессию для виртуальной машины <ИМЯ ВИРТУАЛЬНОЙ МАШИНЫ>.

Наиболее распространенная причина и способ устранения

В самом распространенном случае данная ошибка индициируется тогда, когда программа VirtualBox не смогла записать состояние машины в vbox-файл. Это и приводит к ошибке при попытке запустить машину в следующий раз.

Когда VirtualBox по каким либо причинам не сумела записать состояние машины в vbox-файл (он был занят другим процессом, поврежден, и т.п.), программа все же попыталась сохранить состояние виртуалки в файлы, с таким же именем, но добавила к расширению *.vbox приставку -prev или -tmp.

Все эти действия происходят в папках:

C:\Users\<имя пользователя>\VirtualBox VMs\<имя машины>\

C:\Users\<имя пользователя>\.VirtualBox\

Для того, чтобы восстановить данную несправедливость:

  1. Нужно открыть папку C:\Users\<имя пользователя>\VirtualBox VMs\<имя машины>\
  2. Переместить файл название_машины.vbox куда нибудь в другой каталог (на всякий пожарный случай) или удалить.
  3. А вот файлик название_машины.vbox-prev переименовать в название_машины.vbox, т.е. попросту стереть «-prev» из расширения файла.

В случае если в папке имеются файлы с расширением *.xml-prev или *.xml-tmp , то с ними нужно поступить также как описано выше.

Все те же операции проделать во второй папке C:\Users\<имя пользователя>\.VirtualBox\

Случай второй

Во втором случае (по некоторым данным) нормальному запуску виртуальной машины мешает обновление Windows под названием KB3004394. Для нормальной работы виртуальной машины, нам необходимо его удалить.

Для этого нажмем кнопку «Пуск» и в строке поиска введем cmd .

В результатах поиска увидим программу CMD на которой нам необходимо щелкнуть правой кнопкой мыши и выбрать «Запустить от имени Администратора» .


В открывшемся окне командной строки введите:

wusa /uninstall /kb:3004394

и нажмите .


Если в Вашей системе присутствует это обновление, оно будет удалено. Вам остается перезагрузить компьютер и попробовать запустить ВМ снова.

Решение третье. Включение виртуализации в BIOS компьютера.

Еще, как вариант: в BIOS вашей материнской платы, может быть отключена поддержка виртуализации по технологии Intel Virtualization Tecnology.

Технология виртуализации Intel Virtualization Technology (VT) известна также под кодовым названием Vanderpool. Смысл VT заключается в том, что один компьютер, построенный на единственном центральном процессоре, может выступать в роли нескольких виртуальных ПК. Благодаря технологии виртуализации на единой платформе могут одновременно и независимо друг от друга запускаться несколько операционных систем или приложений.

К огромному сожалению (а может и к лучшему), BIOS на разных материнских платах — тоже разный. Но принцип один и тот же. Нам нужно найти в нем поддержку виртуализации и разрешить ее.


Стоит напомнить, что неправильные настройки BIOS компьютера, могут повлиять на работоспособность системы в целом. BIOS требует бережных и осознанных действий пользователя. Попросите помочь человека, разбирающегося в BIOS, если не уверены в своих силах

Решение четвертое. Самое действенное.

Обновления. Большинство из нас гонятся за ними. Еще бы! Ведь в обновлениях что-то улучшено, ускорено, исправлено, доделано, переделано и т.д.

Это утверждение верно. Но на практике все оказывается не совсем так хорошо.

Если все вышеописанное не помогло вам избавится от кода ошибки e-fail 0x80004005, остается еще способ. Это установить более старую версию VirtualBox.

В определенных случаях можно увидеть код ошибки e fail 0x80004005. Данный сбой возникает при попытке запуска посредством программы Oracle VirtualBox.

Причины

Как правило, fail 0x80004005 можно увидеть, если приложение не сумело записать состояние в файл. Материал может быть занят иным процессом либо поврежден. В такой ситуации программа пытается сохранить данные о виртуальной машине. Причем файлы получают аналогичное имя и приставку -tmp или -prev.

Устранение

Если на экране виден код ошибки e fail 0x80004005, переходим к диску C. Открываем папу Users. Входим в каталог с именем пользователя. Открываем папку VirtualBox VMs. Заходим в каталог с именем машины. На следующем этапе устранения сбоя e fail 0x80004005 перемещаем файл с vbox в любое удобное место. Также его можно удалить. Речь идет о файле с названием машины. Из расширения элемента vbox-prev убираем приставку. Если каталог содержит файлы xml-tmp или xml-prev, поступаем с ними по описанному выше алгоритму.

Операционная система


В менее распространенном случае причиной возникновения сбоя e fail 0x80004005 может служить обновление Windows. Если говорить точнее, компонент KB3004394 иногда мешает старту виртуальной машины. Чтобы нормализовать положение, удаляем его.

Переходим в меню «Пуск». В строку поиска вводим cmd. В результатах находим программу с соответствующим названием. Нажимаем на данный элемент правой кнопкой мышки. В возникшем меню выбираем запуск с правами администратора. Открывается окно командной строки. В него вводим задачу удаления компонента KB3004394. Нажимаем на Enter. Если в системе присутствует данное обновление, оно сразу же будет удалено. После этого выполняем перезагрузку компьютера. Снова запускаем виртуальную машину.

Если возникает код ошибки e fail 0x80004005, устранить его можно и еще одним способом. Нам необходимо включить виртуализацию в BIOS персонального компьютера. Речь идет о технологии под названием Intel Virtualization. Она также упоминается в различных источниках под кодовым именем Vanderpool. Смысл технологии заключается в возможности работы одного компьютера, построенного на едином центральном процессоре, в качестве нескольких виртуальных устройств. Виртуализация позволяет на выбранной платформе независимо и одновременно запускать несколько приложений или операционных систем.

BIOS на различных материнских платах отличается. Однако все они работают по единому принципу. Неправильные настройки платформы BIOS могут оказать влияние на работоспособность всей системы. БИОС требует осознанных и бережных действий пользователя. Лучше всего доверить настройку эксперту. Если ничего не помогло, устанавливаем VirtualBox более старой версии.

Является ошибка 0x80004005 . Неприятна она тем, что не даёт запускать виртуальную машину (или все машины).

Для себя я выделил три основные причины этой ошибки:

  1. отключены аппаратные средства виртуализации;
  2. запущена другая система виртуализации, которая не даёт VirtualBox доступа к аппаратным ресурсам;
  3. VirtualBox не может записать состояние машины в файл vbox.

В этой статье мы рассмотрим методы исправления ошибки во всех трех случаях.

Аппаратные средства виртуализации

Первая причина довольно тривиальна. Существуют технологии аппаратной виртуализации, которые дают возможность использования изолированных гостевых систем (подробнее об отличиях между программной и аппаратной виртуализацией можно прочитать в сети). Если в BIOS компьютера функции аппаратной виртуализации отключены — VirtualBox выдаст ошибку 0x80004005.

Ошибка 0x80004005 в VirtualBox.

Для включения аппаратной виртуализации нужно зайти в BIOS и найти пункты Intel Virtualization Technology или AMD-V в зависимости от чипсета.

Названия могут быть и другие. Например, Intel VT , Virtualization Technology или просто Virtualization . Значение параметра должно быть Enabled .

Какого-то строго определенного месторасположения у этого пункта в BIOS нет. Он может быть на вкладке Advanced , System Configuration , Processor или какой-то другой.



Включение аппаратной виртуализации в BIOS.

Если включение аппаратной виртуализации не помогло, пройдемся по следующим пунктам.

Конфликт с другими системами виртуализации

VirtualBox, конечно, далеко не единственное решение в области виртуализации и он может конфликтовать с другим ПО для виртуализации за доступ к гипервизору. Выход в данном случае — удалить другое ПО для виртуализации.

Рассмотрим пример с Hyper-V , который встроен в качестве роли в ОС Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, а также в Профессиональной и Корпоративной редакциях Windows 8, Windows 8.1 и Windows 10.

Для отключения роли Hyper-V необходимо открыть Диспетчер сервера , перейти в раздел Роли и нажать Удалить роли .


Запустится Мастер удаления ролей . Приданные серверу роли будут отмечены галочками. Вам необходимо убрать галочку с Hyper-V.


После удаления сервер потребует перезагрузку.

Любители стучать пальцами по клавишам оценят возможность отключать роли через .

Для этого запустите Windows PowerShell с правами администратора и подгрузите модуль Диспетчера серверов:

Import-Module Servermanager

После этого можно работать с Диспетчером серверов из PowerShell. В частности, удалять роли. Для удаления роли Hyper-V введите:

Remove-WindowsFeature Hyper-V -restart

Параметр -restart нужен для автоматической перезагрузки и можно обойтись без него.

Альтернативой PowerShell может стать командная строка, которую тоже надо запускать от имени администратора. Удалить Hyper-V поможет следующая команда:

ServerManagerCmd.exe -remove Hyper-V -restart

Как и в случае с PowerShell, параметр -restart является необязательным.

Если Вам хочется сохранить настройки Hyper-V или по какой-то причине роль Hyper-V не удаляется из системы (бывает и так, к сожалению), то можно пойти другим путем и отключить использования гипервизора в момент загрузки Windows.

Сделать это можно путем редактирования загрузчика Windows. К сожалению, прошли те времена, когда редактирование загрузчика происходило через изменения простого текстового файла boot.ini. Теперь надо лезть в командную строку и использовать утилиту bcdedit.exe .

Внимание!

При любых операциях с загрузчиком ОС будет разумным сперва сделать резервную копию загрузчика, и только потом вносить изменения.

Запускаем командную строку от имени администратора. Для создания резервной копии используем команду:

bcdedit /export C:\BackupBCD\BCDfile

Путь к файлу и имя файла Вы тут можете указать любые. Единственное уточнение — каталог, куда будет выгружен , уже должен существовать. Так что сначала создайте папку (или используйте существующую), а потом запускайте команду.

Если в пути к файлу присутствуют пробелы, нужно использовать кавычки:

bcdedit /export "C:\My BackupBCD\BCDfile"

В случае чего загрузчик можно восстановить командой:

bcdedit /import C:\BackupBCD\BCDfile

Теперь, когда бэкап загрузчика создан, можно отключить через него использование системой гипервизора.

bcdedit /set hypervisorlaunchtype off

После этого нужно будет перезагрузить систему. Это приведет к тому, что роль Hyper-V в Windows сохранится, Вы сможете заходить в оболочку Hyper-V, но запустить созданные там виртуальные машины не получится. Зато получится запустить виртуальные машины в VirtualBox.

Для включения использования гипервизора используйте команду:

bcdedit /set hypervisorlaunchtype auto

После этой команды тоже нужно перезагрузить систему.

Если конфликт между системами виртуализации не наш случай, обратимся к другой возможной причине.

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

Иногда VirtualBox не может сохранить состояние машины в файл. Такое может быть если файл поврежден или занят другим процессом. В таком случае VirtualBox пытает сохранить состояние машины в файлы с тем же именем, но с добавлением к расширению файла -prev или -tmp на конце. Поэтому, если виртуальная машина не загружается, можно попробовать подгрузить её состояние из этих файлов.

Зайдите в каталоги:

C:\Users\[имя пользователя]\VirtualBox VMs\[имя машины]

C:\Users\[имя пользователя]\.VirtualBox\

Путь к каталогу с машинами может отличаться от дефолтного, если Вы меняли его самостоятельно.

В каталоге с машинами Вы можете обнаружить файлы с.vbox-prev или.vbox-tmp на конце.


Если таковые есть, скопируйте куда-нибудь файл с.vbox на конце, а у файла с.vbox-prev уберите -prev, подменив таким образом файл состояния машины.

Кроме этого, проверьте обе папки на наличие файлов с.xml-prev и.xml-tmp на конце. Если такие найдутся, проверните с ними ту же операцию, что с файлами с расширением.vbox.

P.S. Ну и, наконец, бывает так, что VirtualBox конфликтует с обновлением Windows KB3004394 . Можно попробовать удалить это обновление через Панель управления → Все элементы панели управления → Программы и компоненты → Просмотр установленных обновлений разных версиях Windows название пунктов меню немного отличается) или через командную строку от имени администратора командой:

wusa /uninstall /kb:3004394

После этого нужно перезагрузить компьютер. Может статься так, что корень проблемы крылся в такой мелочи.