vboxdrv.sh: failed: не удалось выполнить modprobe vboxdrv. Используйте «dmesg», чтобы узнать, почему

У меня возникают проблемы с запуском VirtualBox на моем ноутбуке Ubuntu. Мой ноутбук двойной загрузки и работает (Windows 10 - я думаю, не использовал его в годах), а также Ubuntu 16.0.4 LTS.

У меня есть безопасная загрузка в настройках BIOS моего ноутбука.

Я знаю, что здесь есть похожие вопросы, в частности эти два:

Неудачная установка Virtualbox 5.1 на Ubuntu 16.04 Установка VirtualBox дает сообщение «modprobe vboxdrv» не удалось

Я выполнил все инструкции, приведенные в разделах ответов по этим двум вопросам, но проблема остается нерешенной.

Вот консольный вывод, когда я пытаюсь запустить виртуальный бокс:

me@YOURBOX:~$ virtualbox WARNING: The vboxdrv kernel module is not loaded. Either there is no module available for the current kernel (4.4.0-47-generic) or it failed to load. Please recompile the kernel module and install it by sudo /sbin/vboxconfig You will not be able to start VMs until this problem is fixed.

вот консольный вывод, когда я запускаю /sbin/vboxconfig, как это было предложено:

me@YOURBOX:~$ sudo /sbin/vboxconfig vboxdrv.sh: Stopping VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules. vboxdrv.sh: Starting VirtualBox services. vboxdrv.sh: Building VirtualBox kernel modules. 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.

Вот хвост выхода dmesg:

[ 44.319682] audit: type=1400 audit(1491313982.374:11): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/bin/evince-previewer" pid=705 comm="apparmor_parser" [ 45.041433] cgroup: new mount options do not match the existing superblock, will be ignored [ 59.682936] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready [ 59.697820] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready [ 59.702008] IPv6: ADDRCONF(NETDEV_UP): enp2s0f0: link is not ready [ 60.267000] IPv6: ADDRCONF(NETDEV_UP): enp2s0f0: link is not ready [ 62.473044] IPv6: ADDRCONF(NETDEV_UP): wlp3s0: link is not ready [ 70.681706] audit_printk_skb: 60 callbacks suppressed [ 70.681709] audit: type=1400 audit(1491314008.734:32): apparmor="STATUS" operation="profile_load" profile="unconfined" name="docker-default" pid=2009 comm="apparmor_parser" [ 70.850936] aufs 4.x-rcN-20160111 [ 75.407218] bridge: automatic filtering via arp/ip/ip6tables has been deprecated. Update your scripts to load br_netfilter if you need this. [ 75.408555] Bridge firewalling registered [ 75.427172] nf_conntrack version 0.5.0 (16384 buckets, 65536 max) [ 75.848416] ip_tables: (C) 2000-2006 Netfilter Core Team [ 76.703232] Initializing XFRM netlink socket [ 77.060003] IPv6: ADDRCONF(NETDEV_UP): docker0: link is not ready [ 80.101042] aufs au_opts_verify:1597:dockerd[1402]: dirperm1 breaks the protection by the permission bits on the lower branch [ 113.895236] wlp3s0: authenticate with 84:16:f9:77:e1:54 [ 113.910483] wlp3s0: send auth to 84:16:f9:77:e1:54 (try 1/3) [ 113.912712] wlp3s0: authenticated [ 113.915101] wlp3s0: associate with 84:16:f9:77:e1:54 (try 1/3) [ 113.919397] wlp3s0: RX AssocResp from 84:16:f9:77:e1:54 (capab=0x1411 status=0 aid=1) [ 113.919516] wlp3s0: associated [ 113.919559] IPv6: ADDRCONF(NETDEV_CHANGE): wlp3s0: link becomes ready

Теперь я не собираюсь лгать - у меня есть . У меня есть безопасная загрузка в настройках BIOS мой ноутбук. , какой dmesg просто извергнут - и насколько я могу судить, в выходном файле журнала нет сообщений об ошибках, что делает ситуацию еще более раздражающей.

Кто-нибудь когда-либо устанавливал VirtualBox 5.x на ноутбуке под управлением Ubuntu 16. 0,4 LTS - но с защитой загрузки в BIOS? - если да, то каково решение. ???!

У многих людей эта проблема - даже на несколько лет назад. очень странно, что у кого-то нет решения для этого - ???

29
задан 13 April 2017 в 15:23

16 ответов

