¿Cómo pasó esto? (respuesta larga anterior)

¿Cómo pasó esto? (respuesta larga anterior)

Ejecutando Ubuntu 14.04 en Oracle VirtualBox 4.3.24 y completamente atascado con las crecientes adiciones de invitados. Pasé bastante tiempo buscando una solución en línea, pero nada ayudó...

ingrese la descripción de la imagen aquí

Como se sugiere a continuación, intenté montar manualmente y también descargar ISO de la web (versión que coincide con VirtualBox). El mismo error:

ingrese la descripción de la imagen aquí

EDITAR:

Ahora algunas carpetas se volvieron de "sólo lectura", lo que causa grandes problemas. Incluso instalar una imagen nueva de Ubuntu 14.04 no ayuda... Entonces, reinstalar VirtualBox...

Respuesta1

Pude resolver el problema de montaje reinstalando la imagen de Linux:

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

Por cierto, todo empezó con la actualización de VirtualBox. El portapapeles bidireccional dejó de funcionar, así que intenté reinsertar la ISO de Guest Additions. Esto causó las cosas anteriores. Ahora, Guest Additions se vuelve a montar, pero el portapapeles no funciona...

Respuesta2

TL;DR esto se puede solucionar rápidamente reiniciando.NO USE apt-get. Vea en la parte inferior, "¡Simplemente reinicie!".


¿Cómo pasó esto? (respuesta larga anterior)

Exactamente este tipo de problema surgirá si:

  • actualizar el kernel (digamos de .66 a .67)
  • ejecute apt-get autoremovey de alguna manera elimine el kernel en ejecución, o elimine manualmente el kernel "antiguo", eliminando así todos los módulos de /lib/modules/kernel.66
  • no reinicie, manteniendo así en ejecución el "antiguo" kernel .66. Los módulos cargados permanecen en la memoria y todo funciona, perono se pueden cargar nuevos módulosya que se han eliminado los módulos .66.
  • intente hacer cualquier cosa que requiera cargar un módulo que aún no se haya cargado

Y la instalación de VirtualBox ISO puede requerir exactamente eso: cargar el módulo de soporte ISO9660.

El módulo solicitado ahora ya no se puede cargar automáticamente porque el kernel en ejecución (.66) no encuentra nada en /lib/modules/kernel.66.El módulo existe, pero está en /lib/modules/kernel.67, del cual el kernel .66 actual no sabe nada (y no se recomienda cargar un módulo que no coincida).

Reinstalar el kernel sin nombre, por supuesto, reinstalará los módulos del kernel en ejecución, lo que hará que ../.66/.../isofs.ko esté disponible nuevamente y hará innecesario el reinicio.Esta es una degradación del kernel instalado y el problema de actualización persistirá(vea abajo).

Es decir, cuando ejecute el CD de Adiciones, se instalará para elcorrernúcleo .66,noel kernel .67 actualizado (que aún no se está ejecutando).

Si te encuentras en tal situación también puedesciertamentesolucionarlo reiniciando (el nuevo kernel .67 en ejecución encontrará sus módulos), yprobablementecargando el módulo que pertenece al nuevo kernel ( isofses bastante estable), que, a menos que haya realizado una actualización importante del kernel, seguirá siendo compatible (¡Esto todavía no se recomienda!):

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

Este es el error de raíz que estás recibiendo ("tipo de sistema de archivos desconocido").

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

Entonces verificamos qué versión de los módulos está instalada. Debería ser .66:

# ls /lib/modules
3.13.0-67-generic

