Ошибка VirtualBox после последний (Ubuntu) Обновление программного обеспечения

  • Версия Ubuntu: 16.04

  • Версия VirtualBox: 5.2.26

  • Обновления, которые "повредили" что-то: те, которые между прошлой неделей и сегодня (2019/03/18)

Я запустил программное обеспечение Ubuntu Updater этим утром после включения компьютера. Впоследствии я попытался запустить Виртуальную машину Поля (версия, установленная через .deb, не Центр программного обеспечения Ubuntu один), и получил ту известную ошибку:

Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing

'/sbin/vboxconfig'

as root.

where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT.

После чтения о подобных проблемах и понимании, почему должен, я делаю это, я выполнил его (те же результаты с 'sudo/usr/lib/virtualbox/vboxdrv.sh устанавливают' и любые другие решения подобных проблем/сообщений, которые я нашел на этом сайте):

$ sudo /sbin/vboxconfig

vboxdrv.sh: Stopping VirtualBox services.
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
vboxdrv.sh: failed: Look at /var/log/vbox-setup.log to find out what went wrong.

Читая .log, я вижу, что проблема, кажется, связана с функцией "get_user_pages", и в этой точке я честно понятия не имею, как решить его.

Building the main VirtualBox module.
Error building the module:
make V=1 CONFIG_MODULE_SIG= -C /lib/modules/4.4.0-143-generic/build SUBDIRS=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -j8 modules
make[1]: warning: -jN forced in submake: disabling jobserver mode.
mkdir -p /tmp/vbox.0/.tmp_versions ; rm -f /tmp/vbox.0/.tmp_versions/*
make -f ./scripts/Makefile.build obj=/tmp/vbox.0
[...]
[...]
[...]
/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c: In function ‘rtR0MemObjNativeLockUser’:
/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1122:33: warning: passing argument 6 of ‘get_user_pages’ makes pointer from integer without a cast [-Wint-conversion]
                                 fWrite,                 /* force write access. */
                                 ^
In file included from /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:98:0,
                 from /tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:31:
include/linux/mm.h:1222:6: note: expected ‘struct page **’ but argument is of type ‘int’
 long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
      ^
/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1124:33: warning: passing argument 7 of ‘get_user_pages’ from incompatible pointer type [-Wincompatible-pointer-types]
                                 &pMemLnx->apPages[0],   /* Page array. */
                                 ^
In file included from /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:98:0,
                 from /tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:31:
include/linux/mm.h:1222:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘struct page **’
 long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
      ^