VirtualBox + Secure Boot + Ubuntu = fail Проблема заключается в том, что все модули ядра должны быть подписаны ключом, которым доверяет система UEFI, иначе загрузка не удастся. Ubuntu не подписывает сторонние модули vbox * ядра, а дает пользователю возможность отключить Безопасную загрузку после установки пакета виртуальных боксов. Я мог бы это сделать, но тогда я буду видеть раздражающее сообщение «Загрузка в небезопасном режиме» при каждом запуске машины, а также установка с двойной загрузкой Windows 10, которую я не буду использовать. Ubuntu 16.04 на Dell Latitude E7440 с BIOS A18 и с двойной загрузкой Windows 10. Кредит относится к основному источнику информации, которую я использовал для решения этой проблемы, которая относится конкретно к Fedora / Redhat: http://gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update/. Задайте вопрос Ubuntu: Не удалось загрузить «vboxdrv» после обновления до Ubuntu 16.04 (и я хочу сохранить безопасную загрузку). Шаги, чтобы заставить его работать, в частности, для Ubuntu / Debian. Установите пакет виртуальных боксов. Если установка обнаруживает, что включена безопасная загрузка, вам будет предоставлена ​​проблема и предоставляется возможность отключить безопасную загрузку. Выберите «Нет». Создайте персональную открытую / приватную пару ключей RSA, которая будет использоваться для подписи модулей ядра. Я решил использовать учетную запись root и каталог / root / module-signature / для хранения всех вещей, связанных с подписью модулей ядра.
$ sudo -i
# mkdir /root/module-signing
# cd /root/module-signing
# openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=YOUR_NAME/"
[...]
# chmod 600 MOK.priv
Используйте утилиту MOK («Ключ владельца машины») для импорта открытого ключа, чтобы система могла доверять ей. Это двухэтапный процесс, когда ключ сначала импортируется, а затем должен быть зарегистрирован, когда машина загружается в следующий раз. Простой пароль достаточно хорош, так как он предназначен только для временного использования.
# mokutil --import /root/module-signing/MOK.der
input password:
input password again:
Перезагрузите компьютер. Когда запускается загрузчик, утилита MOK manager EFI должна автоматически запускаться. Он запросит части пароля, указанные на шаге 3. Выберите «Записаться MOK», затем вы увидите ключ, импортированный на шаге 3. Завершите шаги регистрации, а затем продолжите загрузку. Ядро Linux будет регистрировать загружаемые ключи, и вы сможете увидеть свой собственный ключ с помощью команды: dmesg|grep 'EFI: Loaded cert' Используя утилиту подписи, поставляемую с файлами сборки ядра, подпишите все модули VirtualBox, используя закрытый ключ MOK на шаге 2. Я помещаю это в маленький скрипт /root/module-signing/sign-vbox-modules, поэтому его можно легко запустить, когда новые ядра установлены как часть регулярных обновлений:
#!/bin/bash

for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
  echo "Signing $modfile"
  /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \
                                /root/module-signing/MOK.priv \
                                /root/module-signing/MOK.der "$modfile"
done
И затем:
# chmod 700 /root/module-signing/sign-vbox-modules
Запустите скрипт с шага 5 с правами root. Вам нужно будет запустить скрипт подписи каждый раз, когда будет установлено новое обновление ядра, поскольку это приведет к перестройке сторонних модулей VirtualBox. Используйте сценарий только после загрузки нового ядра, поскольку он полагается на modinfo -n и uname -r, чтобы указать, для какой версии ядра нужно подписать. Загрузите модуль vboxdrv и запустите VirtualBox:
# modprobe vboxdrv
. Эта процедура также может использоваться для подписи других модулей ядра третьей стороны, таких как графические драйверы nvidia, если это необходимо. (Я не проверял это сам.)

Примечание: вышеупомянутый ответ был полностью получен из сообщения блога Ойвинда Стегарда, VirtualBox + Secure Boot + Ubuntu = fail.

25
ответ дан 22 May 2018 в 23:59
  • 1
    Я получаю сообщение об ошибке: vboxdrv.sh: failed: modprobe vboxnetflt failed. Please use 'dmesg' to find out why. dmesg: [70567.246789] vboxdrv: Found 2 processor cores [70567.267310] vboxdrv: TSC mode is Invariant, tentative frequency 2166734189 Hz [70567.267315] vboxdrv: Successfully loaded version 5.0.40_Ubuntu (interface 0x00240000) – marshy101 21 July 2017 в 16:45
  • 2
    Отличный ответ и спасибо за скрипт! Я хотел бы добавить, что если vagrant up все еще не работает на VboxManage hostonlyif create , тогда его можно устранить, удалив оба vagrant и virtualbox, а затем переустановив. Предполагая, что вы уже подписали ключи. Ура! – Anthony Harley 28 September 2017 в 21:10
  • 3
    Убунту 17 исправил это, или он никогда не будет исправлен по идеологическим причинам? – Dan Dascalescu 11 December 2017 в 05:44
