kmod-incompatibilidade de versão do VirtualBox no Fedora 22

2

Eu tenho o VirtualBox 5 instalado e trabalhando no Fedora por algumas 5-6 semanas sem problemas após seguindo este guia .

No entanto, depois que corri um dnf update ontem, ele parou de funcionar.

O próprio VirtualBox é lançado, mas quando eu tento iniciar a VM aqui é o que eu recebo:

The virtual machine 'MyVM' has terminated unexpectedly during startup with exit code 1 (0x1).

Result Code: NS_ERROR_FAILURE (0x80004005)
Component: Machine
Interface: IMachine

Com algumas instruções adicionais sobre detalhamento:

Kernel Driver is not installed (rc= -1908)
The VirtualBox Linux kernel driver (kvboxdvr) is not loaded...

Então aqui está o que eu tentei até agora sem sorte:
1.Checked o que eu instalei:

$ 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.Verifique o que está disponível no repositório:

$ 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.Tentou instalar o kmod atualizado:

$ 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. Execute o uname para verificar o que é a versão atual:

$ uname -r
4.2.3-200.fc22.x86_64

Não importa o que eu tente, eu continuo recebendo este mesmo erro que nada fornece um kernel desatualizado. Tanto quanto eu entendo, não deveria.

Eu corri um dnf clean all e dnf clean metadata , mas isso não ajudou. Eu também já corro o dnf update virtualbox e ele me diz que tenho a última versão instalada. Alguma ideia de como resolver este problema?

Observação: eu também tentei executar o dnf update kmod-VirtualBox , mas nada acontece, ele me diz algo como "nada a fazer".

    
por Fawix 18.10.2015 / 17:20

2 respostas

7

Isso acontece de tempos em tempos porque o pacote atual do kmod às vezes ainda não está no repositório.

Você não precisa reinstalar o VirtualBox completamente, mas a desinstalação dos pacotes do kmod pode ser necessária:

# dnf remove kmod-VirtualBox-*

No entanto, você não deseja desinstalar o pacote akmod porque esta é a sua alternativa. Se você instalar os pacotes akmod requeridos (e não pacotes pré-construídos), seu sistema irá construir os módulos do kernel do VirtualBox quando necessário (após uma atualização do kernel), então isso deve sempre funcionar - ao contrário dos pacotes pré-build do kmod sempre disponível.

Instale / atualize o pacote akmod e os cabeçalhos do kernel necessários para a criação:

# dnf install akmod-VirtualBox kernel-devel

Você pode iniciar o processo de criação manualmente:

# akmods

Você pode ter que forçar uma reconstrução (veja abaixo):

# akmods --force

O serviço de módulos não deve mais imprimir mensagens de erro:

# systemctl restart systemd-modules-load

O VirtualBox agora deve ser capaz de iniciar o vms, mesmo depois das atualizações do kernel.

O processo de construção pode falhar se ainda houver pacotes antigos do kmod instalados. Nesse caso, desinstale-os um por um e execute akmods novamente.

Atualizar :
Esta questão ainda é relevante, mesmo no Fedora 25. Note que os akmods podem ter que ser executados com a opção --force como mostrado acima, especialmente ao executar a construção manualmente. Se você esquecer esta opção, ela pode simplesmente mostrar um aviso e não fazer nada ( Bug 4485 ):

Ignoring VirtualBox-kmod as it failed earlier              [WARNING]

Este também pode ser o motivo pelo qual o VirtualBox às vezes não inicia nenhuma máquina virtual ("driver do kernel não instalado") após uma atualização do kernel e reinicialização subseqüente, mesmo que todos os pacotes necessários estejam instalados. Às vezes, a ferramenta akmods reclama que a tentativa de compilação anterior não foi bem-sucedida e simplesmente mostra um aviso em vez de iniciar uma nova compilação. Se isso acontecer durante uma reinicialização, quando os módulos do VirtualBox devem ser recriados automaticamente, você encontrará este aviso mais tarde no seu log do sistema e terá que executar o akmods manualmente com a opção --force , para que ele realmente inicie o processo de compilação que deveria ser executado durante a reinicialização. Veja erro 4485 .

    
por 26.11.2015 / 13:47
2

Então aqui está como eu resolvi isso depois de muita confusão:

O último dnf update teve uma atualização do kernel, no meu caso isso me tirou da versão 4.1 para a versão 4.2 ... então:

1. Primeiro eu removi o agora, ultrapassado kmod-VirtualBox que eu estava usando:

$ 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

Este último (akmod) pode não ter sido necessário, mas eu fiz mesmo assim.

2.Eu removi o próprio VirtualBox e, em seguida, reinicie.

$ 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.Uma vez o sistema voltou da reinicialização Eu re-instalei o virtualbox e instalei o kmod correto:

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

Agora está funcionando novamente.

Espero que isso ajude alguém com o mesmo problema desde que eu perdi um dia inteiro tentando descobrir isso:)

Observação: antes de tentar a reinstalação, tente carregar manualmente o vboxdrv usando o seguinte:

$ sudo /etc/init.d/vboxdrv setup

No meu caso, por qualquer motivo, o motorista não estava mais lá ...

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

... então eu fiz uma reinstalação e resolvi o problema.

    
por 18.10.2015 / 22:37