VirtualBox Kernel Driver Not Installed(rc=-1908) - Как исправить ошибку VirtualBox
ДРУГОЕ

VirtualBox Kernel Driver Not Installed(rc=-1908) - Как исправить ошибку VirtualBox

Один из способов безопасной загрузки поддерживает безопасность системы, позволяя загружать только доверенные расширения ядра. Вы должны вмешаться, если хотите запустить сторонние модули, такие как драйвер ядра VirtualBox (vboxdrv).

В macOS это очень легко сделать, так как вы можете разрешить загрузку модуля из системных настроек.

В системах с Linux вы должны убедиться, что версии ядра и GCC совместимы с модулем vboxdrv. Вы также можете вручную подписать модуль с помощью mokutil.

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



Как исправить эту ошибку в macOS

Разрешить загрузку модуля

Пользователи должны вручную разрешить загрузку расширений ядра (KEXTS) в macOS 10.13 и более новых версиях. Для этого,

  1. Нажмите на меню Apple и перейдите в Системные настройки > Безопасность и конфиденциальность.
  2. Нажмите кнопку Разрешить внизу. 
Примечание: опция разрешить доступна только в течение 30 минут после выполнения запроса на загрузку. Поэтому, если вы ее не видите, попробуйте сначала загрузить модуль.

Перезапустите службу VirtualBoxStartup

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

sudo /Library/Application Support/VirtualBox/LaunchDaemons/VirtualBoxStartup.sh restart

Повторите шаги из предыдущего раздела и перезагрузитесь. Затем проверьте, можете ли вы запустить свою виртуальную машину в VirtualBox.

Зарегистрируйте модуль vboxdrv

Также может помочь регистрация расширения ядра VirtualBox напрямую через терминал. Для этого введите следующую однострочную строку в терминале:

sudo kmutil load -p '/Library/Application Support/VirtualBox/VBoxDrv.kext'

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

Подтвердите идентификатор разработчика Oracle

Если загрузка vboxdrv вручную не работает, добавьте идентификатор разработчика Oracle в политику оценки безопасности. Это позволит программам из Oracle (т.Е. VirtualBox) получить доступ к ядру.

Введите следующую команду в терминале, чтобы сделать это:

spctl kext-consent add VB5E2TV963

Кроме того, попробуйте то же самое в режиме восстановления.

  1. Перезагрузите компьютер Mac и удерживайте Command + R, чтобы загрузиться в режим восстановления.
  2. Нажмите на "Утилиты" и выберите "терминал".
  3. Добавьте идентификатор разработчика следующим образом:spctl kext-consent add VB5E2TV963
  4. Перезагрузите компьютер Mac и проверьте, работает ли виртуальная машина сейчас.

Установить пакет расширений VirtualBox

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

  1. Сначала загрузите пакет расширений со страницы загрузки VirtualBox. 
  2. Запустите VirtualBox и выберите "Инструменты" > "Расширения". 
  3. Нажмите на кнопку Установить и откройте пакет расширений. 

Очистить кэш расширений ядра

Используйте следующую команду в терминале, чтобы очистить кэш расширений ядра:

sudo kextcache --clear-staging

Проверьте, работает ли виртуальная машина сейчас. Если это не так, перезагрузите компьютер Mac и повторите попытку выполнения команды еще раз.

Попробуйте другую версию VirtualBox

Переустановка VirtualBox - один из наиболее эффективных способов устранения этой ошибки. В частности, попробуйте разные версии VirtualBox (последнюю, а также более старые стабильные версии). Чтобы сделать это,

  1. Откройте установочный файл VirtualBox и нажмите на VirtualBox_uninstall.tool. 
  2. Введите Да, чтобы подтвердить, что вы хотите удалить VirtualBox и все его пакеты.
  3. Перезагрузите компьютер Mac. Теперь загрузите и установите последнюю версию VirtualBox.
  4. Если эта версия не работает, повторите шаги по удалению VirtualBox и попробуйте другую версию.

Правильно установите флаг расширения ядра

