Como isso aconteceu? (resposta longa anterior)

Como isso aconteceu? (resposta longa anterior)

Executando o Ubuntu 14.04 no Oracle VirtualBox 4.3.24 e completamente preso na montagem de adições de convidados. Passei muito tempo procurando uma solução on-line, mas nada ajudou...

insira a descrição da imagem aqui

Conforme sugerido abaixo, tentei montar manualmente e também baixar o ISO da web (versão correspondente ao VirtualBox). O mesmo erro:

insira a descrição da imagem aqui

EDITAR:

Agora algumas pastas se tornaram "somente leitura", o que causa grandes problemas. Mesmo a instalação de uma nova imagem do Ubuntu 14.04 não ajuda... Então, reinstalar o próprio VirtualBox...

Responder1

Consegui resolver o problema de montagem reinstalando a imagem do Linux:

sudo apt-get install --reinstall linux-image-$(uname -r)

Aliás, tudo começou com a atualização do VirtualBox. A área de transferência bidirecional parou de funcionar, então tentei reinserir o ISO do Guest Additions. Isso causou as coisas acima. Agora, os Guest Additions estão montados novamente, mas a área de transferência ainda não funciona...

Responder2

DR isso pode ser rapidamente corrigido reiniciando.NÃO USE o apt-get. Veja na parte inferior, "Basta reiniciar!".


Como isso aconteceu? (resposta longa anterior)

Exatamente esse tipo de problema surgirá se você:

  • atualize o kernel (digamos de 0,66 para 0,67)
  • execute apt-get autoremovee 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 reinicie, mantendo assim o "antigo" kernel .66 em execução. Os módulos carregados permanecem na memória e tudo funciona, masnenhum novo módulo pode ser carregadojá que os módulos .66 foram excluídos.
  • tente fazer qualquer coisa que exija o carregamento de um módulo que ainda não foi carregado

E a instalação do VirtualBox ISO pode exigir exatamente isso – carregar o módulo de suporte ISO9660.

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, sobre o qual o kernel .66 atual não sabe nada (e não é recomendado carregar um módulo incompatível).

A reinstalação do kernel sem nome irá, obviamente, reinstalar os módulos do kernel em execução, disponibilizando assim ../.66/.../isofs.ko novamente e tornando desnecessária a reinicialização.Este é um downgrade do kernel instalado e o problema de atualização permanecerá(Veja abaixo).

Ou seja, quando você executa o Additions CD, ele será instalado para ocorrendonúcleo .66,nãoo kernel .67 atualizado (que ainda não está em execução).

Se você estiver em tal situação, você também podecertamenteconserte-o reiniciando (o novo kernel .67 em execução encontrará seus módulos) eprovavelmentecarregando o módulo pertencente ao novo kernel ( isofsé bastante estável), que, a menos que você tenha passado por uma atualização importante do kernel, ainda será compatível (isso ainda não é recomendado!):

# mount /dev/cdrom /mnt
mount: unknown filesystem type 'iso9660'

Este é o erro raiz que você está recebendo ("tipo de sistema de arquivos desconhecido").

# uname -a
Linux virtual 3.13.0-66-generic ...