...pero solo hay un directorio y es .67 (el directorio .66 puede estar allí, pero vacío; en este caso du -sh /lib/modules/*indicará cuánto espacio ocupan los distintos directorios, lo que permitirá distinguir entre los vacíos y los llenos).

Reinstalar la imagen antigua del kernel sin volver a arrancar no solucionará el problema real

Reinstale el kernel en ejecución con sus módulos y encabezados. Ahora tiene ambos núcleos, grubconfigurados para cargar el núcleo más nuevo.

Se puede montar el CD-ROM ISO (porque el módulo ahora está presente) y los módulos VBox se compilarán (porque se han instalado los encabezados).

Compilará módulos para el kernel .66 en ejecución y funcionarán... por un tiempo.

En el primer reinicio, se encontrará con un kernel .67 sin ninguna adición de VirtualBox.

Reinstalar el kernel tampoco solucionará el problema real

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

Como se indicó anteriormente, en el primer reinicio se encontrará con un kernel degradado (o mejor, "no actualizado"). Muy pronto, Ubuntu intentará actualizarlo... y volverá al punto de partida (ver más abajo: "degradación del kernel"), y deberá reiniciar e instalar Virtualbox Additions nuevamente.

Aplicar parches en el módulo ISO tampoco solucionará el problema real

Lo más probable es que podamos forzar la carga del módulo ISO9660 de todos modos, ya que no se realizó ningún trabajo entre los núcleos 66 y 67 y el binario esencialmente no ha cambiado, así que intentamos:

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

Sin errores. Funcionó. Kernel .66 módulo cargado desde el kernel .67. Intentemos nuevamente montar el CD-ROM:

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

¡Ey! ¡Funcionó!

Sí, pero esto todavía no será de gran ayuda, porque el CD que se está instalando es VirtualBox Additions, que requiere elcorrerencabezados del kernel que se instalarán. Si el kernel en ejecuciónmódulosya no están ahí,lo más probable es que tampoco lo hagan los encabezados del kernel. Por lo tanto, es posible que el CD-ROM esté montado, pero el instalador fallará al iniciarlo.

Además, incluso si de alguna manera encontró los encabezados y la compilación no falló, los módulos de Virtualbox recién compilados no tendrán adónde ir, ya que el directorio de módulos .66 se limpió (esa es la razón por la que el isofsmódulo no se encontró en la primera ¡lugar!).

Pero supongamos que soluciona todo eso restaurando los directorios de módulos y encabezados del kernel anterior: ahora esencialmente ha realizado una costosa (y parcial) degradación del kernel, y las adiciones seránperdidoen el próximo reinicio, junto con el resto del kernel .66, cuando el kernel .67 recién instalado cobre vida. Debido a que el CD Virtualbox Additions se lanzó desde el kernel .66 con los encabezados .66 instaló diligentemente los módulos del kernel .66, no los .67.

Degradar el kernel funcionará... por un tiempo

Si nosotroseliminarel kernel .67 y reinstale el kernel .66 con módulos en su lugar, las cosas estarán bien por un tiempo. No es necesario reiniciar, como en la solución "forzar módulo ISO" anterior.

Y un reinicio no perderá nada, ya que no hay instalado ningún kernel desafiado por Additions.

Pero de esta manera el kernel seguirá estando en la lista "para ser actualizado", y este mismo problema seguramente surgirá tarde o temprano (normalmente al día siguiente o la semana siguiente, dependiendo de la frecuencia de las actualizaciones automáticas).

Otorgada,Ahora puedes hacer que surja en algún momento más apropiado de tu elección., que podría valer bastante. Una actualización forzada en medio de un maratón de codificación para un proyecto que está retrasado es el diablo.

Entonces: ¡simplemente reinicia! (y vuelva a ejecutar el CD de Adiciones).

Al reiniciar, se activará el kernel .67 ya instalado y más reciente y todos sus módulos y encabezados estarán ahí; entre estos, el isofsmódulo para leer sistemas de archivos de CD ISO9660.

 sudo reboot

Después del reinicio, el CD-ROM funcionará y se podrán instalar Guest Additions.

La "mejor" secuencia para actualizar el kernel en VirtualBox con Additions es:

 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

(Es posible que el kernel anterior más reciente no se elimine automáticamente por razones de seguridad, para permitirle "regresar").

Respuesta3

Según la respuesta de otros, esto generalmente se puede solucionar reiniciando.

De alguna manera el módulo "iso9660" no está cargado. depmodescanea todos los módulos y crea dependencias de módulos.

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

esto solucionará el problema.

Respuesta4

Resolví esto (en Ubuntu 16.04) actualizando paquetes y reiniciando:

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

información relacionada