Главная
» LINUX
»
Как исправить ошибку запуска виртуальной машины VirtualBox в Linux
Как исправить ошибку запуска виртуальной машины VirtualBox в Linux
Если виртуальная машина VirtualBox не запускается под Linux , перед переустановкой чего-либо внимательно изучите сообщение об ошибке. Распространенная причина на стороне хоста — vboxdrvотсутствие необходимого модуля ядра, сборка для другого ядра или блокировка Secure Boot. Другие сообщения указывают на проблемы с настройками виртуальной машины, несоответствие версий или необходимость установки пакета расширений для какой-либо функции.
1. Запишите сообщение об ошибке и проверьте версии хоста.
Запишите полный текст диалогового окна и код ошибки, затем проверьте, какая сборка VirtualBox и какое ядро Linux используются:
VBoxManage --version
uname -r
Используйте само сообщение об ошибке, чтобы выбрать следующую проверку. Если VirtualBox запускается, но одна виртуальная машина не запускается, сосредоточьтесь на журнале и настройках этой виртуальной машины. Если все виртуальные машины выдают ошибку драйвера хоста, начните с vboxdrv.
Пример: используйте значения кода ошибки и версии, отображаемые на вашем собственном компьютере с Linux.
2. Проверьте, загружен ли драйвер хоста VirtualBox.
В Linux для запуска виртуальных машин используется vboxdrvмодуль ядра хоста. Проверьте наличие модулей VirtualBox, а затем попробуйте загрузить основной драйвер:
lsmod | grep '^vbox'
sudo modprobe vboxdrv
Если modprobeвозвращается ошибка, сохраните её точную формулировку. Если операция проходит успешно, повторите попытку запуска виртуальной машины. В руководстве по установке Linux для хост-системы Oracle поясняется, что VirtualBox требует наличия модулей ядра хост-системы и соответствующих заголовочных файлов ядра.
Успешный запрос modprobeможет не вернуть никакого текста; важным признаком будет сообщение об ошибке.
3. Пересоберите модуль для загруженного вами ядра.
После обновления ядра Linux модуль VirtualBox может не соответствовать текущему работающему ядру. Убедитесь, что файлы разработки для этого конкретного ядра доступны:
uname -r
ls -ld "/lib/modules/$(uname -r)/build"
Если buildссылка отсутствует, установите соответствующие заголовочные файлы ядра или пакет разработки, используя менеджер пакетов вашего дистрибутива. В Ubuntu или Debian, когда VirtualBox загружался из репозитория дистрибутива, типичная процедура восстановления выглядит следующим образом:
Названия пакетов различаются в Fedora, Arch Linux, openSUSE и других системах. Установите заголовочные файлы для работающего ядра и пакета host-module, соответствующего тому, как вы установили VirtualBox. Не смешивайте установщик Oracle с пакетами VirtualBox из дистрибутива; используйте один источник пакетов и инструкции по его пересборке. Индекс пакетов Ubuntu показывает, какие релизы в настоящее время предоставляют virtualbox-dkms.
Версия ядра и каталог его сборки должны соответствовать одному и тому же работающему ядру.Эта команда для установки пакетов применяется к установкам Ubuntu или Debian из их репозиториев; в других случаях используйте имена пакетов вашего дистрибутива.
4. Проверьте Secure Boot, если Linux отклоняет модуль.
Функция Secure Boot может предотвратить загрузку неподписанного стороннего модуля ядра. Проверьте его состояние и найдите соответствующие сообщения ядра:
Если в выводе указано, что ключ был отклонен или модуль не подписан, следуйте процедуре подписи модулей, установленной в вашем дистрибутиве. В Ubuntu модули DKMS можно подписать с помощью ключа владельца машины (MOK); если при установке вас попросят зарегистрировать ключ, завершите процедуру регистрации при следующей перезагрузке. Canonical описывает процесс безопасной загрузки и использования MOK . Отключение безопасной загрузки — не первое, что следует попробовать для исправления проблемы.
Используйте журнал ядра, чтобы отличить отклоненный модуль от отсутствующего или неудачно собранного модуля.
5. Проверяйте наличие пакета расширений только в том случае, если этого требует ошибка.
Пакет расширений не является обязательным требованием для запуска обычной виртуальной машины. Он добавляет определенные функции, включая поддержку USB 2.0 и 3.0, а также возможности удаленного отображения. Если в сообщении об ошибке указано расширение или одна из этих функций, проверьте установленный пакет:
VBoxManage list extpacks
Если пакет установлен, его версия должна совпадать с версией VirtualBox на хосте. Обновите или удалите устаревший пакет через управление расширениями VirtualBox или загрузите соответствующий релиз с официальной страницы загрузок VirtualBox . Не устанавливайте старый пакет расширений только потому, что виртуальная машина не запускается.
Сравните версию пакета расширений с версией хоста из VBoxManage --version.
6. Используйте журнал виртуальной машины для выявления ошибок, затрагивающих только одну машину.
Если отказала только одна виртуальная машина, откройте её VBox.logв папке этой виртуальной машины Logs. Местоположение по умолчанию — `< ~/VirtualBox VMs/VM-name/Logsимя виртуальной машины>`, хотя она может использовать другую папку. Проверьте последние строки вокруг неудачного запуска на наличие первой критической ошибки; в главе Oracle по устранению неполадок описан журнал и распространенные диагностические признаки.
Фрагменты журнала различаются в зависимости от причины сбоя; используйте реальный журнал виртуальной машины, которая не запустилась.
Если в сообщении говорится о недоступности аппаратной виртуализации, включите Intel VT-x или AMD-V (иногда обозначаемые как SVM) в прошивке хоста. Если Linux работает внутри другой виртуальной машины, внешний гипервизор должен предоставлять доступ к вложенной виртуализации. Избегайте изменения настроек виртуальной машины, не связанных с данной функцией, если ошибка не указывает на них.
Названия и расположение элементов в менеджере различаются в зависимости от версии VirtualBox; сообщение об ошибке должно подсказать, какой параметр следует проверить.
7. Избегайте рискованных изменений прав доступа.
Не пытайтесь chownисправить /usrVirtualBox. Системный каталог обычно принадлежит root, и изменение прав доступа может повредить управляемые пакетами файлы без восстановления модуля ядра. После установки правильных заголовков или пересборки драйвера перезагрузитесь в нужное ядро и попробуйте запустить виртуальную машину снова.
Если проблема не решена, сохраните точный текст диалогового окна, дистрибутив Linux и версию ядра, версию VirtualBox, dkms statusвывод и соответствующий конец сообщения VBox.log. Эти сведения позволяют определить, относится ли следующий шаг к драйверу хоста, безопасной загрузке, конфигурации виртуальной машины или несоответствию версий.