Kernel Panic: no se sincroniza: VFS: no se puede montar la raíz fs en el bloque desconocido (0,0)

98

Al intentar actualizar de 10.10 a 11.04, todo parecía ir bien hasta el reinicio. Este mensaje de error es lo que aparece:

Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

¿Cómo arreglamos eso?

Jeffrywith1e
fuente
1
Es posible que sus problemas no tengan nada que ver con su sistema principal, sino con sus medios de instalación (memoria USB) ... ➪ vea aquí: askubuntu.com/a/632636/479118
Frank Nocke
No puedo publicar una respuesta ya que no tengo suficiente representante, pero cuando tuve este problema, lo resolví iniciando en una memoria USB en vivo, montando las particiones principal y EFI , habilitando la conexión en red y corriendo sudo apt-get install linux-image-genericpara actualizar a la última versión. núcleo.
Owen

Respuestas:

84

Te faltan los initramfs para ese núcleo. Elija otro kernel del menú GRUB en Opciones avanzadas para Ubuntu y ejecútelo sudo update-initramfs -u -k versionpara generar el initrd para version(reemplace versioncon la cadena de versión del kernel como 4.15.0-36-generic) entonces sudo update-grub.

psusi
fuente
2
¿Qué pasa si se muestra el kernel panic al seleccionar la opción de kernel única que existe para ese sistema operativo (en un escenario de arranque múltiple), ¿cómo se va a iniciar update-initramfs?
knocte
3
@Dew, pobre comentario ...
psusi
3
@knocte, ver la respuesta de Tomeu Roig.
psusi
1
Parece una respuesta pobre pero es la verdad!
user3215
2
No puedo ingresar Ubuntu Systemo Recovery Mode, ¿cómo puedo ejecutar ese comando para probar si funciona?
Casper
53

Comience con un livecd, abra un terminal

sudo fdisk -l
sudo mount /dev/sdax /mnt
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo chroot /mnt 

y ahora puedes hacer update-initramfsy actualizar-grub sin errores.

update-initramfs -u -k 2.6.38-8-generic (or your version)

Si no conoces tu versión. Utilizar:

dpkg --list | grep linux-image

Y solo actualiza Grub.

update-grub2

Reinicie su sistema.

Tomeu Roig
fuente
1
He agregado sudo mount --bind /dev/pts /mnt/dev/ptsy sudo mount --bind /sys /mnt/sysen mi edición; sin esto, se update-grub2quejó.
Hbf
55
¿Cómo puedo averiguar exactamente version ?
Knocte
1
Ninguno de los puntos de montaje existe más allá del primero / dev / sdax si está utilizando EFI.
Paul Gregoire
@knocte intente ls /mnt/booty busque la última versión del kernel. O si quieres hacerlo bien, de leer el menuentry 'Ubuntu'de/mnt/boot/grub/grub.cfg
Ciro Santilli新疆改造中心法轮功六四事件
Trabajado en Ubuntu 14.04! El initrdfaltaba /boot. La pregunta es: ¿cómo es posible que el archivo simplemente desaparezca? No hice nada que pareciera peligroso.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
22

En mi situación, el problema era que /bootestaba al 100% de su capacidad, por lo que las últimas 2 actualizaciones del kernel no se habían completado con éxito, por lo tanto, al reiniciar cuando GRUB2 seleccionó el último Kernel, falló.

Resolví el problema arrancando en el núcleo más antiguo instalado y eliminando algunos núcleos no utilizados con aptitude. Al usar aptitude , después de que se realizó la desinstalación, dpkg intentó automáticamente configurar los paquetes rotos, y esta vez tuvo éxito.

sheepeatingtaz
fuente
3
Este fue el más cercano a mi solución; solo ejecutar dpkg --configure -afue suficiente para activar el enlace update-initramfs y reparar el kernel roto.
Simétrico
¿Quiere decir que tenía una /bootpartición separada ?
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
1
Era un servidor configurado antes de mi llegada, y estaba configurado con / boot en su propia partición y actualizaciones desatendidas
sheepeatingtaz
3
Puede usar sudo apt-get autoremovepara eliminar núcleos antiguos en caso de que se quede sin espacio /boot.
Florian Brucker
Arranqué en un kernel anterior, hice un sudo apt-get autoremove, reinicié nuevamente (kernel anterior), luego hice un sudo apt-get dist-upgrade, y esto funcionó. Esto fue en una pequeña máquina de prueba que tengo. Sin embargo, el mismo problema, 100%/boot
jmlumpkin
19

En caso de que esto ocurriera después de una actualización de kernel abortada (por ejemplo, un bloqueo del sistema mientras aptitude safe-upgrade),

  1. arrancar con un núcleo antiguo y
  2. ejecutar dpkg --configure -a.

Esto completará la actualización, incluida la configuración de arranque como explica psusi .

Rafael
fuente
1

Los mensajes de arranque del kernel le indican qué discos puede usar

Por ejemplo, si en mi prueba la configuración de la máquina virtual Linux 4.17 reemplazo el correcto root=/dev/vdacon root=/dev/vdbel último mensaje es:

---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)-

Sin embargo , algunas líneas arriba, muestra mensajes de tipo:

VFS: Cannot open root device "vdb" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:
fe00          524288 vda
 driver: virtio_blk

que básicamente me dice directamente que vdbno se encontró, pero que hay una /dev/vdaque se puede leer debido al virtio_blkcontrolador ( CONFIG_VIRTIO_BLK=y).

Ciro Santilli 新疆 改造 中心 法轮功 六四 事件
fuente
0

Además de las instrucciones de Tomeu, antes de chroot necesitaba:

sudo mount --bind /dev /mnt/dev

Además, después del chroot:

cp -r /usr/lib/i386-linux-gnu/pango /usr/lib/

( Tengo esto de aquí. )

Jason
fuente
1
Tomeu ya se ha mencionado montaje /deven /mnt/dev.
Lekensteyn
0

Recibí este problema debido a que mi partición / boot estaba llena, por lo que mis actualizaciones del kernel habían fallado. Logré arreglar esto arrancando desde un núcleo antiguo en el menú de GRUB.

Cuando logré arrancar, comencé a purgar los núcleos antiguos, pero logré tener algunos problemas de dependencia, así que primero tuve que desinstalar el paquete del servidor Linux

apt-get remove linux-server
apt-get update
apt-get -f install
apt-get upgrade

Luego reinicié y todo estaba funcionando bien.

Christopher Käck
fuente