vboxdrv.sh: başarısız oldu: modprobe vboxdrv başarısız oldu. Lütfen nedenini bulmak için 'dmesg' kullanın


53

Ubuntu dizüstü bilgisayarımda VirtualBox çalıştırırken sorun yaşıyorum. Dizüstü bilgisayarım çift önyükleme ve çalışıyor (Windows 10 - Sanırım, yıllardır kullanmadım) ve Ubuntu 16.0.4 LTS.

Dizüstü bilgisayarımın BIOS ayarlarında güvenli önyüklemem var.

Burada yayınlanan benzer soruların, özellikle de şu ikisinin bulunduğunun farkındayım:

Bu iki sorunun cevap bölümlerinde verilen talimatların hepsini takip ettim - henüz sorun çözülmedi.

Virtualbox çalıştırmaya çalıştığımda, konsol çıktısı:

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önerildiği gibi çalıştığımda konsol çıktısı :

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.

İşte çıktının kuyruk ucu 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

Şimdi, yalan söylemeyeceğim - dmesg'in neyin patlamış olduğu hakkında hiçbir fikrim yok - ve söyleyebileceğim kadarıyla, log çıktısında hiçbir hata mesajı yok - durumu daha da çıldırtan hale getiriyor.

Hiç kimse VirtualBox 5.x'i Ubuntu 16.0.4 LTS çalıştıran bir dizüstü bilgisayara kurdu mu - ancak BIOS'ta güvenli önyükleme etkin mi? - evet ise, çözüm nedir. ???!

Birçok insan bu problemi yaşar - hatta birkaç yıl öncesine kadar. kimsenin bunun için bir çözümü yok gibi görünmesi çok garip - ???


2
"Dizüstü bilgisayarımın BIOS ayarlarında güvenli önyüklemem var." - Bu senin probleminin bir parçası olabilir. Bir süre önce bu güvenli önyüklemenin VBox'u kırdığını duyduğumu hatırlıyorum.
Android Dev

Yanıtlar:


64

VirtualBox + Güvenli Önyükleme + Ubuntu = başarısız

Sorun, tüm çekirdek modüllerinin UEFI sistemi tarafından güvenilen bir anahtar tarafından imzalanması gerekliliğidir, aksi takdirde yükleme başarısız olur. Ubuntu, üçüncü taraf vbox * çekirdek modüllerini imzalamaz, ancak kullanıcıya sanal kutu paketinin kurulumu üzerine Güvenli Önyükleme'yi devre dışı bırakma seçeneği verir. Bunu yapabilirdim, ama sonra makine her başladığında sinir bozucu bir “Güvensiz modda önyükleme” mesajı görecektim ve ayrıca Windows 10 yüklemesi çalışmadı.

BIOS A18 özellikli bir Dell Latitude E7440'ta ve çift önyüklemeli Windows 10 kurulumunda Ubuntu 16.04.

Kredi, özellikle Fedora / Redhat için geçerli olan bu sorunu çözmek için kullandığım birincil bilgi kaynağına gider: http://gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update/

İlgili bir Ubuntu sorusu sorusu: Ubuntu 16.04'e yükselttikten sonra 'vboxdrv' yüklenemedi (ve güvenli önyüklemeye devam etmek istiyorum)

