При работе с гипервизором VirtualBox довольно часто возникают разного рода проблемы, одна из них – ошибка E_FAIL (0x80004005), которая появляется на старте запуска виртуальной машины (ВМ). Появлению такой ошибки не обязательно должны предшествовать какие-то наши, пользовательские неверные действия. Хотя и они не исключаются. Эта ошибка может появится вследствие обновлений самой программы VirtualBox, сбоя в её работе или в работе хост-системы. Ранее при сохранении состояния ВМ что-то воспрепятствовало корректной записи данных в файл её конфигурации или сменилась сама конфигурация, и вот при возобновлении работы получаем ошибку E_FAIL (0x80004005). Что делать? Как избавиться от этой ошибки?
Как устранить ошибку E_FAIL (0x80004005)?
Например, в нашем случае ошибка E_FAIL (0x80004005) возникла из-за проблем с работой дополнительно подключённого виртуального жёсткого диска. Он слетел в настройках, и ВМ без соответствия ранней конфигурации, естественно, не хочет запускаться.
Устранять проблему будем пытаться способами от простого к сложному.
1. Сброс состояния ВМ
Если повезёт, самым простым решением при такой ошибке может оказаться сброс сохранённого состояния ВМ.
Состояние сбросится, и гостевая ОС может благополучно запустится. Если нет – идём дальше.
2. Манипуляции с файлом конфигурации
В отдельных случаях описываемую проблему помогут разрешить определённые манипуляции с файлом конфигурации ВМ. В проводнике открываем папку с данными такой ВМ. Кстати, для оперативного открытия пути хранения ВМ VirtualBox предусматривает специальную опцию. Открываем меню «Машина» и жмём «Показать в проводнике».
В папке конкретной ВМ нам нужны два файла с её именем, но с разными расширениями «.vbox» и «.vbox-prev». Первый будет с иконкой VirtualBox, второй – без иконки. Первый файл нужно удалить.
Второй файл переименовываем: в расширении «.vbox-prev» удаляем приписку «-prev». В итоге второй файл займёт место первого.
Примечание: файлы конфигурации VirtualBox могут иметь расширения, соответственно, «.xml» и «.xml-prev». В таком случае поступаем по аналогии: первый файл «.xml» удаляем, а второй «.xml-prev» путём переименования превращаем в первый.
Теперь можем пробовать запустить ВМ. При её запуске второй файл «.vbox-prev» ( или «.xml-prev») будет сгенерирован автоматически.
3. Возврат к предыдущим версиям VirtualBox
Разного рода проблемы в работе новых версий VirtualBox – увы, привычное явление. Со временем, по мере поступления разработчикам наших жалоб новые версии исправляются, становятся стабильными. Однако по началу имеем то, что имеем. VirtualBox поставляется нам бесплатно, и все несовершенства программы негласно списываются на этот факт. Если с ошибкой E_FAIL (0x80004005) пришлось столкнуться после обновления VirtualBox до новой версии, последнюю удаляем деинсталлятором с зачисткой остатков программ и устанавливаем более раннюю версию. Существующие ВМ в интерфейс переустановленной программы внедряем с помощью функции «Добавить» в меню «Машина». В открывшемся окошке проводника указываем путь к файлу конфигурации каждой из ВМ – к тому самому, манипуляции с которым мы рассматривали в предыдущем пункте статьи, к файлу с расширением «.vbox» (или «.xml»).
4. Пересоздание ВМ
Если ни один из предыдущих способов не помог избавиться от рассматриваемой ошибки, прибегаем к пересозданию ВМ. Мы удалим не всю её, только настройки, при этом оставим её виртуальный жёсткий диск – по сути, самый ценный из её компонентов. И на базе файла такого диска создадим новую ВМ с чистым файлом конфигурации, который уж точно не должен доставлять нам хлопот.
Идём по пути хранения файлов ВМ в проводнике. Теперь нам нужен виртуальный диск – файл, имеющий расширение «.vhd», «.vdi», «.vmdk» или иной поддерживаемый VirtualBox формат, который указывался при создании ВМ. Вырезаем этот файл и вставляем в другом месте за пределами папки, с которой работаем. Ну суть важно, поместим мы файл диска в корень раздела или в какую-то другую папку, это будет временное хранилище. Единственное, не нужно закидывать его на другой раздел диска, дабы избежать ненужной перезаписи большого объёма данных.
Обеспечив виртуальному диску временное пристанище, удаляем папку ВМ.
Теперь удаляем ВМ в окне VirtualBox.
Просто убираем её из списка.
Далее создаём новую.
Имя можно дать тоже самое, что и было ранее. Задаём нужные параметры, жёсткий диск не подключаем.
В окне VirtualBox пока ничего не трогаем, возвращаемся к файлу виртуального диска и из временного места хранения переносим его в папку новой, только что созданной машины.
Теперь настраиваем её в окне VirtualBox. Жмём кнопку «Настроить» и выставляем нужные параметры – увеличиваем видеопамять, добавляем ядра процессора, выбираем интерфейс паравиртуализации при необходимости, настраиваем общие папки и буфер обмена, не забываем включить поддержку EFI, если ранее использовалась эмуляция ПО EFI с установкой гостевой ОС на GPT-диск и т.п. Но главное – подключаем виртуальный диск. В разделе настроек «Носители» жмём кнопку SATA-контроллера.
Выбираем диск из числа существующих.
И указываем путь к файлу диска – к тому самому, что мы ранее туда-сюда перемещали в целях его сохранности.
Жмём «Ок» в окне настроек и можем запускать ВМ. При пересоздании обычно ещё требуется внутри гостевой ОС переустановить дополнения.
Всё!