Linux rc=-1908Высокая

Ошибка VirtualBox kernel module: как исправить rc=-1908 в Linux

Статья объясняет, почему возникает ошибка 'Kernel driver not installed' в VirtualBox на Linux, и предоставляет проверенные способы её исправления.

Обновлено 16 февраля 2026 г.
10-15 минут
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04+Fedora 35+Debian 11+Arch Linux

Что означает ошибка rc=-1908

Ошибка rc=-1908 с сообщением "Kernel driver not installed (rc=-1908)" возникает при попытке запуска VirtualBox или виртуальной машины в Linux. Это означает, что модуль ядра vboxdrv (основной драйвер VirtualBox) не загружен в систему или отсутствует. Без этого модуля VirtualBox не может управлять виртуальными машинами, и вы увидите это сообщение сразу при открытии программы или при запуске ВМ.

Полный текст ошибки обычно выглядит так:

Failed to create the VirtualBox COM object.
The VirtualBox kernel driver (vboxdrv) is not loaded.
Please load the kernel module by executing 'modprobe vboxdrv' as root.

Или:

Kernel driver not installed (rc=-1908)

Ошибка характерна для большинства дистрибутивов Linux (Ubuntu, Fedora, Debian, Arch) и часто появляется после обновления ядра, переустановки системы или при отсутствии необходимых пакетов.

Причины возникновения

  1. Не установлены заголовки ядра (linux-headers). Для сборки модуля vboxdrv требуются файлы заголовков текущей версии ядра. Если они отсутствуют, VirtualBox не может скомпилировать модуль.
  2. Конфликт версий ядра и модуля. После обновления ядра старый модуль vboxdrv становится несовместимым. DKMS (Dynamic Kernel Module Support) должен автоматически пересобрать модуль, но это не всегда происходит.
  3. Отсутствие прав для загрузки модуля. Модуль ядра требует прав суперпользователя. Если вы запускаете VirtualBox без sudo или без настройки udev, загрузка может блокироваться.
  4. Повреждённая или неполная установка VirtualBox. Например, при установке из репозитория дистрибутива версия VirtualBox может отличаться от версии в репозитории Oracle, что вызывает конфликт.
  5. Secure Boot блокирует загрузку модуля. На системах с включённым Secure Boot (UEFI) неподписанные модули ядра, такие как vboxdrv, могут отклоняться без явного подтверждения.
  6. Модуль загружен, но неактивен. Иногда модуль присутствует, но не загружен автоматически при загрузке системы.

Способы решения

Способ 1: Установка заголовков ядра и пересборка модуля (рекомендуемый)

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

Для Ubuntu/Debian и производных:

# 1. Установите заголовки ядра и инструменты сборки
sudo apt update
sudo apt install linux-headers-$(uname -r) build-essential dkms

# 2. Пересоберите модуль VirtualBox
sudo /sbin/vboxconfig

# 3. Загрузите модуль вручную (если не загрузился автоматически)
sudo modprobe vboxdrv

# 4. Проверьте, что модуль загружен
lsmod | grep vbox

Если команда vboxconfig недоступна, используйте:

sudo /etc/init.d/vboxdrv setup

Для Fedora/RHEL/CentOS:

# Установите заголовки и инструменты
sudo dnf install kernel-devel kernel-headers gcc make dkms

# Пересоберите модуль
sudo /sbin/vboxconfig

# Загрузите модуль
sudo modprobe vboxdrv

Для Arch Linux:

# Установите заголовки и dkms
sudo pacman -S linux-headers dkms

# Пересоберите модуль (VirtualBox из репозитория)
sudo modprobe vboxdrv

Если вы устанавливали VirtualBox из AUR, пересоберите пакет: sudo pacman -S virtualbox-host-modules-arch.

Способ 2: Переустановка VirtualBox из официального репозитория Oracle

Если модуль не собирается из-за несовместимости версий, переустановите VirtualBox с официального репозитория Oracle. Это гарантирует, что версия VirtualBox и модуля ядра будут согласованы.

