Pertanyaan vboxdrv.sh: gagal: modprobe vboxdrv gagal. Silakan gunakan 'dmesg' untuk mencari tahu alasannya


Saya mengalami masalah menjalankan VirtualBox di laptop Ubuntu saya. Laptop saya adalah dual boot, dan berjalan (Windows 10 - saya rasa, belum menggunakannya dalam beberapa tahun), serta Ubuntu 16.0.4 LTS.

Saya memiliki boot aman yang diaktifkan pada pengaturan BIOS laptop saya.

Saya sadar bahwa ada pertanyaan serupa yang diposting di sini, khususnya dua ini:

Saya telah mengikuti semua instruksi yang diberikan di bagian jawaban untuk kedua pertanyaan itu - namun, masalahnya tetap tidak terpecahkan.

Berikut adalah keluaran konsol, ketika saya mencoba menjalankan virtualbox:

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.

di sini adalah keluaran konsol ketika saya menjalankan/sbin/vboxconfig seperti yang disarankan:

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.

Di sini adalah ujung ekor dari output 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

Sekarang, saya tidak akan berbohong - saya punya sama sekali tidak tahu apa yang dmesg baru saja dimuntahkan - dan sejauh yang saya tahu, tidak ada pesan kesalahan dalam output log - yang membuat situasi menjadi lebih menyebalkan.

Apakah ada yang pernah menginstal VirtualBox 5.x pada laptop yang menjalankan Ubuntu 16.0.4 LTS - tetapi dengan boot aman yang diaktifkan di BIOS ? - jika ya, apa solusinya. ???!

Banyak orang memiliki masalah ini - bahkan beberapa tahun ke belakang. sangat aneh bahwa tidak ada yang memiliki solusi untuk itu - ???


27
2018-04-04 14:14


asal


"Saya sudah mengaktifkan boot aman pada pengaturan BIOS laptop saya." - Itu mungkin menjadi bagian dari masalahmu. Saya ingat beberapa saat yang lalu mendengar bahwa booting yang aman merusak VBox. - Android Dev


Jawaban:


VirtualBox + Secure Boot + Ubuntu = gagal

Masalahnya adalah persyaratan bahwa semua modul kernel harus ditandatangani   oleh kunci yang dipercaya oleh sistem UEFI, jika tidak, pemuatan akan gagal.   Ubuntu tidak menandatangani vbox pihak ketiga * modul kernel, melainkan   memberi pengguna opsi untuk menonaktifkan Boot Aman saat instalasi   paket virtualbox. Saya bisa melakukan itu, tetapi kemudian saya akan melihat   pesan "Booting in insecure mode" yang mengganggu setiap kali mesin   mulai, dan juga instalasi dual boot Windows 10 yang saya miliki   tidak berfungsi.

Ubuntu 16.04 pada Dell Latitude E7440 dengan BIOS A18, dan dengan instalasi dual boot Windows 10.

Kredit pergi ke sumber utama informasi yang saya gunakan untuk menyelesaikan   masalah ini, yang berlaku khusus untuk Fedora / Redhat:    http://gorka.eguileor.com/vbox-vmware-in-secureboot-linux-2016-update/

Dan pertanyaan Ask Ubuntu yang relevan:    Tidak dapat memuat 'vboxdrv' setelah upgrade ke Ubuntu 16.04 (dan saya ingin tetap boot aman)

Langkah-langkah untuk membuatnya bekerja, khususnya untuk Ubuntu / Debian

  1. Instal paket virtualbox. Jika instalasi mendeteksi bahwa Boot Aman diaktifkan, Anda akan disajikan dengan masalah yang dihadapi   dan diberi opsi untuk menonaktifkan Boot Aman. Pilih "Tidak".

  2. Buat pasangan kunci publik / pribadi RSA pribadi yang akan digunakan untuk menandatangani modul kernel. Saya memilih untuk menggunakan akun root dan direktori   / root / module-signing / untuk menyimpan semua hal yang berkaitan dengan penandatanganan kernel   modul.

    $ 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. Gunakan utilitas MOK (“Machine Owner Key”) untuk mengimpor kunci publik sehingga dapat dipercaya oleh sistem. Ini adalah proses dua langkah   di mana kunci pertama kali diimpor, dan kemudian harus didaftarkan kapan   mesin dibooting pada saat berikutnya. Kata sandi yang sederhana sudah cukup bagus,   karena hanya untuk penggunaan sementara.

    # mokutil --import /root/module-signing/MOK.der
    input password:
    input password again:
    
  4. Reboot mesin. Ketika bootloader dimulai, utilitas EFI manajer MOK secara otomatis akan dimulai. Ini akan meminta bagian dari   kata sandi yang disediakan pada langkah 3. Pilih untuk "Daftarkan MOK", maka Anda harus   lihat kunci yang diimpor pada langkah 3. Selesaikan langkah pendaftaran, lalu   lanjutkan dengan boot. Kernel Linux akan mencatat kunci-kunci yang ada   dimuat, dan Anda harus dapat melihat kunci Anda sendiri dengan perintah:    dmesg|grep 'EFI: Loaded cert'

  5. Menggunakan utilitas penandatanganan shippped dengan file build kernel, tandatangani semua modul VirtualBox menggunakan kunci MOK pribadi yang dihasilkan pada langkah 2.   Saya taruh ini dalam skrip kecil /root/module-signing/sign-vbox-modules, sehingga dapat dengan mudah dijalankan ketika kernel baru dipasang sebagai bagian dari pembaruan rutin:

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

    Lalu:

    # chmod 700 /root/module-signing/sign-vbox-modules
    
  6. Jalankan skrip dari langkah 5 sebagai root. Anda harus menjalankan skrip penandatanganan setiap kali pembaruan kernel baru dipasang, karena ini   akan menyebabkan rekondisi dari modul VirtualBox pihak ketiga. Menggunakan   skrip hanya setelah kernel baru telah di-boot, karena itu bergantung pada    modinfo -n dan uname -r untuk memberi tahu versi kernel mana yang harus ditandatangani.

  7. Muat modul vboxdrv dan jalankan VirtualBox:

    # modprobe vboxdrv
    

Prosedur ini juga dapat digunakan untuk menandatangani kernel pihak ketiga lainnya   modul, seperti driver grafis nvidia, jika diperlukan. (Saya sudah   tidak diuji sendiri.)

catatan: Jawaban di atas sepenuhnya bersumber dari postingan blog Øyvind Stegard, VirtualBox + Secure Boot + Ubuntu = gagal.


29
2018-04-04 14:24



Saya mendapatkan kesalahan: 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
Jawaban Bagus dan terima kasih untuk naskahnya! Saya ingin menambahkan itu jika jagoan masih gagal pada VboxManage hostonlyif buat, maka itu dapat diperbaiki dengan mencopot pemasangan gelandangan dan virtualbox, lalu menginstal ulang. Dengan asumsi Anda sudah menandatangani kunci. Tepuk tangan! - Anthony Harley
Apakah Ubuntu 17 telah memperbaiki ini, atau tidak akan pernah diperbaiki karena alasan ideologis? - Dan Dascalescu


Jawaban di atas mungkin berfungsi dengan baik, tetapi jika Anda menginginkan waktu yang lebih mudah untuk itu:

Saya bisa menyelesaikannya dengan

boot ke BIOS dan pergi> lanjut (f7)> boot> gulir ke bawah ke "boot aman"> ubah "mode EUFI Windows" ke "OS lain"

Kotak virtual saya berfungsi dengan sempurna sekarang.


6
2018-04-19 01:27