Если флаг restricted не установлен для KernelExtensionManagement, это повлияет на то, как Защита целостности системы (SIP) взаимодействует с каталогами. В конечном итоге это может привести к ошибке Драйвер ядра VirtualBox не установлен. Чтобы устранить это:

  1. Удалите Virtualbox.
  2. Перезагрузите компьютер Mac и удерживайте Command + R, чтобы загрузиться в режим восстановления.
  3. Выберите "Утилиты" > "Терминал" и введите следующую команду:chflags restricted /Volumes/Macintosh HD/private/var/db/KernelExtensionManagement
  4. Перезагрузите компьютер Mac, переустановите VirtualBox и проверьте, можете ли вы запустить виртуальную машину сейчас.

Отключить безопасную загрузку

Если больше ничего не работает, вы можете отключить безопасную загрузку в качестве последнего средства. При отключенной безопасной загрузке у вас не возникнет проблем с загрузкой неподписанных KEXTS, таких как vboxdrv. Для этого:

  1. Снова загрузитесь в режим восстановления (удерживайте Command + R при включении вашего Mac).
  2. Выберите Утилиты > Утилита безопасности при запуске.
  3. В безопасной загрузки окна выберите Нет безопасности.
  4. Перезагрузите компьютер Mac и проверьте, работает ли VirtualBox сейчас.

Как исправить эту ошибку в Linux

Я предоставлю команды для дистрибутивов на основе Debian для демонстрации. Не забудьте изменить команды (например, apt to dnf) в соответствии с вашим дистрибутивом.

Перезагрузите компьютер

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

Устранены проблемы с версией ядра

Иногда версия vboxdrv, совместимая с последней версией ядра, отсутствует. В других случаях вам придется вручную устанавливать заголовки и после этого устанавливать VirtualBox. Вы столкнетесь с ошибкой, если не сделаете это в этом определенном порядке.

Чтобы устранить такие проблемы, сначала попробуйте переустановить VirtualBox и заголовки ядра:

sudo apt purge virtualbox dkms linux-headers-$(uname -r)
sudo apt install linux-headers-$(uname -r)
sudo apt install virtualbox

Если ошибка не устранена, переустановите модуль ядра vboxdrv. Затем перенастроите пакет VirtualBox и загрузите модуль следующим образом:

sudo /etc/init.d/vboxdrv setup
sudo dpkg-reconfigure virtualbox-dkms
sudo modprobe vboxdrv

Откат ядра

Oracle может потребоваться некоторое время для выпуска версии vboxdrv, совместимой с последней версией ядра. Это особенно вероятно, если вы используете пользовательское или малоизвестное ядро.

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

 
Файлы ядра Ubuntu версии 6.5

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

Изменить версию GCC

Пользователи также сталкиваются с этой ошибкой, поскольку текущая версия GCC отличается от той, которая использовалась для компиляции модуля. В таких случаях переключение на тот же компилятор должно решить проблему.

Например, чтобы изменить версию GCC на GCC 8:

  1. Сначала удалите VirtualBox и его конфигурационные файлы с помощью следующей команды:sudo apt purge virtualbox
  2. Установите нужную версию GCC (в данном случае 8):sudo apt install gcc-8 g++-8
  3. Установите GCC по умолчанию на GCC 8:sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 800 --slave /usr/bin/g++ g++ /usr/bin/g++-8
  4. Наконец, переустановите VirtualBox и проверьте, устранена ли проблема.sudo apt install virtualbox

Исправлены проблемы с подписью модуля

Модули DKMS обычно настраиваются при установке для работы с безопасной загрузкой. Но иногда модулям не разрешается загружаться из-за проблем с сигнатурой.

В таких случаях вы можете подписать модули самостоятельно, используя инструмент mokutil. Я рекомендую проверить этот пост reillysiemens на GitHub, поскольку он подробно описывает этот процесс.

Отключите безопасную загрузку

Основная проблема с подписыванием модулей вручную заключается в том, что вам приходится отказываться от них после каждого обновления ядра. А обновления ядра в Linux очень часты. Итак, мое предпочтительное решение - просто отключить безопасную загрузку:

  1. Выполните sudo mokutil --disable-validation команду.
  2. Введите временный пароль и подтвердите его. 
  3. Перезагрузите систему и нажмите любую клавишу на экране управления MOK. 
  4. Выберите Изменить состояние безопасной загрузки. Введите указанный символ временного пароля (например, 7-й символ). 
  5. Выберите "Да" > "ОК", чтобы отключить безопасную загрузку.
Примечание: Вы можете использовать sudo mokutil --enable-validation для повторного включения безопасной загрузки позже, если хотите.

Комментарии (0)
Добавить комментарий