/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:1112:18: error: too many arguments to function ‘get_user_pages’
             rc = get_user_pages(pTask,                  /* Task for fault accounting. */
                  ^
In file included from /tmp/vbox.0/r0drv/linux/the-linux-kernel.h:98:0,
                 from /tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.c:31:
include/linux/mm.h:1222:6: note: declared here
 long get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
      ^
  gcc -Wp,-MD,/tmp/vbox.0/r0drv/linux/.mpnotification-r0drv-linux.o.d  -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/5/include  -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated  -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -Iubuntu/include  -D__KERNEL__ -fno-pie -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -fno-PIE -fno-pie -no-pie -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_X86_X32_ABI -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -DCONFIG_AS_SHA1_NI=1 -DCONFIG_AS_SHA256_NI=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -DRETPOLINE -fno-delete-null-pointer-checks -Wno-maybe-uninitialized -O2 --param=allow-store-data-races=0 -DCC_HAVE_ASM_GOTO -Wframe-larger-than=1024 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -include /tmp/vbox.0/include/VBox/SUPDrvMangling.h -fno-omit-frame-pointer -fno-pie -I/lib/modules/4.4.0-143-generic/build/include -I/tmp/vbox.0/ -I/tmp/vbox.0/include -I/tmp/vbox.0/r0drv/linux -D__KERNEL__ -DMODULE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DRT_WITH_VBOX -DVBOX_WITH_HARDENING -DSUPDRV_WITH_RELEASE_LOGGER -Wno-declaration-after-statement -DCONFIG_VBOXDRV_AS_MISC -DRT_ARCH_AMD64 -DVBOX_WITH_64_BITS_GUESTS  -DMODULE  -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(mpnotification_r0drv_linux)"  -D"KBUILD_MODNAME=KBUILD_STR(vboxdrv)" -c -o /tmp/vbox.0/r0drv/linux/.tmp_mpnotification-r0drv-linux.o /tmp/vbox.0/r0drv/linux/mpnotification-r0drv-linux.c
scripts/Makefile.build:285: recipe for target '/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.o' failed
make[2]: *** [/tmp/vbox.0/r0drv/linux/memobj-r0drv-linux.o] Error 1
make[2]: *** Waiting for unfinished jobs....
  if [ "-pg" = "-pg" ]; then if [ /tmp/vbox.0/r0drv/linux/initterm-r0drv-linux.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount  "/tmp/vbox.0/r0drv/linux/initterm-r0drv-linux.o"; fi; fi;
  if [ "-pg" = "-pg" ]; then if [ /tmp/vbox.0/SUPDrv.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount  "/tmp/vbox.0/SUPDrv.o"; fi; fi;
  if [ "-pg" = "-pg" ]; then if [ /tmp/vbox.0/r0drv/linux/assert-r0drv-linux.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount  "/tmp/vbox.0/r0drv/linux/assert-r0drv-linux.o"; fi; fi;
  if [ "-pg" = "-pg" ]; then if [ /tmp/vbox.0/r0drv/linux/alloc-r0drv-linux.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount  "/tmp/vbox.0/r0drv/linux/alloc-r0drv-linux.o"; fi; fi;
  if [ "-pg" = "-pg" ]; then if [ /tmp/vbox.0/r0drv/linux/memuserkernel-r0drv-linux.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount  "/tmp/vbox.0/r0drv/linux/memuserkernel-r0drv-linux.o"; fi; fi;
  if [ "-pg" = "-pg" ]; then if [ /tmp/vbox.0/r0drv/linux/mpnotification-r0drv-linux.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount  "/tmp/vbox.0/r0drv/linux/mpnotification-r0drv-linux.o"; fi; fi;
  if [ "-pg" = "-pg" ]; then if [ /tmp/vbox.0/r0drv/linux/mp-r0drv-linux.o != "scripts/mod/empty.o" ]; then ./scripts/recordmcount  "/tmp/vbox.0/r0drv/linux/mp-r0drv-linux.o"; fi; fi;
Makefile:1454: recipe for target '_module_/tmp/vbox.0' failed
make[1]: *** [_module_/tmp/vbox.0] Error 2
/tmp/vbox.0/Makefile.include.footer:101: recipe for target 'vboxdrv' failed
make: *** [vboxdrv] Error 2

Я уже попробовал каждое решение за подобные проблемы с этим сообщением об ошибке, но ни один не работает на меня.

У кого-либо были подобные проблемы после последних обновлений Ubuntu?

ОБНОВЛЕНИЕ: Я полностью удалил VirtualBox, перезапустили систему, установил VirtualBox снова и тем не менее ту же самую ошибку.

21
задан 18 March 2019 в 04:52

7 ответов

Miután elég keményen próbáltam megoldani (sem a DKMS, sem a Synaptics nem tűnik hasznosnak a probléma megoldásaként), képtelen voltam megtenni, így IDEIGLENES megoldás azok számára, akik ugyanabban a helyzetben lehetnek, és csak azért, hogy továbbra is dolgozhassak a vendéggépekkel, javaslom, hogy váltsa le a VirtualBoxot az USC által kínált verzióra.

  • Csak távolítsa el a jelenlegi VirtualBox verziót (a következőn keresztül csináltam: Synaptics, de a GDebi is tökéletesen működne.]

  • Telepítse a VirtualBox USC által kínált verziót (akár az USC-n, akár a Synaptics-on keresztül)

  • A VBoxGuestAdditions modul leminősítése (uninstall-install) a gépen.

  • A vendéggépekben ne felejtse el frissítse a VBoxGuestAdditions verzióját (helyezze be a régi VBoxGuestAdditions CD-t és futtassa).

A probléma / hiba továbbra is fennáll, mivel nem teszi lehetővé az utolsó VirtualBox verzió használatát, remélem, hogy mégis segít, de nagyra értékelném a végső megoldást a .deb verzió újratelepítéséhez és használatához. 1227] FRISSÍTÉS: Eddig úgy tűnik, hogy nincs végső megoldás, ezért esetemben * ez továbbra is a legegyszerűbb. (* Személy szerint inkább visszaváltom a VirtualBoxot, ahelyett, hogy visszatérnék a korábbi Ubuntu kernelekre.)

Ha azonban valamilyen okból valakinek a VirtualBox legutolsó verzióját kell használnia / telepítenie, akkor ezt a szintén említett utasításokat követve megteheti más felhasználók által: https://bugs.launchpad.net/ubuntu/+source/virtualbox/+bug/1818049/comments/27

2
ответ дан 23 November 2019 в 01:59

Egyelőre a könnyű válasz - használja a Vbox által biztosított tesztépítést, amíg várunk egy kernelparancsra.

Az építést itt találja . Az oldalon megadott jelenlegi linkeket kell használnia, mert a példában itt használtak megváltoztak.

Győződjön meg róla, hogy eltávolította az aktuális verziót:

sudo apt remove virtualbox*
sudo dpkg -r virtualbox 
# the tab key will autocomplete the version if there's one for dpkg to remove

Telepítse a teszt összeállítását (módosítsa az URL-t a legújabb tesztnek megfelelően a virtuális box által biztosított felépítés a fenti link használatával - https://www.virtualbox.org/wiki/Testbuilds ):

wget https://www.virtualbox.org/download/testcase/VirtualBox-6.0.5-129423-Linux_amd64.run
chmod +x VirtualBox-6.0.5-129423-Linux_amd64.run
sudo ./VirtualBox-6.0.5-129423-Linux_amd64.run

Ha szüksége van a bővítőcsomagra, módosítsa az URL-t, hogy az megfeleljen a legújabb tesztépítésnek virtuális doboz segítségével a fenti link használatával - https://www.virtualbox.org/wiki/Testbuilds ):

wget https://www.virtualbox.org/download/testcase/Oracle_VM_VirtualBox_Extension_Pack-6.0.5-129380.vbox-extpack
sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.0.5-129380.vbox-extpack
14
ответ дан 23 November 2019 в 01:59

Ez nagyon hasonlít az ismert bug 1818049 "virtualbox dkms modulok nem épülnek fel a 4.4.0-143.169 linux-szal [hiba: túl sok argumentum működik a 'get_user_pages']" .

Az igazi működő megoldás ugyanaz lenne, mint a esetében TTY probléma - távolítsa el a legújabb kerneleket, és telepítse az előző jót ( 4.4.0-138-generic nekem tűnik a legjobban - Az USB 3.0 biztonságos eltávolítása működni fog, getty probléma hiányzik):

sudo apt-get purge linux-image-generic linux-headers-generic
sudo apt-get purge linux-image-4.4.0-139-generic linux-headers-4.4.0-139-generic \
linux-image-4.4.0-140-generic linux-headers-4.4.0-140-generic \
linux-image-4.4.0-141-generic linux-headers-4.4.0-141-generic \
linux-image-4.4.0-142-generic linux-headers-4.4.0-142-generic \
linux-image-4.4.0-143-generic linux-headers-4.4.0-143-generic

sudo apt-get install amd64-microcode intel-microcode thermald
sudo apt-get autoremove

sudo apt-get install linux-image-4.4.0-138-generic linux-image-extra-4.4.0-138-generic
sudo apt-get install linux-headers-4.4.0-138 linux-headers-4.4.0-138-generic

és utána indítsa újra. Tehát meg kell várnunk a normál, stabil, jól tesztelt kernelt.

Figyelem: Ne frissítsd a kernelt 4.4.0-143-generic -re, ha a VirtualBox-ra van szükséged a vendégeken és a gazdagépeken . Iratkozzon fel a 1818049 hibára , és a javítás megerősítése után telepítse a legújabb kernelt a szoftverrel sudo apt-get install linux-image-generic linux-headers-generic .

4
ответ дан 23 November 2019 в 01:59

Ugyanezek a problémáim. 1219] Visszatértem az előző kernelre. Lásd ezt: http://karlcode.owtelse.com/blog/2017/03/13/reverting-to-a-previous-kernel/

, miután az újratelepítette a virtuális dobozt, és újra működik.

Üdvözlettel Alex

4
ответ дан 23 November 2019 в 01:59

Nagyon hasonlít Alberto

  1. sudo /usr/lib/virtualbox/vboxdrv.sh beállításához (hibákat kapok, de leállítom a VBoxot ...)
  2. sudo dpkg -l | grep virtualbox (VBox verzió letöltése).
  3. sudo apt-get purge virtualbox-5.XYZ virtualbox-qt (XYZ verzió a 2. lépéstől)
  4. Ubuntu szoftverről telepítve: 5.1.38-ra csökkentette

Up és újra fut!

2
ответ дан 23 November 2019 в 01:59

Я тоже видел эту проблему. У меня Ubuntu 16.04 LTS. Он обновился до ядра 4.4.0-143. Virtualbox (5.2.14) не будет собирать vboxdrv.ko. Переход на ядро ​​4.4.0-142 (затем удаление -143) решил проблему.

1
ответ дан 23 November 2019 в 01:59

Самым простым решением для Ubuntu 16.04 является обновление ядра до той же версии Ubuntu. 18.04 использует следующую команду:

sudo apt-get install --install-рекомендует linux-generic-hwe-16.04

Перезагрузитесь после выполнения вышеуказанной команды.

Если вы запустите dkms, вы не сможете необходимо переустановить гостевые дополнения после перезагрузки машины. В противном случае переустановите гостевые дополнения, и теперь все должно работать нормально в Ubuntu 16.04

3
ответ дан 23 November 2019 в 01:59

Другие вопросы по тегам:

Похожие вопросы: