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.
¿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)
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 exactamenteversion ?
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.
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),
arrancar con un núcleo antiguo y
ejecutar dpkg --configure -a.
Esto completará la actualización, incluida la configuración de arranque como explica psusi .
---[ 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).
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
sudo apt-get install linux-image-generic
para actualizar a la última versión. núcleo.Respuestas:
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 version
para generar el initrd paraversion
(reemplaceversion
con la cadena de versión del kernel como4.15.0-36-generic
) entoncessudo update-grub
.fuente
Ubuntu System
oRecovery Mode
, ¿cómo puedo ejecutar ese comando para probar si funciona?Comience con un livecd, abra un terminal
y ahora puedes hacer
update-initramfs
y actualizar-grub sin errores.Si no conoces tu versión. Utilizar:
Y solo actualiza Grub.
Reinicie su sistema.
fuente
sudo mount --bind /dev/pts /mnt/dev/pts
ysudo mount --bind /sys /mnt/sys
en mi edición; sin esto, seupdate-grub2
quejó.version
?ls /mnt/boot
y busque la última versión del kernel. O si quieres hacerlo bien, de leer elmenuentry 'Ubuntu'
de/mnt/boot/grub/grub.cfg
initrd
faltaba/boot
. La pregunta es: ¿cómo es posible que el archivo simplemente desaparezca? No hice nada que pareciera peligroso.En mi situación, el problema era que
/boot
estaba 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.
fuente
dpkg --configure -a
fue suficiente para activar el enlace update-initramfs y reparar el kernel roto./boot
partición separada ?sudo apt-get autoremove
para eliminar núcleos antiguos en caso de que se quede sin espacio/boot
.sudo apt-get autoremove
, reinicié nuevamente (kernel anterior), luego hice unsudo 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
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
),dpkg --configure -a
.Esto completará la actualización, incluida la configuración de arranque como explica psusi .
fuente
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/vda
conroot=/dev/vdb
el último mensaje es:Sin embargo , algunas líneas arriba, muestra mensajes de tipo:
que básicamente me dice directamente que
vdb
no se encontró, pero que hay una/dev/vda
que se puede leer debido alvirtio_blk
controlador (CONFIG_VIRTIO_BLK=y
).fuente
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í. )
fuente
/dev
en/mnt/dev
.También puede iniciar el servidor en modo de rescate y reinstalar solo el grub
http://info.w3calculator.com/free-code/linux/recover-from-corrupted-boot-image/
fuente
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
Luego reinicié y todo estaba funcionando bien.
fuente