TL; DR isto pode ser rapidamente corrigido reiniciando . Em seguida, o CD-ROM funcionará e as adições dos convidados serão instaláveis:
sudo reboot
A "melhor" sequência para atualizar o kernel no VirtualBox com o Additions é:
apt-get update
apt-get upgrade (or apt-get dist-upgrade)
reboot
(re)install VirtualBox Additions on the new kernel that is now running
apt-get autoremove
(O kernel antigo mais recente não pode ser removido automaticamente por razões de segurança, para permitir que você "volte").
Como isso aconteceu? (resposta longa anterior)
Exatamente esse tipo de problema surgirá se você:
- atualize o kernel (digamos de .66 para .67)
- execute
apt-get autoremove
e de alguma forma remova o kernel em execução, ou remova manualmente o kernel "antigo", removendo assim todos os módulos de /lib/modules/kernel.66
- não reinicializa, mantendo assim o kernel "antigo" .66 em execução. Os módulos carregados permanecem na memória e tudo funciona, mas nenhum novo módulo pode ser carregado desde que os módulos .66 tenham sido excluídos.
- tente fazer qualquer coisa que exija o carregamento de um módulo que ainda não tenha sido carregado
O módulo solicitado agora não pode mais ser carregado automaticamente, porque o kernel em execução (.66) não encontra nada em /lib/modules/kernel.66. O módulo existe , mas está em /lib/modules/kernel.67, do qual o kernel .66 atual não sabe nada (e não é recomendado carregar um módulo de incompatibilidade).
Reinstalar o kernel uname'd irá, claro, reinstalar os módulos do kernel em execução, tornando ../.66/.../isofs.ko disponível novamente e tornando a reinicialização desnecessária. Este é um downgrade do kernel instalado e o problema de atualização permanecerá (veja abaixo).
Ou seja, quando você executar o CD do Additions, ele será instalado para o kernel em execução .66, não o kernel .67 atualizado (que ainda não está em execução) .
Se você estiver em tal situação, você pode certamente consertá-la reinicializando (o novo kernel funcionando com o .67 encontrará seus módulos) e provavelmente carregando o módulo pertencente ao novo kernel ( isofs
é bastante estável), que, a menos que você tenha sofrido uma importante atualização do kernel, ainda será compatível ( isso ainda não é recomendado! ):
# mount /dev/cdrom /mnt
mount: unknown filesystem type 'iso9660'
Isso é o erro raiz que você está recebendo ("tipo de sistema de arquivos desconhecido").
# uname -a
Linux virtual 3.13.0-66-generic ...
Portanto, verificamos qual versão dos módulos está instalada. Deve ser 0,66:
# ls /lib/modules
3.13.0-67-generic
... mas há apenas um diretório e é .67 (o diretório .66 pode estar lá, mas vazio; nesse caso du -sh /lib/modules/*
dirá quanto espaço é ocupado pelos vários diretórios, permitindo contar entre os espaços vazios queridos e completos).
Reinstalar a imagem do kernel antigo sem re-grub não corrigirá o problema real
Você reinstala o kernel .66 com seus módulos e cabeçalhos. Agora você tem os dois kernels, com grub
configurado para carregar o mais novo .67.
O CD-ROM ISO pode ser montado (porque o módulo está presente) e os módulos VBox serão compilados (porque os cabeçalhos foram instalados).
Ele irá compilar módulos para o kernel .66, e eles funcionarão ... por um tempo.
Na primeira reinicialização, você se encontrará com um kernel .67 sem nenhuma adição ao VirtualBox.
Reinstalar a imagem do kernel antigo com re-grub e reinicializar também não corrigirá o problema real
Como acima, você reinicia e encontra-se com um kernel rebaixado. Muito em breve, o Ubuntu tentará atualizá-lo e você estará de volta onde você começou (veja abaixo: "downgrade do kernel").
Patch no módulo ISO também não corrigirá o problema real
Provavelmente, podemos forçar a carga do módulo ISO9660 da mesma forma, já que nenhum trabalho foi feito entre os kernels 66 e 67 e o binário é essencialmente inalterado, então tentamos:
# insmod /lib/modules/3.13.0-67-generic/kernel/fs/isofs/isofs.ko
Sem erros. Funcionou. Kernel .66 carregado módulo do kernel .67. Vamos tentar novamente montar o CD-ROM:
# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
Isso ainda não ajudará, porque o CD que está sendo instalado é o VirtualBox Additions, que requer a instalação dos cabeçalhos do kernel em execução . Se os módulos do kernel em execução não estiverem mais presentes, é provável que os cabeçalhos do kernel também não sejam.
Além disso, os módulos do Virtualbox recém-compilados não terão para onde ir, já que o diretório dos módulos .66 foi limpo.
Mas digamos que você conserte tudo isso: você basicamente fez um downgrade caro (e parcial) do kernel, e as adições serão perdidas na próxima atualização junto com o resto do kernel .66, exatamente como no caso acima. / p>
Fazer downgrade do kernel funcionará ... por um tempo
Se nós removermos o kernel .67 e reinstalarmos o kernel .66 com módulos em seu lugar, as coisas ficarão ótimas por um tempo. Não é necessário reiniciar, como na solução "force ISO module" acima.
E uma reinicialização não perderá nada, já que nenhum kernel desafiado por Additions está instalado.
Mas desta forma o kernel ainda estará na lista "a ser atualizado", e esse mesmo problema está fadado a surgir mais cedo ou mais tarde.
Concedido, agora você pode fazer com que surja em algum momento mais apropriado de sua escolha, o que pode valer bastante.
Apenas reinicie!
Reinicializando, o kernel .67 mais recente será ativado e todos os seus módulos e cabeçalhos estarão lá.
Então, após a reinicialização, o Guest Additions funcionará, e a atualização irá "pegar".