Por que preciso recarregar os módulos do kernel para o virtualbox após uma atualização do kernel?

10

Após a última atualização do kernel no Ubuntu 12.10, tive que recarregar manualmente dois módulos do kernel para o Virtualbox.

modprobe vboxdrv e modprobe vboxnetflt

Não sei o suficiente sobre o sistema para dizer se isso é um bug ou se deveria ser assim, mas é bastante inconveniente. Como um usuário novo no Ubuntu, consumia bastante tempo para descobrir o que precisava ser feito.

Foi uma atualização automática, que me pediu para reiniciar quando terminar. Após a reinicialização, as máquinas virtuais não funcionariam até que eu recarregasse os módulos.

Então, minhas perguntas são: isso é normal? Isso acontecerá com outros pacotes ou apenas com o Virtualbox? O atualizador deve fazer isso automaticamente? Devo registrar um relatório de bug e, em caso afirmativo, para quem?

Amon
fonte
Você deve reiniciar após uma atualização do kernel, a menos que esteja usando alguma ferramenta para corrigir o kernel em execução atual. Caso contrário, você estará usando o kernel antigo. A reinicialização cuidará da recarga do módulo.
Javier Rivera

Respostas:

2

Os módulos host do VirtualBox são criados a partir do código-fonte em sua máquina. Módulos para um kernel não necessariamente funcionam (ou funcionam corretamente) em outro kernel. Eles normalmente são recompilados após a atualização do kernel.

Quando você instala uma nova versão do kernel, seu kernel antigo ainda está em execução. Como Javier Rivera diz , você deve reiniciar para usar o novo kernel.

Portanto, se seu objetivo é executar o VirtualBox no novo kernel , você precisará reiniciar; os módulos serão carregados quando você o fizer (após serem reconstruídos da fonte, se necessário).

No entanto, se seu objetivo é usar os módulos antigos com o kernel antigo, você pode recarregá-los manualmente modprobe(como você está fazendo).

Se você acredita que é um bug que os módulos do VirtualBox não continuam trabalhando para o kernel em execução antes da reinicialização, você pode reportar esse erro. Se você estiver usando a versão do VirtualBox fornecida oficialmente no Ubuntu (em vez da versão da fonte de software da Oracle), recomendo que você relate isso no VirtualBox downstream (ou seja, no VirtualBox do Ubuntu). Por favor, leia este guia cuidadosamente primeiro. Também há informações úteis sobre relatórios de erros nesta pergunta .

Se você pode produzir isso com a versão upstream do VirtualBox ( especialmente se isso ocorrer em sistemas não-Ubuntu, mas eu não acho que isso seja essencial aqui), recomendo denunciá-lo (ou também denunciá-lo) a montante (pesquisar primeiro).

Eu recomendo não aceitar esta resposta imediatamente; talvez alguém possa explicar melhor por que os módulos são descarregados.

Eliah Kagan
fonte
2

Se você precisou executar '/etc/init.d/vboxdrv setup' após a atualização e antes de carregar os novos módulos do kernel, verifique se o dkms está instalado e atualizado corretamente. Este é o componente que recompilou os módulos quando você reinicia após atualizar o kernel. Ele também deve carregar os módulos quando terminar. Essa é a única circunstância em que eu poderia falhar nos meus testes. Se não for esse o caso, eu aceitaria o conselho de Eliah e apresentaria um relatório de erro.

sean_m
fonte