Então verificamos qual versão dos módulos está instalada. Deveria 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; neste caso du -sh /lib/modules/*dirá quanto espaço é ocupado pelos vários diretórios, permitindo distinguir entre vazios e cheios).

Reinstalar a imagem antiga do kernel sem re-grub não resolverá o problema real

Você reinstala o kernel em execução com seus módulos e cabeçalhos. Agora você tem os dois kernels, grubconfigurados para carregar o kernel mais recente.

O CD-ROM ISO pode ser montado (porque o módulo agora 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 em execução, 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 o kernel também não resolverá o problema real

apt-get install --reinstall linux-image-$(uname -r)

Como acima, na primeira reinicialização você se encontrará com um kernel rebaixado (ou melhor, "não atualizado"). Muito em breve, o Ubuntu tentará atualizá-lo... e você estará de volta ao ponto de partida (veja abaixo: "downgrade do kernel") e precisará reiniciar e instalar o Virtualbox Additions novamente.

A aplicação de patches no módulo ISO também não resolverá o problema real

Provavelmente, podemos forçar o carregamento do módulo ISO9660 mesmo assim, já que nenhum trabalho foi feito entre os kernels 66 e 67 e o binário permanece essencialmente inalterado, então tentamos:

# insmod /lib/modules/3.13.0-67-generic/kernel/fs/isofs/isofs.ko

Sem erros. Funcionou. Módulo carregado do kernel .66 do kernel .67. Vamos tentar montar o CD-ROM novamente:

# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only

Ei! Funcionou!

Sim, mas isso ainda não vai ajudar muito, pois o CD que está sendo instalado é o VirtualBox Additions, que requer ocorrendocabeçalhos do kernel a serem instalados. Se o kernel em execuçãomódulosnão estão mais lá,as chances são de que os cabeçalhos do kernel também não. Portanto, o CD-ROM pode estar montado, mas o instalador falhará na inicialização.

Além disso, mesmo que de alguma forma tenha encontrado os cabeçalhos e a compilação não tenha falhado, os módulos recém-compilados do Virtualbox não terão para onde ir, já que o diretório de módulos .66 foi limpo (essa é a razão pela qual o isofsmódulo não foi encontrado no primeiro lugar!).

Mas digamos que você conserte tudo isso, restaurando os diretórios de módulos e cabeçalhos do kernel anterior: você basicamente fez um downgrade caro (e parcial) do kernel, e as adições serãoperdidona próxima reinicialização, junto com o restante do kernel .66, quando o kernel .67 recém-instalado ganha vida. Porque o CD Virtualbox Additions foi lançado a partir do kernel .66 com os cabeçalhos .66 e instalou devidamente os módulos do kernel .66, não os .67.

Fazer o downgrade do kernel funcionará... por um tempo

Se nósremovero kernel .67 e reinstalar o kernel .66 com módulos em seu lugar, as coisas ficarão ótimas por um tempo. Não é necessária reinicialização, como na solução "forçar módulo ISO" acima.

E uma reinicialização não perderá nada, já que nenhum kernel desafiado por Adições está instalado.

Mas desta forma o kernel ainda estará na lista "a ser atualizado", e este mesmo problema irá surgir mais cedo ou mais tarde (normalmente no dia seguinte, ou na próxima semana, dependendo da frequência das atualizações automáticas).

Garantido,agora você pode fazer com que surja em algum momento mais apropriado de sua escolha, o que pode valer bastante. Uma atualização forçada no meio de uma maratona de codificação para um projeto que está atrasado é o diabo.

Então: basta reiniciar! (e execute novamente o CD de adições).

Reiniciando, o kernel .67 já instalado e mais recente será ativado e todos os seus módulos e cabeçalhos estarão lá; entre estes, o isofsmódulo para leitura de sistemas de arquivos de CD ISO9660.

 sudo reboot

Após a reinicialização, o CD-ROM funcionará e os Guest Additions poderão ser instalados.

A “melhor” sequência para atualizar o kernel no VirtualBox com 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 pode não ser removido automaticamente por motivos de segurança, para permitir que você "volte").

Responder3

De acordo com outras respostas, isso geralmente pode ser corrigido reiniciando.

De alguma forma, o módulo "iso9660" não foi carregado. depmodverifica todos os módulos e cria dependências de módulo.

sudo depmod -a
sudo mount /dev/sr0 /mnt
ls -l /mnt

isso resolverá o problema.

Responder4

Resolvi isso (no Ubuntu 16.04) atualizando pacotes e reiniciando:

sudo apt-get update
sudo apt-get upgrade
sudo reboot

informação relacionada