VirtualBox + Secure Boot + Ubuntu = fail Проблема заключается в том, что все модули ядра должны быть подписаны ключом, которым доверяет система UEFI, иначе загрузка не удастся. Ubuntu не подписывает сторонние модули vbox * ядра, а дает пользователю возможность отключить Безопасную загрузку после установки пакета виртуальных боксов. Я мог бы это сделать, но тогда я буду видеть раздражающее сообщение «Загрузка в небезопасном режиме» при каждом запуске машины, а также установка с двойной загрузкой Windows 10, которую я не буду использовать. Ubuntu 16.04 на Dell Latitude E7440 с BIOS A18 и с двойной загрузкой Windows 10. Кредит относится к основному источнику информации, которую я использовал для решения этой проблемы, которая относится конкретно к Fedora / Redhat: http://gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update/. Задайте вопрос Ubuntu: Не удалось загрузить «vboxdrv» после обновления до Ubuntu 16.04 (и я хочу сохранить безопасную загрузку). Шаги, чтобы заставить его работать, в частности, для Ubuntu / Debian. Установите пакет виртуальных боксов. Если установка обнаруживает, что включена безопасная загрузка, вам будет предоставлена ​​проблема и предоставляется возможность отключить безопасную загрузку. Выберите «Нет». Создайте персональную открытую / приватную пару ключей RSA, которая будет использоваться для подписи модулей ядра. Я решил использовать учетную запись root и каталог / root / module-signature / для хранения всех вещей, связанных с подписью модулей ядра. $ sudo -i # mkdir /root/module-signing # cd /root/module-signing # openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=YOUR_NAME/" [...] # chmod 600 MOK.priv Используйте утилиту MOK («Ключ владельца машины») для импорта открытого ключа, чтобы система могла доверять ей. Это двухэтапный процесс, когда ключ сначала импортируется, а затем должен быть зарегистрирован, когда машина загружается в следующий раз. Простой пароль достаточно хорош, так как он предназначен только для временного использования. # mokutil --import /root/module-signing/MOK.der input password: input password again: Перезагрузите компьютер. Когда запускается загрузчик, утилита MOK manager EFI должна автоматически запускаться. Он запросит части пароля, указанные на шаге 3. Выберите «Записаться MOK», затем вы увидите ключ, импортированный на шаге 3. Завершите шаги регистрации, а затем продолжите загрузку. Ядро Linux будет регистрировать загружаемые ключи, и вы сможете увидеть свой собственный ключ с помощью команды: dmesg|grep 'EFI: Loaded cert' Используя утилиту подписи, поставляемую с файлами сборки ядра, подпишите все модули VirtualBox, используя закрытый ключ MOK на шаге 2. Я помещаю это в маленький скрипт /root/module-signing/sign-vbox-modules, поэтому его можно легко запустить, когда новые ядра установлены как часть регулярных обновлений: #!/bin/bash for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do echo "Signing $modfile" /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \ /root/module-signing/MOK.priv \ /root/module-signing/MOK.der "$modfile" done И затем: # chmod 700 /root/module-signing/sign-vbox-modules Запустите скрипт с шага 5 с правами root. Вам нужно будет запустить скрипт подписи каждый раз, когда будет установлено новое обновление ядра, поскольку это приведет к перестройке сторонних модулей VirtualBox. Используйте сценарий только после загрузки нового ядра, поскольку он полагается на modinfo -n и uname -r, чтобы указать, для какой версии ядра нужно подписать. Загрузите модуль vboxdrv и запустите VirtualBox: # modprobe vboxdrv . Эта процедура также может использоваться для подписи других модулей ядра третьей стороны, таких как графические драйверы nvidia, если это необходимо. (Я не проверял это сам.)

Примечание: вышеупомянутый ответ был полностью получен из сообщения блога Ойвинда Стегарда, VirtualBox + Secure Boot + Ubuntu = fail.