Özellikle Ubuntu / Debian için çalışmasını sağlayacak adımlar

  1. Sanal kutu paketini yükleyin. Yükleme Güvenli Önyükleme'nin etkin olduğunu algılarsa, eldeki sorun size sunulacak ve Güvenli Önyükleme'yi devre dışı bırakma seçeneği verilecektir. “Hayır” ı seçin.

  2. Çekirdek modüllerini imzalamak için kullanılacak kişisel bir kamu / özel RSA anahtar çifti oluşturun. Çekirdek modüllerini imzalamakla ilgili her şeyi depolamak için kök hesabı ve / root / module-signing / dizinini kullanmayı seçtim.

    $ 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. Genel anahtarı sistem tarafından güvenilebilecek şekilde almak için MOK (“Makine Sahibi Anahtarı”) yardımcı programını kullanın. Bu, anahtarın ilk önce içe aktarıldığı ve daha sonra makine bir sonraki açılışında daha sonra kaydedilmesi gereken iki aşamalı bir işlemdir. Basit bir şifre, yalnızca geçici kullanım için olduğu gibi yeterince iyidir.

    # mokutil --import /root/module-signing/MOK.der
    input password:
    input password again:
    
  4. Makineyi yeniden başlatın. Önyükleyici başladığında, MOK yöneticisi EFI yardımcı programı otomatik olarak başlamalıdır. 3. adımda verilen parolanın bölümlerini isteyecektir. “MOK Kaydet” seçeneğini seçin, ardından 3. adımda içe aktarılan anahtarı görmelisiniz. Kayıt adımlarını tamamlayın, ardından önyüklemeye devam edin. Linux çekirdeği yüklenen anahtarları kaydedecektir ve şu komutu kullanarak kendi anahtarınızı görebilmelisiniz: dmesg|grep 'EFI: Loaded cert'

  5. Bir imzalama programı kullanarak, dosyaları oluşturmak küçük bir komut koymak 2. adımda oluşturulan özel MOK anahtarını kullanarak tüm VirtualBox modüllerini imzalamak çekirdek ile shippped /root/module-signing/sign-vbox-modules, böylece yeni çekirdekler düzenli güncellemeler kapsamında yüklü olduğunda olması kolayca çalıştırabilirsiniz :

    #!/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
    

    Ve sonra:

    # chmod 700 /root/module-signing/sign-vbox-modules
    
  6. Komut dosyasını 5. adımdan kök olarak çalıştırın. Her yeni çekirdek güncellemesi yüklendiğinde imzalama komut dosyasını çalıştırmanız gerekir, çünkü bu, üçüncü taraf VirtualBox modüllerinin yeniden oluşturulmasına neden olur. Komut dosyasını yalnızca yeni çekirdek başlatıldıktan sonra kullanır, çünkü dayanır modinfo -nve uname -rhangi çekirdek sürümünün imzalanacağını söyler.

  7. Vboxdrv modülünü yükleyin ve VirtualBox'ı ateşleyin:

    # modprobe vboxdrv
    

Prosedür, gerekirse, nvidia ekran kartı sürücüleri gibi diğer üçüncü parti çekirdek modüllerini de imzalamak için kullanılabilir. (Bunu kendim test etmedim.)

Not: Yukarıdaki cevap tamamen Øyvind Stegard'ın blog yazısından alınmıştır, VirtualBox + Secure Boot + Ubuntu = fail .


1
Hata alıyorum: 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

5
18.04+ hakkında not: önerilen grep okumalısınız: dmesg|grep 'EFI:'yerinedmesg|grep 'EFI: Loaded cert'
gkephorus

3
Kesinlikle bunun ne yaptığını bilmiyor ve anlıyorsunuz, ama işe yaradı.
naneri

1
Sadece bazılarına ihtiyaç duyulursa: Bu problemi UEFI ya da Secure Mode olmadan yaşadım. Benim durumumda, 18.04.x ​​tarihinde virtualbox-dkms kurulumu kesildi. Düzeltmem: apt temizleme sanal kutusu-dkms && apt yükleme sanal kutusu-dkms && modprobe vboxdrv
gorlok

1
sanal kutuyu 5.2'den 6.0'a yükseltirseniz, 6 ve 7 adımların tekrar tamamlanmasını unutmayın.
voleger

12

Yukarıdaki cevap muhtemelen iyi çalışıyor, ancak bunun için daha kolay bir zaman istiyorsanız:

Tarafından çözebildim

BIOS'a önyükleme ve ileri> f7 (> f7)> önyükleme> "güvenli önyükleme" seçeneğine ilerleyin> "Windows EUFI modunu" "diğer işletim sistemi" olarak değiştirin

Sanal kutum şimdi mükemmel çalışıyor.


2
Bunu yapmak istememenin bir nedeni var mı?
Taegost

Bazı güç dalgalanmaları veya BIOS'umun sıfırladığı bir şey nedeniyle bunu yapmam gerekiyordu. Şimdi yukarıdaki hatayı anlamıyorum.
jamadagni
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.