Ubuntu 16.04'e yükseltildikten sonra 'vboxdrv' yüklenemedi (ve güvenli önyükleme yapmak istiyorum)

102

Ubuntu 15.10'dan 16.04'e yükseltiyorum ve o zamandan beri VirtualBox 5.0.18 artık VM'leri başlatmıyor. 'Vboxdrv' yüklenmediğinden şikayet ediyor. Bu yüzden yüklemeyi ve aşağıdaki hatayı almayı deniyorum:

$ sudo modprobe vboxdrv
modprobe: ERROR: could not insert 'vboxdrv': Required key not available

Kullanmakta olduğum ve kullanmaya devam etmek istediğim güvenli botla ilgili olduğuna inanıyorum. Aslında Ubuntu 15.10 güvenli açılış ve VirtualBox ile gayet iyi çalışıyorlardı.

Ayrıca, çekirdek modülünü başarıyla oluşturan $ sudo apt-get --reinstall install virtualbox-dkms dosyasını denedim, ancak bu sorunu çözmedi.

Güvenli önyüklemeyi etkin tutarken vboxdrv'nin nasıl yükleneceği hakkında herhangi bir fikriniz var mı?

2 Güncellemesi : Ayrıca sudo mokutil --disable-validation dosyasını çalıştırmayı denedim. Bu komutu yürütürken, bir sonraki önyükleme sırasında güvenli önyüklemeyi devre dışı bırakmam istenir, bir anahtar veya karma diskten disk eklenir. Güvenli önyüklemeyi devre dışı bırakmak istemediğimden, bunun benim sorunumu da çözmediği anlaşılıyor. Ayrıca UEFI'yi paralel bir Windows kurulumu için aktif tutmak istiyorum.

Not : Güvenli önyüklemeyi devre dışı bırakmayı düşünmüyorsanız, bkz. / p>     

sordu jans 22.04.2016 18:10

6 cevap

141

Çekirdek sürümü 4.4.0-20'den beri, imzasız çekirdek modüllerinin Güvenli Önyükleme etkinken çalıştırılmasına izin verilmeyecek şekilde zorlandı. Güvenli Önyüklemeyi korumak istediğinizden, bir sonraki mantıksal adım bu modülleri imzalamak .

O zaman deneyelim.

  1. İmza anahtarları oluşturun

    openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive common name/"
    

    Seçenek : ek güvenlik için, parola soracak olan -node anahtarını atlayın. Daha sonra bir sonraki adıma geçmeden önce, export KBUILD_SIGN_PIN='yourpassword'

    yazdığınızdan emin olun.
  2. Modülü imzalayın (bu örnek için vboxdrv, ancak tam işlevler için ls $(dirname $(modinfo -n vboxdrv))/vbox*.ko) dizinindeki diğer modüller için tekrarlayın)

    sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vboxdrv)
    
  3. Modülün imzalandığını onaylayın

    tail $(modinfo -n vboxdrv) | grep "Module signature appended"
    
  4. Anahtarları Güvenli Önyüklemeye Kaydet

    sudo mokutil --import MOK.der
    

    , bir sonraki adımda içe aktarmayı onaylamak için kullanılacak bir şifre soracak.

  5. Yeniden başlat ve MOK Kaydet (Makine Sahibi Anahtarı) için talimatları izleyin. Resimlerle bir örnek . Sistem bir kez daha yeniden başlatılacak.

  6. Anahtarın kaydedildiğini onaylayın

    mokutil --test-key MOK.der
    

