Fedora 22의 kmod-VirtualBox 버전 불일치

Fedora 22의 kmod-VirtualBox 버전 불일치

VirtualBox 5를 설치하고 Fedora에서 약 5~6주 동안 아무런 문제 없이 작업했습니다.이 가이드를 따르세요.

그런데 어제 실행한 후 dnf update작동이 멈췄습니다.

VirtualBox가 자동으로 시작되지만 가상 머신을 시작하려고 하면 다음과 같은 메시지가 나타납니다.

종료 코드 1(0x1)로 시작하는 동안 가상 머신 'MyVM'이 예기치 않게 종료되었습니다.

결과 코드: NS_ERROR_FAILURE(0x80004005)
구성 요소: 머신
인터페이스: IMachine

드릴다운에 대한 추가 지침은 다음과 같습니다.

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

그래서 지금까지 운 없이 시도한 내용은 다음과 같습니다.
1. 내가 설치한 항목을 확인합니다.

$ dnf list installed | grep kmod-VirtualBox*
akmod-VirtualBox.x86_64                    4.3.30-1.fc22                @rpmfusion-free-updates
kmod-VirtualBox-4.1.10-200.fc22.x86_64.x86_64
kmod-VirtualBox-4.1.7-200.fc22.x86_64.x86_64

2. 저장소에서 사용 가능한 항목을 확인하세요.

$ dnf provides kmod-VirtualBox
Last metadata expiration check performed 0:03:30 ago on Sun Oct 18 10:37:47 2015.
kmod-VirtualBox-4.3.30-1.fc22.x86_64 : Metapackage which tracks in VirtualBox kernel module for newest kernel
Repo        : rpmfusion-free-updates

kmod-VirtualBox-4.3.28-1.fc22.x86_64 : Metapackage which tracks in VirtualBox kernel module for newest kernel
Repo        : rpmfusion-free

3. 업데이트된 kmod를 설치해 보십시오:

$ sudo dnf install --allowerasing kmod-VirtualBox-4.3.30-1.fc22.x86_64
Last metadata expiration check performed 1:43:30 ago on Sun Oct 18 09:05:58 2015.
Error: nothing provides kernel-uname-r = 4.0.8-300.fc22.x86_64 needed by kmod-VirtualBox-4.0.8-300.fc22.x86_64-4.3.30-1.fc22.x86_64

4. uname을 실행하여 현재 버전을 확인합니다.

$ uname -r
4.2.3-200.fc22.x86_64

무엇을 시도하든 동일한 오류가 계속 발생하며 오래된 커널을 제공하는 것은 없습니다. 내가 아는 한, 그러면 안 된다.

나는 달려갔지만 dnf clean all도움 dnf clean metadata이 되지 않았다. 나는 또한 이것을 실행했는데 dnf update virtualbox최신 버전이 설치되어 있다고 알려줍니다.이 문제를 해결하는 방법에 대한 아이디어가 있습니까?

참고: 달리기도 시도했지만 dnf update kmod-VirtualBox아무 일도 일어나지 않았습니다. "할 일이 없습니다"라는 메시지가 표시되었습니다.

답변1

이는 현재 kmod 패키지가 아직 저장소에 없기 때문에 자주 발생합니다.

VirtualBox를 완전히 다시 설치할 필요는 없지만 kmod 패키지를 제거해야 할 수도 있습니다.

# dnf remove kmod-VirtualBox-*

그러나 이것이 대안이므로 akmod 패키지를 제거하고 싶지 않습니다. 필요한 akmod 패키지가 설치되어 있고 사전 빌드된 kmod 패키지가 없는 경우 시스템은 필요한 경우(커널 업데이트 후) VirtualBox 커널 모듈을 빌드하므로 이는 항상 사전 빌드된 kmod 패키지를 사용하여 작동해야 합니다. 다양하며 사전 구축된 kmod 패키지를 항상 사용할 수 있는 것은 아닙니다.

빌드에 필요한 akmod 패키지와 커널 헤더를 설치/업데이트합니다.

# dnf install akmod-VirtualBox kernel-devel

빌드 프로세스를 수동으로 시작할 수 있습니다.

# akmods

강제로 다시 빌드해야 할 수도 있습니다(아래 참조).

# akmods --force

모듈 서비스는 더 이상 오류 메시지를 인쇄하지 않습니다.

# systemctl restart systemd-modules-load

이제 VirtualBox는 커널 업데이트 후에도 가상 머신을 부팅할 수 있습니다.

이전 kmod 패키지가 여전히 설치되어 있으면 빌드 프로세스가 실패할 수 있습니다. 이런 경우에는 하나씩 제거하신 후 akmods다시 실행해 보시기 바랍니다.

고쳐 쓰다:
이 질문은 Fedora 25에서도 여전히 관련이 있습니다. --force특히 빌드를 수동으로 실행하는 경우 위에 표시된 옵션을 사용하여 akmods를 실행해야 할 수도 있습니다 . 이 옵션을 잊어버리면 경고만 표시되고 아무 작업도 수행되지 않을 수 있습니다(오류 4485):

Ignoring VirtualBox-kmod as it failed earlier              [WARNING]

이는 모든 필수 패키지가 설치되었음에도 불구하고 커널 업데이트 및 후속 재부팅 후 VirtualBox가 가상 머신을 시작하지 못하는 경우("커널 드라이버가 설치되지 않음") 이유일 수도 있습니다. 때때로 akmods 도구는 이전 빌드 시도가 실패했다고 불평하고 새 빌드를 시작하는 대신 경고만 표시합니다. 재부팅 중에 이런 일이 발생하면 나중에 VirtualBox 모듈을 자동으로 다시 빌드해야 할 때 시스템 로그에서 이 경고를 찾을 수 있으며, --force이후에 수행해야 하는 빌드 프로세스가 실제로 시작되도록 해당 옵션을 사용하여 akmods를 수동으로 실행 해야 합니다 . 재부팅은 시작하는 동안 실행됩니다. 바라보다오류 4485.

답변2

그래서 많은 고민 끝에 제가 해결한 방법은 다음과 같습니다.

지난번에 dnf update커널 업데이트가 있었는데 제 경우에는 버전 4.1에서 버전 4.2로 바뀌었습니다... 그래서:

1. 먼저 사용하고 있던 이제 더 이상 사용되지 않는 kmod-VirtualBox를 제거했습니다.

$ dnf list installed | grep kmod-VirtualBox*
akmod-VirtualBox.x86_64                    4.3.30-1.fc22                @rpmfusion-free-updates
kmod-VirtualBox-4.1.10-200.fc22.x86_64.x86_64
kmod-VirtualBox-4.1.7-200.fc22.x86_64.x86_64

$ sudo dnf remove kmod-VirtualBox-4.1.10-200.fc22.x86_64.x86_64
$ sudo dnf remove kmod-VirtualBox-4.1.7-200.fc22.x86_64.x86_64
$ sudo dnf remove akmod-VirtualBox.x86_64

마지막 것(akmod)은 필요하지 않을 수도 있지만 어쨌든 했습니다.

2. VirtualBox 자체를 삭제하고 다시 시작했습니다.

$ dnf list installed | grep virtualbox
VirtualBox-5.0.x86_64                      5.0.6_103037_fedora22-1      @virtualbox
$ sudo dnf remove VirtualBox-5.0.x86_64
$ shutdown -r now

3. 시스템을 다시 시작한 후 virtualbox를 다시 설치했고 올바른 kmod가 설치되었습니다.

$ sudo dnf install VirtualBox-5.0-5.0.6_103037_fedora22-1.x86_64

이제 다시 작동합니다.

이 문제를 알아내려고 하루 종일 낭비했기 때문에 이것이 동일한 문제를 가진 누군가에게 도움이 되기를 바랍니다. :)


노트:다시 설치하기 전에 다음 명령을 사용하여 vboxdrv를 수동으로 로드해 보십시오:

$ sudo /etc/init.d/vboxdrv setup

제가 아는 한, 어떤 이유에서인지 운전자는 더 이상 주변에 없습니다...

$ sudo /etc/init.d/vboxdrv setup
sudo: /etc/init.d/vboxdrv: command not found

...그래서 다시 설치했더니 문제가 해결되었습니다.

관련 정보