Я устанавливал VirtualBox с основного сайта с указанным пакетом .dpkg, и во время установки у меня получилась ошибка:
dpkg: dependency problems prevent configuration of virtualbox-5.1:
virtualbox-5.1 depends on libqt5x11extras5 (>= 5.6.0); however:
Package libqt5x11extras5 is not installed.
virtualbox-5.1 depends on libsdl1.2debian (>= 1.2.11); however:
Package libsdl1.2debian is not installed.
dpkg: error processing package virtualbox-5.1 (--install):
dependency problems - leaving unconfigured
Processing triggers for systemd (232-21ubuntu5) ...
Processing triggers for ureadahead (0.100.0-19) ...
ureadahead will be reprofiled on next reboot
Processing triggers for bamfdaemon (0.5.3+17.04.20170406-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for gnome-menus (3.13.3-6ubuntu5) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu2) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.15-1) ...
Processing triggers for shared-mime-info (1.8-1) ...
Errors were encountered while processing:
virtualbox-5.1
В кулак подумала, что проблема связана с неудовлетворенными зависимостями и запущена :
sudo apt-get install -f
Но затем я получил следующее сообщение об ошибке:
Adding group `vboxusers' (GID 132) ...
Done.
Created symlink /etc/systemd/system/multi-user.target.wants/vboxdrv.service → /lib/systemd/system/vboxdrv.service.
Created symlink /etc/systemd/system/multi-user.target.wants/vboxballoonctrl-service.service → /lib/systemd/system/vboxballoonctrl-service.service.
Created symlink /etc/systemd/system/multi-user.target.wants/vboxautostart-service.service → /lib/systemd/system/vboxautostart-service.service.
Created symlink /etc/systemd/system/multi-user.target.wants/vboxweb-service.service → /lib/systemd/system/vboxweb-service.service.
vboxdrv.sh: failed: modprobe vboxdrv failed. Please use 'dmesg' to find out why.
There were problems setting up VirtualBox. To re-start the set-up process, run
/sbin/vboxconfig
as root.
После этого я выполнил предложенную команду и получил точно такую же ошибку.
Как было предложено для @George, я побежал dmesg -kHd --time-format ctime | tail -20, результирующие строки:
[dom ago 13 13:59:07 2017 < 0,005021>] wlo1: authenticate with ea:de:27:93:b1:50
[dom ago 13 13:59:07 2017 < 0,005558>] wlo1: send auth to ea:de:27:93:b1:50 (try 1/3)
[dom ago 13 13:59:07 2017 < 0,003337>] wlo1: authenticated
[dom ago 13 13:59:07 2017 < 0,008390>] wlo1: associate with ea:de:27:93:b1:50 (try 1/3)
[dom ago 13 13:59:07 2017 < 0,006367>] wlo1: RX AssocResp from ea:de:27:93:b1:50 (capab=0x421 status=0 aid=1)
[dom ago 13 13:59:07 2017 < 0,001071>] wlo1: associated
[dom ago 13 14:01:06 2017 < 119,551821>] wlo1: disconnect from AP ea:de:27:93:b1:50 for new auth to c6:6e:1f:08:83:ce
[dom ago 13 14:01:06 2017 < 0,005411>] wlo1: authenticate with c6:6e:1f:08:83:ce
[dom ago 13 14:01:06 2017 < 0,004158>] wlo1: send auth to c6:6e:1f:08:83:ce (try 1/3)
[dom ago 13 14:01:06 2017 < 0,005006>] wlo1: authenticated
[dom ago 13 14:01:06 2017 < 0,001436>] wlo1: associate with c6:6e:1f:08:83:ce (try 1/3)
[dom ago 13 14:01:06 2017 < 0,003535>] wlo1: RX AssocResp from c6:6e:1f:08:83:ce (capab=0x421 status=0 aid=1)
[dom ago 13 14:01:06 2017 < 0,000535>] wlo1: associated
[dom ago 13 14:05:07 2017 < 240,406581>] wlo1: disconnect from AP c6:6e:1f:08:83:ce for new auth to c6:6e:1f:08:83:cf
[dom ago 13 14:05:07 2017 < 0,014262>] wlo1: authenticate with c6:6e:1f:08:83:cf
[dom ago 13 14:05:07 2017 < 0,006950>] wlo1: send auth to c6:6e:1f:08:83:cf (try 1/3)
[dom ago 13 14:05:07 2017 < 0,002182>] wlo1: authenticated
[dom ago 13 14:05:07 2017 < 0,005477>] wlo1: associate with c6:6e:1f:08:83:cf (try 1/3)
[dom ago 13 14:05:07 2017 < 0,001717>] wlo1: RX AssocResp from c6:6e:1f:08:83:cf (capab=0x1 status=0 aid=1)
[dom ago 13 14:05:07 2017 < 0,001518>] wlo1: associated
Что я могу сделать, чтобы исправить это?
Я смог решить проблему благодаря комментариям, и я делюсь этим решением в случае, когда somenone сталкивается с той же проблемой, что и я. Интерфейс UEFI между вашим оборудованием и программным обеспечением, который наиболее ответственен за загрузку вашей системы, имеет технологию Secure Boot, которая, в свою очередь, проверяет, подписан ли системный загрузчик с криптографическим ключом, разрешенным базой данных, содержащейся в прошивку. При адекватной проверке подписи в загрузчиках (загрузках) следующего ядра, ядре и, потенциально, пространстве пользователя, можно предотвратить выполнение неподписанного кода. Это помогает с безопасностью вашей системы и затрудняет доступ вредоносного программного обеспечения к вашей системе.
Текущая проблема, возникшая при установке, связана с отсутствием действительного ключа для некоторых модулей программного обеспечения VirtualBox. Если у вас есть эта проблема, есть несколько способов, с помощью которых вы можете справиться с ней, первая из них проста, а последняя немного напряжена:
Отключить SECURE BOOT, как указано Pilot6:В большинстве случаев вы можете войти в настройки UEFI, используя меню grub. Нажмите кнопку ESC при загрузке, войдите в меню grub и выберите «Настройка системы». Безопасная загрузка должна быть в разделе «Безопасность» или «Загрузка» UEFI.
Вы можете напрямую попасть в UEFI, но это зависит от вашего оборудования. Прочтите руководство по работе с компьютером, чтобы узнать, как туда добраться. Это может быть ESC или F2 при загрузке или что-то еще.
Альтернативный способ - отключить Безопасную загрузку с помощью mokutil.
Поскольку Ubuntu kernel build 4.4.0-21.37 это можно исправить, запустив
sudo apt install mokutil
sudo mokutil --disable-validation
Для этого потребуется создать пароль. Пароль должен содержать не менее 8 символов. После перезагрузки UEFI спросит, хотите ли вы изменить параметры безопасности. Выберите «Да».
Затем вам будет предложено ввести ранее созданный пароль. Некоторые прошивки UEFI запрашивают не полный пароль, а вводят некоторые символы, такие как 1-й, 3-й и т. Д. Будьте осторожны. Некоторые люди этого не понимают. Я не получил это с первой попытки: -)
Обновление: теперь этот конфиг ядра включен во всех поддерживаемых ядрах Ubuntu. Ubuntu 16.04, 15.10 и 14.04.
Отключить SECURE BOOT, как указано Pilot6:Начиная с версии ядра 4.4.0-20, это было принудительно что Обновление: модули ядра не будут разрешены для запуска с включенной защищенной загрузкой.
Создать подписиopenssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/"
Подписать модуль (vboxdrv для этот пример) sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)
Зарегистрируйте ключи для безопасной загрузки sudo mokutil --import MOK.der
Поставьте пароль для последующего использования после перезагрузки Reboot и следуйте инструкциям для регистрации MOK (ключ владельца машины). Вот пример с картинками. Система перезагрузится еще раз. После перезагрузки вам также понадобится sudo modprobe vboxdrv загрузить модуль. Пожалуйста, дайте мне знать, будет ли VirtualBox работать таким образом на Ubuntu 16.04 (на ядре 4.4.0-21 или выше, я считаю).
sign Подробная статья веб-сайта для Fedora и Ubuntu о внедрении модуля. (они работали над этим) ;-) И для безопасности, пожалуйста, рассмотрите комментарий @zwets ниже. Чтобы иметь все возможности сети и PCI, вы можете также подписать следующие модули: vboxnetflt, vboxnetadp и vboxpci. Спасибо @shasha_trn за комментарий ниже.
Дополнительный ресурс: я каждый раз создавал сценарий bash для своего собственного использования virtualbox-dkms и, таким образом, перезаписывал подписанные модули. Ознакомьтесь с моей статьей для Fedora .
Я смог решить проблему благодаря комментариям, и я делюсь этим решением в случае, когда somenone сталкивается с той же проблемой, что и я. Интерфейс UEFI между вашим оборудованием и программным обеспечением, который наиболее ответственен за загрузку вашей системы, имеет технологию Secure Boot, которая, в свою очередь, проверяет, подписан ли системный загрузчик с криптографическим ключом, разрешенным базой данных, содержащейся в прошивку. При адекватной проверке подписи в загрузчиках (загрузках) следующего ядра, ядре и, потенциально, пространстве пользователя, можно предотвратить выполнение неподписанного кода. Это помогает с безопасностью вашей системы и затрудняет доступ вредоносного программного обеспечения к вашей системе.
Текущая проблема, возникшая при установке, связана с отсутствием действительного ключа для некоторых модулей программного обеспечения VirtualBox. Если у вас есть эта проблема, есть несколько способов, с помощью которых вы можете справиться с ней, первая из них проста, а последняя немного напряжена:
Отключить SECURE BOOT, как указано Pilot6:В большинстве случаев вы можете войти в настройки UEFI, используя меню grub. Нажмите кнопку ESC при загрузке, войдите в меню grub и выберите «Настройка системы». Безопасная загрузка должна быть в разделе «Безопасность» или «Загрузка» UEFI.
Вы можете напрямую попасть в UEFI, но это зависит от вашего оборудования. Прочтите руководство по работе с компьютером, чтобы узнать, как туда добраться. Это может быть ESC или F2 при загрузке или что-то еще.
Альтернативный способ - отключить Безопасную загрузку с помощью mokutil.
Поскольку Ubuntu kernel build 4.4.0-21.37 это можно исправить, запустив
sudo apt install mokutil
sudo mokutil --disable-validation
Для этого потребуется создать пароль. Пароль должен содержать не менее 8 символов. После перезагрузки UEFI спросит, хотите ли вы изменить параметры безопасности. Выберите «Да».
Затем вам будет предложено ввести ранее созданный пароль. Некоторые прошивки UEFI запрашивают не полный пароль, а вводят некоторые символы, такие как 1-й, 3-й и т. Д. Будьте осторожны. Некоторые люди этого не понимают. Я не получил это с первой попытки: -)
Обновление: теперь этот конфиг ядра включен во всех поддерживаемых ядрах Ubuntu. Ubuntu 16.04, 15.10 и 14.04.
Отключить SECURE BOOT, как указано Pilot6:Начиная с версии ядра 4.4.0-20, это было принудительно что Обновление: модули ядра не будут разрешены для запуска с включенной защищенной загрузкой.
Создать подписиopenssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/"
Подписать модуль (vboxdrv для этот пример) sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)
Зарегистрируйте ключи для безопасной загрузки sudo mokutil --import MOK.der
Поставьте пароль для последующего использования после перезагрузки Reboot и следуйте инструкциям для регистрации MOK (ключ владельца машины). Вот пример с картинками. Система перезагрузится еще раз. После перезагрузки вам также понадобится sudo modprobe vboxdrv загрузить модуль. Пожалуйста, дайте мне знать, будет ли VirtualBox работать таким образом на Ubuntu 16.04 (на ядре 4.4.0-21 или выше, я считаю).
sign Подробная статья веб-сайта для Fedora и Ubuntu о внедрении модуля. (они работали над этим) ;-) И для безопасности, пожалуйста, рассмотрите комментарий @zwets ниже. Чтобы иметь все возможности сети и PCI, вы можете также подписать следующие модули: vboxnetflt, vboxnetadp и vboxpci. Спасибо @shasha_trn за комментарий ниже.
Дополнительный ресурс: я каждый раз создавал сценарий bash для своего собственного использования virtualbox-dkms и, таким образом, перезаписывал подписанные модули. Ознакомьтесь с моей статьей для Fedora .