Для Ubuntu/Debian:

  1. Удалите текущую версию:
    sudo apt remove virtualbox virtualbox-*
    
  2. Добавьте репозиторий Oracle (замените focal на вашу версию Ubuntu, например jammy для 22.04):
    echo "deb [arch=amd64] https://download.virtualbox.org/virtualbox/debian focal contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
    wget -q https://www.virtualbox.org/download/oracle_vbox_2016.gpg -O- | sudo apt-key add -
    
  3. Установите последнюю версию:
    sudo apt update
    sudo apt install virtualbox-7.0  # или актуальная версия
    
  4. Во время установки система предложит автоматически собрать модули. Подтвердите.

Для Fedora:

sudo dnf remove VirtualBox
sudo dnf install https://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
sudo dnf install VirtualBox-7.0

После установки выполните sudo /sbin/vboxconfig для сборки модуля.

Способ 3: Ручная загрузка модуля и проверка зависимостей

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

  1. Проверьте, существует ли модуль:
    find /lib/modules/$(uname -r) -name "vboxdrv.ko"
    

    Если файл отсутствует, вернитесь к Способу 1.
  2. Загрузите модуль вручную:
    sudo modprobe vboxdrv
    
  3. Если команда завершится ошибкой, проверьте логи ядра:
    sudo dmesg | grep vbox
    sudo journalctl -xe | grep vbox
    

    Типичные ошибки: Invalid module format (несовместимость версий), Permission denied (проблемы с Secure Boot).
  4. Убедитесь, что модуль включён в автозагрузку:
    echo "vboxdrv" | sudo tee /etc/modules-load.d/virtualbox.conf
    

Способ 4: Отключение Secure Boot или подписание модуля

Если в логах (dmesg) вы видите упоминание Secure Boot или module verification failed, проблема в блокировке неподписанного модуля.

Вариант A: Временно отключить Secure Boot в UEFI/BIOS

  1. Перезагрузите компьютер, войдите в настройки UEFI/BIOS (обычно клавиша F2, Del, F10).
  2. Найдите опцию Secure Boot и отключите её.
  3. Сохраните изменения и перезагрузитесь.
  4. Выполните sudo modprobe vboxdrv.

Вариант B: Подписать модуль своими ключами (более сложный) Это рекомендуется, если вы не хотите отключать Secure Boot. Краткие шаги:

  1. Создайте ключи MOK (Machine Owner Key):
    sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)
    
  2. Зарегистрируйте ключ в системе через mokutil.
  3. Подпишите модуль и загрузите его. Подробная инструкция может варьироваться в зависимости от дистрибутива. Для большинства пользователей проще отключить Secure Boot.

Профилактика

Чтобы избежать повторения ошибки после обновлений:

  1. Установите DKMS. Этот демон автоматически пересобирает модули ядра при обновлении версии ядра. На Ubuntu/Debian он обычно ставится вместе с VirtualBox, но проверьте:
    sudo apt install dkms  # или sudo dnf install dkms
    
  2. Используйте официальный репозиторий Oracle для установки VirtualBox, а не репозиторий дистрибутива. Версии в дистрибутивах часто отстают и могут несовмещаться с новыми ядрами.
  3. Не пропускайте обновления заголовков ядра. При обновлении ядра через менеджер пакетов обычно предлагаются и заголовки. Устанавливайте их вместе с ядром.
  4. После крупного обновления системы (например, dist-upgrade) проверьте, загружен ли модуль:
    lsmod | grep vbox
    

    Если нет, выполните sudo modprobe vboxdrv.
  5. Создайте скрипт-помощник (опционально). Сохраните в файл ~/fix_vbox.sh:
    #!/bin/bash
    sudo apt install -y linux-headers-$(uname -r) build-essential dkms
    sudo /sbin/vboxconfig
    sudo modprobe vboxdrv
    

    Дайте права chmod +x ~/fix_vbox.sh и запускайте при необходимости.

Часто задаваемые вопросы

Почему возникает ошибка 'Kernel driver not installed' в VirtualBox?
Нужно ли перезагружать компьютер после исправления?
Что делать, если модуль vboxdrv есть, но не загружается?
Можно ли избежать этой ошибки при обновлении ядра?

Полезное

Проверьте установленные заголовки ядра
Пересоберите модуль vboxdrv
Загрузите модуль ядра
Перезапустите VirtualBox