VirtualBox hala yüklenmiyorsa, modülün yüklenmemiş olması ( sudo modprobe vboxdrv 'nin bunu düzeltmesi) veya anahtarın imzalanmamış olması olabilir. Sadece bu adımı tekrarlayın ve her şey iyi çalışmalı.

Kaynaklar: Detaylı web sitesi Fedora makalesi ve < modül imzalamanın bir href="https://github.com/Canonical-kernel/Ubuntu-kernel/blob/master/Documentation/module-signing.txt"> Ubuntu uygulaması . ek güvenlik için @wwets . için @shasha_trn tüm modüller .

Ek kaynak: Her defasında virtualbox-dkms yükseltmelerini kullanarak kendi kullanımım için bir bash betiği oluşturdum ve böylece imzalı modüllerin üzerine yazıyor. GitHub'daki vboxsign 'a göz atın.

    
verilen cevap Majal 06.05.2016 07:57
13

Sistemimde çalışmasını sağlamak için aşağıdakileri yaptım:

Mokutili çalıştır:

sudo mokutil --disable-validation

Sonra mokutil, MOK Yöneticisi için bir şifre belirlememi istedi. Bilgisayarı yeniden başlattıktan sonra BIOS, MOK Yöneticisini yapılandırmak için bir iletişim kutusu gösterdi. Bu iletişim kutusundan SecureBoot'u devre dışı bıraktım, paroladan birkaç karakter istedi (yani, karakter (5), vb.).

Doğru şekilde yüklenen vboxdrv modüllerini önyükledikten sonra.

lsmod | grep vboxdrv
vboxdrv               454656  3 vboxnetadp,vboxnetflt,vboxpci

Merakla, mokutil hala SecureBoot'un etkin olduğunu gösteriyor:

sudo mokutil --sb-state
SecureBoot enabled
    
verilen cevap Pocho 26.04.2016 18:16
4

Doğrulama kontrolünü

ile kapatabilirsiniz.
sudo apt install mokutil
sudo mokutil --disable-validation

Bundan sonra DKMS paketleri kurulmalıdır.

    
verilen cevap Pilot6 25.04.2016 09:39
0

Güncellemeden sonra vboxdrv hakkında da hatam var. Ancak, Oracle VM VirtualBox Extension Pack'in eski sürümüyle (5.0.14) ilgili sorun vardı. Bu paketin daha yeni sürümünü (5.0.18) indirdim ve yükledim ve sorun ortadan kalktı.

    
verilen cevap Reling 23.04.2016 00:41
0

Pekala, biraz test yaptıktan sonra eminim ki bu güvenli bir önyükleme sorunu.

Etkinleştirilmişse, o zaman bu atılır:

  

UYARI: vboxdrv çekirdek modülü yüklü değil. Ya modül yok            geçerli çekirdek için kullanılabilir (4.4.0-21-jenerik) veya başarısız oldu            yük. Lütfen çekirdek modülünü yeniden derleyin ve sudo / sbin / rcvboxdrv kurulumuyla kurun

Ancak, güvenli önyükleme devre dışı bırakılırsa, sanal kutu hatasız şekilde yüklenir.

Biyo'm hala UEFI olarak ayarlanmış.

    
verilen cevap David Haynes 23.04.2016 18:22
0

Bugün de aynı sorunu yaşadım, Windows 10 ve Ubuntu 15.10'u Bios üzerinde uefi etkinken çift önyüklemede vardı (Önceden yüklenen Windows'u çalıştırabilmem için devre dışı bırakmadım).

Ubuntu'ya yükseltme yaptıktan sonra 16.04 VirtualBox, VM'lerimi aynı hata mesajıyla yüklemeyi durdurdu:

modprobe: ERROR: could not insert 'vboxdrv': Required key not available

UEFI sorunundan şüpheleniyorum çünkü yükleyiciyi yükseltirken, onu devre dışı bırakmak isteyip istemediğimi sordum, Hayır cevabını verdim (Çünkü Evet, Windows'umu kullanılamaz hale getirebilir).

Yaptığım şey, Bios'a gidiyor ve güvenli önyüklemeyi devre dışı bırakmadan eski BIOS önyükleme desteğini etkinleştiriyor.

Sanal kutu şimdi iyi çalışıyor.

Güncelleme : @Zwets doğru şekilde yorumda işaret edildiğinden, eski modüllerin etkinleştirilmesi güvenli önyüklemenin devre dışı bırakılmasına neden olur.

    
verilen cevap Zeine77 23.04.2016 01:23

Etiketlerdeki diğer soruları oku