Computer >> 컴퓨터 >  >> 소프트웨어 >> 가상 머신

VirtualBox 커널 드라이버 오류 해결(rc=-1908) – Debian/Ubuntu에서 gcc-12 누락

VirtualBox 커널 구동이 설치되지 않았습니다(gcc-12 누락)

업데이트 날짜:2024년 2월 5일

직면하고 있는 문제는 다음과 같습니다. 데비안 기반 시스템(아마도 Ubuntu 또는 그 버전 중 하나)을 사용하고 있습니다. 최근에 VirtualBox의 새 버전도 포함하는 시스템 전체 업데이트를 실행했습니다. 업스트림 VirtualBox 저장소를 사용합니다. 업데이트를 적용한 후에는 더 이상 가상 머신을 실행할 수 없습니다.

다음 오류가 발생합니다:커널 드라이버가 설치되지 않았습니다(rc=-1908). VirtualBox Linux 커널 드라이버가 로드되지 않았거나 올바르게 설정되지 않았습니다. 루트로 '/sbin/vboxconfig'를 실행하여 다시 설정해 보세요. 그리고 거기에 있습니다. 이제 자세히 알아보고 이 문제를 해결해 볼까요?

자세한 문제

전체 오류 메시지는 다음과 같습니다:

커널 드라이버가 설치되지 않았습니다(rc=-1908).

VirtualBox Linux 커널 드라이버가 로드되지 않았거나 올바르게 설정되지 않았습니다.

를 실행하여 다시 설정해 보세요.

'/sbin/vboxconfig'

루트로.

시스템에 EFI 보안 부팅이 활성화되어 있는 경우 커널 모듈(vboxdrv, vboxnetflt, vboxnetadp, vboxpci)을 로드하기 전에 서명해야 할 수도 있습니다. 자세한 내용은 Linux 시스템 설명서를 참조하세요.

위치:suplibOsInit 내용:3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - 지원 드라이버가 설치되지 않았습니다. Linux에서는 반환된 ENOENT를 엽니다.

VirtualBox 커널 드라이버 오류 해결(rc=-1908) – Debian/Ubuntu에서 gcc-12 누락

공평하게 말하자면, 이 오류 메시지에는 보안 부팅 관련 항목이 포함되어 있기 때문에 약간 오해의 소지가 있습니다. 이는 전혀 관련이 없을 가능성이 높으며 오류 메시지의 마지막 부분은 첫 번째 부분과 다른 구문 및 문법을 사용합니다. 그러니 체계적으로 차근차근 진행해 보도록 하겠습니다.

명령줄에서 sudo /sbin/vboxconfig를 실행하면 다음이 표시됩니다:

[sudo] igor의 비밀번호:
vboxdrv.sh:VirtualBox 서비스를 중지합니다.
vboxdrv.sh:VirtualBox 서비스를 시작합니다.
vboxdrv.sh:VirtualBox 커널 모듈 구축.
vboxdrv.sh:실패:/var/log/vbox-setup.log를 보고 무엇이 잘못되었는지 알아보세요.

VirtualBox를 설정하는 중에 문제가 발생했습니다. 설정 프로세스를 다시 시작하려면 다음을 실행하세요.
/sbin/vboxconfig
루트로. 시스템이 EFI 보안 부팅을 사용하는 경우
커널 모듈(vboxdrv, vboxnetflt, vboxnetadp, vboxpci)을 로드하기 전에
그들. 자세한 내용은 Linux 시스템 설명서를 참조하세요.

/var/log/vbox-setup.log에는 다음이 있습니다:

