Ubuntu 16.04'e yükselttikten sonra 'vboxdrv' yüklenemedi (ve güvenli önyüklemeyi korumak istiyorum)


130

Ubuntu 15.10’dan 16.04’e geçiyorum ve o zamandan beri VirtualBox 5.0.18 artık VM’lerimi başlatmıyor. 'Vboxdrv' yüklenmemiş olduğundan şikayet ediyor. Bu yüzden onu yüklemeye ve aşağıdaki hatayı almaya çalışıyorum:

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

Kullandığım ve kullanmaya devam etmek istediğim güvenli önyükleme ile ilgili olduğuna inanıyorum. Aslında Ubuntu 15.10 ile güvenli önyükleme ve VirtualBox iyi çalışıyordu.

Ayrıca $ sudo apt-get --reinstall install virtualbox-dkmsçekirdek modülün hangisini başarıyla oluşturduğumu da denedim ama bu sorunu çözmedim.

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

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

Not : Güvenli önyüklemeyi devre dışı bırakmakta sakınca yoksa, bkz. 3. parti çekirdek modüllerini kurarken veya bir çekirdek güncellemesinden sonra neden "Gerekli anahtar kullanılamıyor"? yerine.



Bu soru askubuntu.com/questions/762254/… bir kopyası olsa da , bu soru aşağıda @Majal tarafından verilen cevabı içermez.
zwets


FWIW, Google'cuların için: Ubuntu 18.04 ile yükleme aptitude install virtualbox virtualbox-dkms olacak modülünü imzalamak ve bir kerelik şifre için sizden (?). Yeniden başlat, MOK config'e gir ve şifreyi kullanarak şifreyi kaydet.
Raphael,

Yanıtlar:


177

4.4.0-20 sürümünden beri, imzasız çekirdek modüllerinin Güvenli Önyükleme etkinken çalışmasına izin verilmeyecekti. Güvenli Önyükleme'yi korumak istediğiniz için, bir sonraki mantıksal adım bu modülleri imzalamaktır .

Öyleyse deneyelim.

  1. İmzalama 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, şifre isteyecek olan -nodes anahtarını atla. Sonra bir sonraki adıma geçmeden önce,export KBUILD_SIGN_PIN='yourpassword'

  2. Modülü imzalayın (bu örnek için vboxdrv, ancak ls $(dirname $(modinfo -n vboxdrv))/vbox*.ko)tam işlevsellik için 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ükleme'ye kaydedin

    sudo mokutil --import MOK.der
    

    bir sonraki adımda içe aktarmayı onaylamak için kullanılacak bir parola isteyecektir.

  5. MOB'u (Makine Sahibi Anahtarı) Yeniden Başlatın ve talimatları izleyin. İşte 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 yüklenmemiş olabilir ( sudo modprobe vboxdrvbunu çözecektir) veya anahtarın imzalanmamış olması olabilir. Sadece bu adımı tekrarlayın ve her şey iyi çalışması gerekir.

Kaynaklar: Fedora ve Ubuntu için modül imzalamanın uygulanmasına yönelik ayrıntılı web sitesi makalesi . Ek güvenlik için @ zwets . Tüm modüller bahsettiğim için @shasha_trn .

Ek kaynak: Her seferinde kendi kullanımım için bir bash betiği oluşturdum virtualbox-dkmsve böylece imzalı modüllerin üzerine yazdım . Başlangıçta GitHub'daki vboxsign'ımı kontrol et .


7
Ayrıca sanal makinelerde ağ kurmak ve pci aygıtlarını geçmek için vboxnetadp, vboxnetflt, vboxpci modüllerini imzaladım.
sasha_trn

4
@ Majal'ın cevabını genişlettiğimde, sudo apt install --reinstall virtualbox-dkmsverilen talimatları izlemeden önce yürütmem gerekti .
TylersSN

