Как убрать ошибку 0x80004005 в VirtualBox

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

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

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

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

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

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

Как убрать ошибку 0x80004005 в VirtualBox
Ошибка 0x80004005 в VirtualBox.

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

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

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

Как убрать ошибку 0x80004005 в VirtualBox
Включение аппаратной виртуализации в 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 необходимо открыть Диспетчер сервера, перейти в раздел Роли и нажать Удалить роли.

Как убрать ошибку 0x80004005 в VirtualBox

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

Как убрать ошибку 0x80004005 в VirtualBox

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

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

Для этого запустите 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 на конце.

Как убрать ошибку 0x80004005 в VirtualBox

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

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

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

wusa /uninstall /kb:3004394

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

Добавить комментарий

Ваш адрес email не будет опубликован.