27
ответ дан 18 July 2018 в 15:33
VirtualBox + Secure Boot + Ubuntu = fail Проблема заключается в том, что все модули ядра должны быть подписаны ключом, которым доверяет система UEFI, иначе загрузка не удастся. Ubuntu не подписывает сторонние модули vbox * ядра, а дает пользователю возможность отключить Безопасную загрузку после установки пакета виртуальных боксов. Я мог бы это сделать, но тогда я буду видеть раздражающее сообщение «Загрузка в небезопасном режиме» при каждом запуске машины, а также установка с двойной загрузкой Windows 10, которую я не буду использовать. Ubuntu 16.04 на Dell Latitude E7440 с BIOS A18 и с двойной загрузкой Windows 10. Кредит относится к основному источнику информации, которую я использовал для решения этой проблемы, которая относится конкретно к Fedora / Redhat: http://gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update/. Задайте вопрос Ubuntu: Не удалось загрузить «vboxdrv» после обновления до Ubuntu 16.04 (и я хочу сохранить безопасную загрузку). Шаги, чтобы заставить его работать, в частности, для Ubuntu / Debian. Установите пакет виртуальных боксов. Если установка обнаруживает, что включена безопасная загрузка, вам будет предоставлена ​​проблема и предоставляется возможность отключить безопасную загрузку. Выберите «Нет». Создайте персональную открытую / приватную пару ключей RSA, которая будет использоваться для подписи модулей ядра. Я решил использовать учетную запись root и каталог / root / module-signature / для хранения всех вещей, связанных с подписью модулей ядра. $ sudo -i # mkdir /root/module-signing # cd /root/module-signing # openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=YOUR_NAME/" [...] # chmod 600 MOK.priv Используйте утилиту MOK («Ключ владельца машины») для импорта открытого ключа, чтобы система могла доверять ей. Это двухэтапный процесс, когда ключ сначала импортируется, а затем должен быть зарегистрирован, когда машина загружается в следующий раз. Простой пароль достаточно хорош, так как он предназначен только для временного использования. # mokutil --import /root/module-signing/MOK.der input password: input password again: Перезагрузите компьютер. Когда запускается загрузчик, утилита MOK manager EFI должна автоматически запускаться. Он запросит части пароля, указанные на шаге 3. Выберите «Записаться MOK», затем вы увидите ключ, импортированный на шаге 3. Завершите шаги регистрации, а затем продолжите загрузку. Ядро Linux будет регистрировать загружаемые ключи, и вы сможете увидеть свой собственный ключ с помощью команды: dmesg|grep 'EFI: Loaded cert' Используя утилиту подписи, поставляемую с файлами сборки ядра, подпишите все модули VirtualBox, используя закрытый ключ MOK на шаге 2. Я помещаю это в маленький скрипт /root/module-signing/sign-vbox-modules, поэтому его можно легко запустить, когда новые ядра установлены как часть регулярных обновлений: #!/bin/bash for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do echo "Signing $modfile" /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \ /root/module-signing/MOK.priv \ /root/module-signing/MOK.der "$modfile" done И затем: # chmod 700 /root/module-signing/sign-vbox-modules Запустите скрипт с шага 5 с правами root. Вам нужно будет запустить скрипт подписи каждый раз, когда будет установлено новое обновление ядра, поскольку это приведет к перестройке сторонних модулей VirtualBox. Используйте сценарий только после загрузки нового ядра, поскольку он полагается на modinfo -n и uname -r, чтобы указать, для какой версии ядра нужно подписать. Загрузите модуль vboxdrv и запустите VirtualBox: # modprobe vboxdrv . Эта процедура также может использоваться для подписи других модулей ядра третьей стороны, таких как графические драйверы nvidia, если это необходимо. (Я не проверял это сам.)

Примечание: вышеупомянутый ответ был полностью получен из сообщения блога Ойвинда Стегарда, VirtualBox + Secure Boot + Ubuntu = fail.

