Опитвам се да инсталирам VirtualBox на Ubuntu 16.04, като същевременно запазвам Secure Boot. Когато го инсталирах, макар и Synaptic, бях помолен да премахна SecureBoot, казах Не .

Следвах тези инструкции: Не можах да заредя 'vboxdrv' след надстройка до Ubuntu 16.04 (и искам да запазя сигурно зареждане) и https://stegard.net/2016/10/virtualbox-secure-boot-ubuntu-fail/ И двете са почти същото (оставих MOK файловете в/root директорията, както във втората връзка). Изглежда, че всичко работи добре, рестартирах се, сложих паролата си отново, рестартирах се. Всичко е наред

Но тогава, когато се опитвам да използвам VirtualBox, пак няма да работи. Ако го стартирам от терминал, получавам:

Но тези два пакета вече са инсталирани и актуални.

В един от коментарите в горния отговор на другата публикация се казва да преинсталирате virtualbox-dkms, преди да следвате тези инструкции. Опитах, и същия резултат.

Опитах отговора тук: Проблем с инсталацията на VirtualBox, което отново ме подтиква да попитам дали искам да деактивирам Secure Boot, на което казвам „Не“ и да се върна на квадрат.

Ако стартирам modprobe, получавам: modprobe: ГРЕШКА: не може да се вмъкне „vboxdrv“: Задължителният ключ не е наличен

Всяка идея за това как да накарате VirtualBox да работи с активиран SecureBoot (моля, въздържайте се да ми казвате да го премахна.)?

uefi

2 отговора 2

Не съм опитвал нито една от тези процедури. Правя обаче това по различен начин - но това е много досаден метод. Това описание ще го направи по-лесно от това, защото се позовавам на голяма страница, която съм написал, която обхваща най-лошата от досадни части. Моята процедура е:

За удобство съм написал скрипт, за да извърша стъпки # 2 и # 3 с една команда. Наричам го sign-vbox. Ето го:

За да използвате този скрипт, просто напишете името му. Той подписва модулите VirtualBox, свързани с текущото ядро. Ако му предадете номер на версия на ядрото, той трябва да подпише ядрата, свързани с тази версия на ядрото, но няма място за грешка при посочването на номера на версията на ядрото. (Той очаква същия формат, който uname -r би се върнал, ако ядрото работи.)

Имайте предвид, че скриптът очаква да намери частни (refind_local.key) и публични (refind_local.cer) ключове в /etc/refind.d/keys/. Ще трябва да промените това местоположение за вашата собствена система, освен ако не използвате rEFInd и не използвате локални ключове за него. Файлът с частния ключ трябва да бъде толкова сигурен, колкото можете да го направите, например да има разрешения 0400 (-r --------). Ограничаването на достъпа до самата директория също може да бъде полезно. Още по-добре, поставете го на USB флаш устройство, което включвате само когато изпълните тази команда.

Също така написах този скрипт за моя лична употреба. Вероятно има грешки, особено ако се използва по начин, който не очаквам. Разбира се, той се проваля доста зле, ако необходимите изходни файлове на ядрото не са инсталирани.

Възможно е този скрипт да работи с методите, базирани на MOK, които сте се опитали да използвате, ако сте го насочили към ключовите файлове, които сте генерирали, публичният файл, който сте заредили в MOK. Не мога да обещая това обаче и разбира се вашите проблеми може да се дължат или на неправилно подписани модули на ядрото, или на проблеми в края на Shim/MOK. Използването на този скрипт би помогнало само ако модулите на ядрото ви не са били правилно подписани.