1
@zwets muhtemelen KBUILD_SIGN_PINçevre değişkenini nasıl düzgün bir şekilde ayarlayabileceğinizi açıklayabilir misiniz ? export KBUILD_SIGN_PIN=passwordve export KBUILD_SIGN_PIN="password"adım 2'den önce ikisi de sonuçlandıSSL error:0907B068:PEM routines:PEM_READ_BIO_PRIVATEKEY:bad password read: pem_pkey.c:117
adempewolff

3
@adempewolff Parolanız, kabuğunuzun yorumlayacağı karakterler içeriyorsa (örneğin, alıntı yapılan bir dizede '$'), kesme işareti (') içine almanız gerekir.
zwets

1
@Majal Cevabınız için teşekkürler! Ayrıca, özelliği devre dışı bırakmak yerine modülleri imzalamayı tercih ederim. Ekleyebilirim: (1) Aynı kaderi paylaşan "vmmon" ve "vmnet" VMware modülleri için de geçerlidir. (2) Oluşturduğunuz anahtarları eklerken, şifrenizi akıllıca seçin. Yeniden başlatma ve güvenli önyükleme kayıt aşamasında klavye düzeniniz yerel ayarlarınızdan farklı olabilir. (-> ABD Düzeni)
bir mb

15

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

Mokutil'i çalıştırın:

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. SecureBoot'u bu iletişim kutusundan devre dışı bıraktım, şifreden birkaç karakter istedi (ör. Karakter (5), vb.).

Açtıktan sonra vboxdrv modülleri doğru yüklendi.

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

9
Sorumu belirttiğim gibi güvenli önyükleme kullanmaya devam etmek istiyorum. Bu yüzden güvenli önyüklemeyi devre dışı bırakmak sorunu çözmez.
jans

2
Güvenli önyüklemeyi devre dışı bırakmak istemedim, ama sonunda bunu yapmak zorunda kaldı çünkü başka hiçbir şey işe yaramayacaktı - bir çekirdek güncellemesi her geldiğinde bir şeyleri el ile imzalamak istemezsiniz. BTW, UEFI hala güvenli önyüklemenin etkin olduğunu söylüyor. ¯_ (ツ) _ / ¯
jaywink

4

Doğrulama kontrolünü devre dışı bırakabilirsiniz.

sudo apt install mokutil
sudo mokutil --disable-validation

Bundan sonra DKMS paketleri kurulmalıdır.


2
Ayrıca sudo mokutil --disable-validation komutunu ç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, diskten bir anahtar veya karma eklemem istenir. Güvenli önyüklemeyi devre dışı bırakmak istemediğim için, bunun da sorunumu çözmediği anlaşılıyor. Bu komutu yanlış anladıysam lütfen bana bildirin.
jans

2
Güvenli önyüklemeyi devre dışı bırakmayı deneyin. Yardımcı olmazsa geri etkinleştirebilirsiniz.
Pilot6,

Güvenli önyüklemeyi devre dışı bırakmaya çalıştım - ancak yine de etkin :( (ubuntu 18.04)
xhudik

0

Ben de yükseltme sonrasında vboxdrv hakkında hata var. Ancak Oracle VM VirtualBox Extension Pack'in eski sürümünde (5.0.14) bir sorun vardı. Bu paketin yeni sürümünü (5.0.18) indirip yükledim ve sorun yok oldu.


Hey, lütfen detaylandırır mısın? Nereden indirdin? PPA veya deb dosyası?
Karthik Nishanth

1
Eklenti paketini VirtualBox sitesindeki indirmelerden indirdim, bağlantı "VirtualBox 5.0.18 Oracle VM VirtualBox Genişletme Paketi -> Tüm desteklenen platformlar " dır . Sonra Oracle VM Virtual Box Manager'da Dosya> Tercihler'i açtım, "Uzantılar" ı seçtim ve indirilen dosyayı listeye ekledim. Eski "Oracle VM VirtualBox Extension Pack" versiyonunun yerini aldı (5.0.14rxxxxxx).
07

1
Uzantı paketi hatayı düzeltmez. Hata modülü imzalamakla ilgili
Karthik Nishanth

Bu benim sorunum için geçerli değil.
jans

1
Bu OP sorunu ile ilgisi yoktur. "Gerekli anahtar kullanılamıyor" hata mesajı, sorunun Güvenli Önyükleme özellikli bir platformdaki imzasız bir çekirdek modülünden kaynaklandığını gösterir. Hiçbir VirtualBox güncellemesi , çekirdeğin güvendiği bir anahtar kullanarak imzalanmış bir modül içermiyorsa bunu çözemez. Yani, ya Canonical imzalamalı ya da Oracle imzalamalı ve çekirdeğin (veya platformunuzun) güvenilen anahtarlarına ortak anahtarın eklenmesi gerekir.
zwets

0

Pekala, biraz testten sonra bunun güvenli bir açılış sorunu olduğuna eminim.

Etkinleştirilmiş gibi, o zaman bu atılmış:

UYARI: vboxdrv çekirdek modülü yüklenmemiş. Geçerli çekirdek (4.4.0-21-generic) için modül yok ya da yüklenemedi. Lütfen çekirdek modülünü derleyin ve sudo / sbin / rcvboxdrv kurulumuyla yükleyin

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

Biyografileri hala UEFI olarak ayarlıyorum.


3
Sorumu belirttiğim gibi güvenli önyükleme kullanmaya devam etmek istiyorum. Bu yüzden güvenli önyüklemeyi devre dışı bırakmak sorunu çözmez.
jans

0

Bugün aynı sorunu yaşadım, Bios'ta etkin uefi etkinleştirilmiş çift önyüklemede Windows 10 ve Ubuntu 15.10 vardı (önceden yüklenmiş olan Windows işletim sistemini çalıştırabildim, devre dışı bırakmadım).

Ubuntu 16.04 sürümüne yükselttikten sonra VirtualBox VM'lerimi aynı hata mesajıyla yüklemeyi bıraktı:

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

UEFI sorunundan şüpheliyim, çünkü yükleyici yükseltme işlemi sırasında, yanıtladığımın devre dışı bırakmak isteyip istemediğimi sordu Hayır (Çünkü Evet, Windows'umu kullanılamaz hale getirebilir).

Yaptığım şey, Bios'a gidip güvenli önyüklemeyi devre dışı bırakmadan eski BIOS önyüklemesi desteğini etkinleştirmek olacak.

Virtualbox şimdi iyi çalışıyor.

Güncelleme : @zwets, yorumu doğru şekilde işaret ettiğinden, eski modüllerin etkinleştirilmesi güvenli önyüklemenin devre dışı kalmasına neden olur.


2
Aslında paralel bir Windows kurulumunu başlatmak için UEFI'ye de ihtiyacım var. Yani devre dışı bırakmak da benim için bir seçenek değil. Sorumu buna göre güncelledim.
jans

Eski BIOS modülleri için Desteği etkinleştirdiniz mi? Bu, UEFI bios'ta güvenli önyüklemeden farklı bir seçenek.
Zeine77

1
@ Zeine77, Güvenli Önyükleme etkin kalırken BIOS'unuzun "eski modülleri" etkinleştirmeye izin verdiğini doğrulayabilir misiniz ? İlk seçenek, güvenilmeyen kodun ikincinin amacını yenen çekirdek uzayında çalışmasına izin verdiği için, bu pek olası değildir.
zwets

@zwets haklısın, ben sadece bios ayarlarımı kontrol ettim; ve eski modüllerin etkinleştirilmesi güvenli önyüklemenin devre dışı bırakılmasına neden oldu. Yanıtta açıklandığı gibi, güvenli önyüklemeyi devre dışı bırakmanın Windows 10 önyüklemesinin başarısız olmasına neden olacağını varsaydım, bu durum böyle değil. 15.10'u ilk kurduğumda (Aylar önce) Güvenli önyüklemeyi devre dışı bırakmamaya özen gösterdim, çünkü bu Win 10 kurulumuna zarar verebilir. Bu, önceden yüklenmiş Win 10'un güvenli mod devre dışıyken düzgün çalıştığı anlamına mı geliyor?
Zeine77
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.