28
ответ дан 24 July 2018 в 20:40
VirtualBox + Secure Boot + Ubuntu = fail Проблема заключается в том, что все модули ядра должны быть подписаны ключом, которым доверяет система UEFI, иначе загрузка не удастся. Ubuntu не подписывает сторонние модули vbox * ядра, а дает пользователю возможность отключить Безопасную загрузку после установки пакета виртуальных боксов. Я мог бы это сделать, но тогда я буду видеть раздражающее сообщение «Загрузка в небезопасном режиме» при каждом запуске машины, а также установка с двойной загрузкой Windows 10, которую я не буду использовать. Ubuntu 16.04 на Dell Latitude E7440 с BIOS A18 и с двойной загрузкой Windows 10. Кредит относится к основному источнику информации, которую я использовал для решения этой проблемы, которая относится конкретно к Fedora / Redhat: http://gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update/. Задайте вопрос Ubuntu: Не удалось загрузить «vboxdrv» после обновления до Ubuntu 16.04 (и я хочу сохранить безопасную загрузку). Шаги, чтобы заставить его работать, в частности, для Ubuntu / Debian. Установите пакет виртуальных боксов. Если установка обнаруживает, что включена безопасная загрузка, вам будет предоставлена ​​проблема и предоставляется возможность отключить безопасную загрузку. Выберите «Нет». Создайте персональную открытую / приватную пару ключей RSA, которая будет использоваться для подписи модулей ядра. Я решил использовать учетную запись root и каталог / root / module-signature / для хранения всех вещей, связанных с подписью модулей ядра. $ sudo -i # mkdir /root/module-signing # cd /root/module-signing # openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=YOUR_NAME/" [...] # chmod 600 MOK.priv Используйте утилиту MOK («Ключ владельца машины») для импорта открытого ключа, чтобы система могла доверять ей. Это двухэтапный процесс, когда ключ сначала импортируется, а затем должен быть зарегистрирован, когда машина загружается в следующий раз. Простой пароль достаточно хорош, так как он предназначен только для временного использования. # mokutil --import /root/module-signing/MOK.der input password: input password again: Перезагрузите компьютер. Когда запускается загрузчик, утилита MOK manager EFI должна автоматически запускаться. Он запросит части пароля, указанные на шаге 3. Выберите «Записаться MOK», затем вы увидите ключ, импортированный на шаге 3. Завершите шаги регистрации, а затем продолжите загрузку. Ядро Linux будет регистрировать загружаемые ключи, и вы сможете увидеть свой собственный ключ с помощью команды: dmesg|grep 'EFI: Loaded cert' Используя утилиту подписи, поставляемую с файлами сборки ядра, подпишите все модули VirtualBox, используя закрытый ключ MOK на шаге 2. Я помещаю это в маленький скрипт /root/module-signing/sign-vbox-modules, поэтому его можно легко запустить, когда новые ядра установлены как часть регулярных обновлений: #!/bin/bash for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do echo "Signing $modfile" /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \ /root/module-signing/MOK.priv \ /root/module-signing/MOK.der "$modfile" done И затем: # chmod 700 /root/module-signing/sign-vbox-modules Запустите скрипт с шага 5 с правами root. Вам нужно будет запустить скрипт подписи каждый раз, когда будет установлено новое обновление ядра, поскольку это приведет к перестройке сторонних модулей VirtualBox. Используйте сценарий только после загрузки нового ядра, поскольку он полагается на modinfo -n и uname -r, чтобы указать, для какой версии ядра нужно подписать. Загрузите модуль vboxdrv и запустите VirtualBox: # modprobe vboxdrv . Эта процедура также может использоваться для подписи других модулей ядра третьей стороны, таких как графические драйверы nvidia, если это необходимо. (Я не проверял это сам.)

Примечание: вышеупомянутый ответ был полностью получен из сообщения блога Ойвинда Стегарда, VirtualBox + Secure Boot + Ubuntu = fail.

28
ответ дан 31 July 2018 в 10:32
VirtualBox + Secure Boot + Ubuntu = fail Проблема заключается в том, что все модули ядра должны быть подписаны ключом, которым доверяет система UEFI, иначе загрузка не удастся. Ubuntu не подписывает сторонние модули vbox * ядра, а дает пользователю возможность отключить Безопасную загрузку после установки пакета виртуальных боксов. Я мог бы это сделать, но тогда я буду видеть раздражающее сообщение «Загрузка в небезопасном режиме» при каждом запуске машины, а также установка с двойной загрузкой Windows 10, которую я не буду использовать. Ubuntu 16.04 на Dell Latitude E7440 с BIOS A18 и с двойной загрузкой Windows 10. Кредит относится к основному источнику информации, которую я использовал для решения этой проблемы, которая относится конкретно к Fedora / Redhat: http://gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update/. Задайте вопрос Ubuntu: Не удалось загрузить «vboxdrv» после обновления до Ubuntu 16.04 (и я хочу сохранить безопасную загрузку). Шаги, чтобы заставить его работать, в частности, для Ubuntu / Debian. Установите пакет виртуальных боксов. Если установка обнаруживает, что включена безопасная загрузка, вам будет предоставлена ​​проблема и предоставляется возможность отключить безопасную загрузку. Выберите «Нет». Создайте персональную открытую / приватную пару ключей RSA, которая будет использоваться для подписи модулей ядра. Я решил использовать учетную запись root и каталог / root / module-signature / для хранения всех вещей, связанных с подписью модулей ядра. $ sudo -i # mkdir /root/module-signing # cd /root/module-signing # openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=YOUR_NAME/" [...] # chmod 600 MOK.priv Используйте утилиту MOK («Ключ владельца машины») для импорта открытого ключа, чтобы система могла доверять ей. Это двухэтапный процесс, когда ключ сначала импортируется, а затем должен быть зарегистрирован, когда машина загружается в следующий раз. Простой пароль достаточно хорош, так как он предназначен только для временного использования. # mokutil --import /root/module-signing/MOK.der input password: input password again: Перезагрузите компьютер. Когда запускается загрузчик, утилита MOK manager EFI должна автоматически запускаться. Он запросит части пароля, указанные на шаге 3. Выберите «Записаться MOK», затем вы увидите ключ, импортированный на шаге 3. Завершите шаги регистрации, а затем продолжите загрузку. Ядро Linux будет регистрировать загружаемые ключи, и вы сможете увидеть свой собственный ключ с помощью команды: dmesg|grep 'EFI: Loaded cert' Используя утилиту подписи, поставляемую с файлами сборки ядра, подпишите все модули VirtualBox, используя закрытый ключ MOK на шаге 2. Я помещаю это в маленький скрипт /root/module-signing/sign-vbox-modules, поэтому его можно легко запустить, когда новые ядра установлены как часть регулярных обновлений: #!/bin/bash for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do echo "Signing $modfile" /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \ /root/module-signing/MOK.priv \ /root/module-signing/MOK.der "$modfile" done И затем: # chmod 700 /root/module-signing/sign-vbox-modules Запустите скрипт с шага 5 с правами root. Вам нужно будет запустить скрипт подписи каждый раз, когда будет установлено новое обновление ядра, поскольку это приведет к перестройке сторонних модулей VirtualBox. Используйте сценарий только после загрузки нового ядра, поскольку он полагается на modinfo -n и uname -r, чтобы указать, для какой версии ядра нужно подписать. Загрузите модуль vboxdrv и запустите VirtualBox: # modprobe vboxdrv . Эта процедура также может использоваться для подписи других модулей ядра третьей стороны, таких как графические драйверы nvidia, если это необходимо. (Я не проверял это сам.)