메인 VirtualBox 모듈을 구축합니다.
모듈 구축 오류:
V=1 CONFIG_MODULE_SIG=CONFIG_MODULE_SIG_ALL=-C /lib/modules/6.5.0-14-generic/build M=/tmp/vbox.0 SRCROOT=/tmp/vbox.0 -j20 모듈 만들기
make[1]:경고:-j20이 submake에 강제 적용됨:작업 서버 모드를 재설정 중입니다.
경고:컴파일러는 커널을 빌드하는 데 사용된 것과 다릅니다.
커널은 x86_64-linux-gnu-gcc-12(Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0에 의해 구축되었습니다.
귀하는 다음을 사용하고 있습니다:
make -f ./scripts/Makefile.build obj=/tmp/vbox.0 need-builtin=1 need-modorder=1
# cmd_mod /tmp/vbox.0/vboxdrv.mod
printf '% s
' linux/SUPDrv-linux.o SUPDrv.o SUPDrvGip.o SUPDrvSem.o SUPDrvTracer.o SUPLibAll.o
...
/tmp/vbox.0/linux/SUPDrv-linux.c  ; ./tools/objtool/objtool --hacks=jump_label --hacks=noinstr --hacks=skylake --retpoline --rethunk --sls --stackval --static-call --uaccess --prefix=16 --module /tmp/vbox.0/linux/SUPDrv-linux.o
/bin/sh:1:gcc-12:찾을 수 없음
make[2]:*** [scripts/Makefile.build:251:/tmp/vbox.0/linux/SUPDrv-linux.o] 오류 127
make[1]:*** [Makefile:2037:/tmp/vbox.0] 오류 2
make:*** [/tmp/vbox.0/Makefile-footer.gmk:133:vboxdrv] 오류 2

로그에는 관련성이 없는 수많은 컴파일 내용이 포함되어 있기 때문에 일부러 로그를 잘랐습니다. 게다가 make 컴파일 로그를 읽는 것도 약간 어려울 수 있습니다. 하지만 로그 끝을 보고 '오류' 또는 '찾을 수 없음'이라고 표시된 줄을 검색하고 싶습니다.

실제로 우리의 기록에는 다음과 같은 내용이 있습니다:

/bin/sh:1:gcc-12:찾을 수 없음

어떤 이유로든 시스템에는 VirtualBox 커널 모듈을 빌드하는 데 필요한 gcc-12 컴파일러가 없습니다. 아시다시피, 내 Kubuntu 22.04 상자 중 하나에는 이 기능이 있고 다른 하나에는 없습니다. 거기. 나는 당신이 이 패키지를 가지고 있지 않은 이유에 대해 수만가지 설명하고 싶지 않습니다. 주요 아이디어는 무엇이 잘못되었는지 파악하고 수정하는 것입니다.

해결책

실제 수정은 매우 실망스럽습니다. gcc-12 패키지를 설치해야 합니다.

sudo apt install gcc-12

그런 다음 이 명령이 완료되면 다음을 다시 실행하세요:

sudo /sbin/vboxconfig

명령이 성공적으로 완료되면 VirtualBox 사용으로 돌아갈 수 있습니다.

결론

이 문제는 여러 요인의 조합으로 인해 발생합니다. 새로운 Ubuntu 커널, 새로운 VirtualBox 버전, 호환되지 않는 컴파일러 및 드라이버 등. 불행하게도 괴상한 것들이 많습니다. -1908 오류 메시지가 나타나면 체계적으로 작업하는 것이 가장 좋습니다. 구성 명령을 수동으로 다시 실행하고, 터미널 창에서 범인을 찾을 때까지 자세한 오류 로그를 추적하고 추적하세요.

알고 보니 이런 종류의 오류가 발생한 가장 최근의 원인은 gcc-12 컴파일러 패키지가 누락되었기 때문인 것 같습니다. 일단 설치하면 VirtualBox 드라이버가 성공적으로 컴파일됩니다. 그 후에는 가상화 소프트웨어를 사용하고 문제 없이 가상 머신을 시작할 수 있습니다. 이 작은 튜토리얼이 생산성을 회복하는 데 도움이 되기를 바랍니다. 조심하세요, 여러분.

건배.