VirtualBox 6.1이 잘못된 Linux 커널 버전 모듈 헤더 파일을 사용합니다.

VirtualBox 6.1이 잘못된 Linux 커널 버전 모듈 헤더 파일을 사용합니다.

왜 올바른 커널 모듈이 빌드되지 않는지 모르겠습니다. 커널을 업그레이드했다가 다운그레이드했습니다. 그 시점에서 VirtualBox 6.1이 작동을 멈췄습니다. Mint/Ubuntu에 Vbox를 설치하려면 deb 저장소를 추가한 후 다음을 실행해야 합니다 apt install virtualbox-6.1. 이렇게 하면 이전 버전과 관련 패키지가 제거됩니다. 예를 들면 다음과 같습니다.

virtualbox
virtualbox-dkms

내 현재 커널:5.4.0-53-일반

디스토:리눅스 민트 19.3 트리시아(우분투 18.04)

커널을 업그레이드한 후 다운그레이드한 후(6.1 이전에는 잘 작동함) VM을 부팅하려고 하면 다음 오류가 발생합니다.

Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver is either not loaded or not set up correctly. Please try setting it up again by executing

'/sbin/vboxconfig'

as root.

If your system has EFI Secure Boot enabled you may also need to sign the kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load them. Please see your Linux system's documentation for more information.

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

그래서 이것을 실행하면 /sbin/vboxconfig다음이 생성됩니다.

❯ /sbin/vboxconfig
vboxdrv.sh: Stopping VirtualBox services.
depmod: WARNING: could not open /lib/modules/5.4.65/modules.order: No such file or directory
depmod: WARNING: could not open /lib/modules/5.4.65/modules.builtin: No such file or directory
vboxdrv.sh: Starting VirtualBox services.
vboxdrv.sh: Building VirtualBox kernel modules.
At main.c:281:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:69
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:76
kmodsign: /lib/modules/5.4.0-53-generic/misc/vboxdrv.ko: No such file or directory
At main.c:281:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:69
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:76
kmodsign: /lib/modules/5.4.0-53-generic/misc/vboxnetflt.ko: No such file or directory
At main.c:281:
- SSL error:02001002:system library:fopen:No such file or directory: ../crypto/bio/bss_file.c:69
- SSL error:2006D080:BIO routines:BIO_new_file:no such file: ../crypto/bio/bss_file.c:76
kmodsign: /lib/modules/5.4.0-53-generic/misc/vboxnetadp.ko: No such file or directory
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.  If your system is using EFI Secure Boot you may need to sign the
kernel modules (vboxdrv, vboxnetflt, vboxnetadp, vboxpci) before you can load
them. Please see your Linux system's documentation for more information.

그래서 나는 그것이 원하는 것이 무엇인지 보려고 노력했습니다. dmesg에는 아무것도 없습니다.

❯ locate /lib/modules/5.4.65
/lib/modules/5.4.65
/lib/modules/5.4.65/misc
/lib/modules/5.4.65/modules.alias
/lib/modules/5.4.65/modules.alias.bin
/lib/modules/5.4.65/modules.builtin.bin
/lib/modules/5.4.65/modules.dep
/lib/modules/5.4.65/modules.dep.bin
/lib/modules/5.4.65/modules.devname
/lib/modules/5.4.65/modules.softdep
/lib/modules/5.4.65/modules.symbols
/lib/modules/5.4.65/modules.symbols.bin
/lib/modules/5.4.65/misc/vboxdrv.ko
/lib/modules/5.4.65/misc/vboxnetadp.ko
/lib/modules/5.4.65/misc/vboxnetflt.ko

잘못된 커널용으로 만들어진 것 같습니다. 나는 내가 찾을 수 있는 모든 해결책을 시도했습니다. 지금까지는 패키지를 다시 시작하거나 지우는 것이 도움이 되지 않았습니다.

답변1

위의 Brian Turek의 답변을 바탕으로 문제를 해결했습니다. 여전히 그러한 문제의 원인을 모르지만 커널 헤더를 다시 설치해도 문제가 해결되지 않았습니다. 실제로 이제 이 문제가 여러 커널 버전에 존재한다는 것을 알 수 있습니다.

두 명령의 출력이 다른 경우 다음 질문이 적용될 수 있습니다.

root@:/# uname -r
5.4.0-60-generic

root@:/# cat /usr/src/linux-headers-$(uname -r)/include/config/kernel.release
5.4.78

이 경우 빌드된 모듈은 파일의 모듈 아래에서 찾을 수 있습니다 kernel.release.

root@:/# ls /lib/modules/5.4.78/misc/vbox*
/lib/modules/5.4.78/misc/vboxdrv.ko
/lib/modules/5.4.78/misc/vboxnetadp.ko
/lib/modules/5.4.78/misc/vboxnetflt.ko

모듈을 현재 사용되는 커널의 올바른 위치로 이동한 후에는 다음과 같이 로드할 수 있습니다.

root@:/# mv /lib/modules/5.4.78/misc /lib/modules/5.4.0-60-generic/misc
root@:/# depmod -a
root@:/# modprobe vboxdrv

물론 이는 다음 버전의 커널을 설치할 때까지 임시 해결 방법일 뿐입니다.

답변2

보세요https://www.virtualbox.org/ticket/19723

커널 헤더가 현재 커널과 동기화되지 않은 것 같습니다(단지 관리되는 심볼릭 링크일 뿐입니다). 가장 간단한 해결책은 실행 중인 커널과 일치하는 특정 커널 헤더 버전을 다시 설치하는 것 같습니다.

답변3

비슷한 문제가 발생했습니다.

나는:

root@:/# uname -r
5.4.0-81-generic

root@:/# cat /usr/src/linux-headers-$(uname -r)/include/config/kernel.release
5.4.128

운없이 linux-headers 패키지를 다시 설치했습니다. /usr/src/linux-headers-$(uname -r)/include/config/kernel.releasefrom 5.4.128의 값을 편집하고 변경했는데 성공적으로 실행 5.4.0-81-generic되었고 vboxconfigvirtualbox도 성공적으로 실행되었습니다.

관련 정보