Примечание: вышеупомянутый ответ был полностью получен из сообщения блога Ойвинда Стегарда, VirtualBox + Secure Boot + Ubuntu = fail.

28
ответ дан 31 July 2018 в 11:34
VirtualBox + Secure Boot + Ubuntu = fail Проблема заключается в том, что все модули ядра должны быть подписаны ключом, которым доверяет система UEFI, иначе загрузка не удастся. Ubuntu не подписывает сторонние модули vbox * ядра, а дает пользователю возможность отключить Безопасную загрузку после установки пакета виртуальных боксов. Я мог бы это сделать, но тогда я буду видеть раздражающее сообщение «Загрузка в небезопасном режиме» при каждом запуске машины, а также установка с двойной загрузкой Windows 10, которую я не буду использовать. Ubuntu 16.04 на Dell Latitude E7440 с BIOS A18 и с двойной загрузкой Windows 10. Кредит относится к основному источнику информации, которую я использовал для решения этой проблемы, которая относится конкретно к Fedora / Redhat: http://gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update/. Задайте вопрос Ubuntu: Не удалось загрузить «vboxdrv» после обновления до Ubuntu 16.04 (и я хочу сохранить безопасную загрузку). Шаги, чтобы заставить его работать, в частности, для Ubuntu / Debian. Установите пакет виртуальных боксов. Если установка обнаруживает, что включена безопасная загрузка, вам будет предоставлена ​​проблема и предоставляется возможность отключить безопасную загрузку. Выберите «Нет». Создайте персональную открытую / приватную пару ключей RSA, которая будет использоваться для подписи модулей ядра. Я решил использовать учетную запись root и каталог / root / module-signature / для хранения всех вещей, связанных с подписью модулей ядра. $ sudo -i # mkdir /root/module-signing # cd /root/module-signing # openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=YOUR_NAME/" [...] # chmod 600 MOK.priv Используйте утилиту MOK («Ключ владельца машины») для импорта открытого ключа, чтобы система могла доверять ей. Это двухэтапный процесс, когда ключ сначала импортируется, а затем должен быть зарегистрирован, когда машина загружается в следующий раз. Простой пароль достаточно хорош, так как он предназначен только для временного использования. # mokutil --import /root/module-signing/MOK.der input password: input password again: Перезагрузите компьютер. Когда запускается загрузчик, утилита MOK manager EFI должна автоматически запускаться. Он запросит части пароля, указанные на шаге 3. Выберите «Записаться MOK», затем вы увидите ключ, импортированный на шаге 3. Завершите шаги регистрации, а затем продолжите загрузку. Ядро Linux будет регистрировать загружаемые ключи, и вы сможете увидеть свой собственный ключ с помощью команды: dmesg|grep 'EFI: Loaded cert' Используя утилиту подписи, поставляемую с файлами сборки ядра, подпишите все модули VirtualBox, используя закрытый ключ MOK на шаге 2. Я помещаю это в маленький скрипт /root/module-signing/sign-vbox-modules, поэтому его можно легко запустить, когда новые ядра установлены как часть регулярных обновлений: #!/bin/bash for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do echo "Signing $modfile" /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \ /root/module-signing/MOK.priv \ /root/module-signing/MOK.der "$modfile" done И затем: # chmod 700 /root/module-signing/sign-vbox-modules Запустите скрипт с шага 5 с правами root. Вам нужно будет запустить скрипт подписи каждый раз, когда будет установлено новое обновление ядра, поскольку это приведет к перестройке сторонних модулей VirtualBox. Используйте сценарий только после загрузки нового ядра, поскольку он полагается на modinfo -n и uname -r, чтобы указать, для какой версии ядра нужно подписать. Загрузите модуль vboxdrv и запустите VirtualBox: # modprobe vboxdrv . Эта процедура также может использоваться для подписи других модулей ядра третьей стороны, таких как графические драйверы nvidia, если это необходимо. (Я не проверял это сам.)

Примечание: вышеупомянутый ответ был полностью получен из сообщения блога Ойвинда Стегарда, VirtualBox + Secure Boot + Ubuntu = fail.

28
ответ дан 31 July 2018 в 23:41

VirtualBox + Secure Boot + Ubuntu = fail

Проблема заключается в том, что все модули ядра должны быть подписаны ключом, которым доверяет система UEFI, иначе загрузка не удастся. Ubuntu не подписывает сторонние модули vbox * ядра, а дает пользователю возможность отключить Безопасную загрузку после установки пакета виртуальных боксов. Я мог бы это сделать, но тогда я буду видеть раздражающее сообщение «Загрузка в небезопасном режиме» каждый раз, когда запускается машина, а также установка с двойной загрузкой Windows 10, которую я не буду работать.

Ubuntu 16.04 на Dell Latitude E7440 с BIOS A18 и с двойной загрузкой Windows 10.

Кредит относится к основному источнику информации, который я использовал для решения этой проблемы, которая относится конкретно к Fedora / Redhat: http://gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update/

И соответствующий вопрос Ask Ubuntu: Не удалось загрузить 'vboxdrv' после обновления до Ubuntu 16.04 (и я хочу сохранить безопасную загрузку)

Шаги, чтобы заставить его работать, в частности, для Ubuntu / Debian

  1. Установите пакет виртуальных боксов. Если установка обнаруживает, что включена безопасная загрузка, вам будет предоставлена ​​проблема и предоставляется возможность отключить безопасную загрузку. Выберите «Нет».
  2. Создайте персональную общедоступную / приватную пару ключей RSA, которая будет использоваться для подписи модулей ядра. Я решил использовать учетную запись root и каталог / root / module-signature / для хранения всех вещей, связанных с подписью модулей ядра.
    $ sudo -i
    # mkdir /root/module-signing
    # cd /root/module-signing
    # openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=YOUR_NAME/"
    [...]
    # chmod 600 MOK.priv
    
  3. Используйте утилиту MOK («Ключ владельца машины») для импорта открытого ключа, чтобы система могла доверять ей. Это двухэтапный процесс, когда ключ сначала импортируется, а затем должен быть зарегистрирован, когда машина загружается в следующий раз. Простой пароль достаточно хорош, так как он предназначен только для временного использования.
    # mokutil --import /root/module-signing/MOK.der
    input password:
    input password again:
    
  4. Перезагрузите компьютер. Когда запускается загрузчик, утилита MOK manager EFI должна автоматически запускаться. Он запросит части пароля, указанные на шаге 3. Выберите «Записаться MOK», затем вы увидите ключ, импортированный на шаге 3. Завершите шаги регистрации, а затем продолжите загрузку. Ядро Linux будет регистрировать загружаемые ключи, и вы сможете увидеть свой собственный ключ с помощью команды: dmesg|grep 'EFI: Loaded cert'
  5. Используя утилиту подписи, поставляемую с файлами сборки ядра, подпишите все VirtualBox модули с использованием частного ключа MOK, сгенерированного на шаге 2. Я помещал это в маленький скрипт /root/module-signing/sign-vbox-modules, поэтому его можно легко запустить, когда новые ядра установлены как часть регулярных обновлений:
    #!/bin/bash
    
    for modfile in $(dirname $(modinfo -n vboxdrv))/*.ko; do
      echo "Signing $modfile"
      /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \
                                    /root/module-signing/MOK.priv \
                                    /root/module-signing/MOK.der "$modfile"
    done
    
    И затем:
    # chmod 700 /root/module-signing/sign-vbox-modules
    
  6. Запустите сценарий с шага 5 с правами root. Вам нужно будет запустить скрипт подписи каждый раз, когда будет установлено новое обновление ядра, поскольку это приведет к перестройке сторонних модулей VirtualBox. Используйте сценарий только после загрузки нового ядра, поскольку он полагается на modinfo -n и uname -r, чтобы указать, какую версию ядра следует подписать.
  7. Загрузите модуль vboxdrv и запустите VirtualBox:
    # modprobe vboxdrv
    

Эта процедура также может использоваться для подписи других модулей ядра третьей стороны, таких как графические драйверы nvidia, если это необходимо. (Я не проверял это сам.)

Примечание: вышеприведенный ответ был полностью получен из сообщения блога Ойвинда Стегарда, VirtualBox + Secure Boot + Ubuntu = fail .

29
ответ дан 2 August 2018 в 18:38

Ответ на этот вопрос, вероятно, работает нормально, но если вам нужно более простое время для него:

Я смог решить его с помощью

загрузки в BIOS и перехода> расширенного ( f7)> boot> прокрутите вниз до "secure boot"> измените режим Windows EUFI на "другие ОС"

Теперь мой виртуальный бокс работает отлично.

3
ответ дан 22 May 2018 в 23:59

Ответ на этот вопрос, вероятно, работает нормально, но если вам нужно более простое время для него:

Я смог решить его с помощью

загрузки в BIOS и перехода> расширенного ( f7)> boot> прокрутите вниз до "secure boot"> измените режим Windows EUFI на "другие ОС"

Теперь мой виртуальный бокс работает отлично.

5
ответ дан 18 July 2018 в 15:33

Ответ на этот вопрос, вероятно, работает нормально, но если вам нужно более простое время для него:

Я смог решить его с помощью

загрузки в BIOS и перехода> расширенного ( f7)> boot> прокрутите вниз до "secure boot"> измените режим Windows EUFI на "другие ОС"

Теперь мой виртуальный бокс работает отлично.

5
ответ дан 24 July 2018 в 20:40

Ответ на этот вопрос, вероятно, работает нормально, но если вам нужно более простое время для него:

Я смог решить его с помощью

загрузки в BIOS и перехода> расширенного ( f7)> boot> прокрутите вниз до "secure boot"> измените режим Windows EUFI на "другие ОС"

Теперь мой виртуальный бокс работает отлично.

5
ответ дан 31 July 2018 в 10:32

Ответ на этот вопрос, вероятно, работает нормально, но если вам нужно более простое время для него:

Я смог решить его с помощью

загрузки в BIOS и перехода> расширенного ( f7)> boot> прокрутите вниз до "secure boot"> измените режим Windows EUFI на "другие ОС"

Теперь мой виртуальный бокс работает отлично.

5
ответ дан 31 July 2018 в 11:34

Ответ на этот вопрос, вероятно, работает нормально, но если вам нужно более простое время для него:

Я смог решить его с помощью

загрузки в BIOS и перехода> расширенного ( f7)> boot> прокрутите вниз до "secure boot"> измените режим Windows EUFI на "другие ОС"

Теперь мой виртуальный бокс работает отлично.

5
ответ дан 31 July 2018 в 23:41

Ответ на этот вопрос, вероятно, работает нормально, но если вам требуется более легкое время для него:

Я смог решить его с помощью

загрузки в BIOS и перехода> расширенного ( f7)> boot> прокрутите вниз до "secure boot"> измените «режим Windows EUFI» на «другие ОС»

Теперь мой виртуальный бокс работает отлично.

5
ответ дан 3 August 2018 в 20:57

Ответ на этот вопрос, вероятно, работает нормально, но если вам требуется более легкое время для него:

Я смог решить его с помощью

загрузки в BIOS и перехода> расширенного ( f7)> boot> прокрутите вниз до "secure boot"> измените «режим Windows EUFI» на «другие ОС»

Теперь мой виртуальный бокс работает отлично.

6
ответ дан 9 August 2018 в 03:08

Ответ на этот вопрос, вероятно, работает нормально, но если вам требуется более легкое время для него:

Я смог решить его с помощью

загрузки в BIOS и перехода> расширенного ( f7)> boot> прокрутите вниз до "secure boot"> измените «режим Windows EUFI» на «другие ОС»

Теперь мой виртуальный бокс работает отлично.

6
ответ дан 14 August 2018 в 21:27

Другие вопросы по тегам:

Похожие вопросы: