Grub no enumera el nuevo kernel durante el arranque

0

Recientemente actualicé mi kernel en CentOS 6.7. Eso también limpió todas las versiones anteriores, que también actualizaron mi /boot/grub/grub.conf, tiene una sola entrada (del nuevo kernel). Ahora, cuando reinicié, el arranque falla con un error "archivo no encontrado", la razón es que todavía está intentando arrancar con el núcleo anterior, que ya no está debajo de / boot. Cuando voy a la página de la lista de núcleos, solo aparece el núcleo más antiguo (que de nuevo ya no está allí), no hay signos del nuevo núcleo en esta lista. Finalmente, tuve que arrancar usando la línea de comando grub, funcionó bien. He verificado /etc/grub.conf, es un enlace simbólico a /boot/grub/grub.conf. También hay un grub.conf más en / boot / efi / EFI / redhat /, pero que también es idéntico a /boot/grub/grub.conf. Busqué la cadena de versión del kernel para verificar si todavía se hace referencia a alguna parte, No lo es. Entonces descubrí que esto estaba más allá de mí, algo todavía no es bueno. Por favor aconsejame.

Actualización Esto puede tener algo que ver con la última actualización del BIOS, donde el arranque uefi está habilitado ahora. Cuando selecciono manualmente la unidad de arranque, veo 2 opciones, una que comienza con UEFI aaaaaa OS Bootloader y otra que comienza con SATA aaaaaaaa Boot Drive. Cuando selecciono la unidad de arranque, se inicia con el último kernel. ¿Debo modificar algo después de la actualización del BIOS?

Mahesh H Viraktamath
fuente
1
Mi experiencia grubes en Ubuntu, así que no sé cuán relevante es, pero hay un comando sudo update-grubque reconstruirá el archivo de configuración en cualquier momento, especialmente después de llamar /etc/default/grub. Si no tiene este script, todo lo que hace es llamar grub-mkconfig -o /boot/grub/grub.cfg, por lo que puede usar este comando en su lugar. Sin embargo, el proceso normal de actualización de software debería llamar a esto automáticamente cada vez que haya un nuevo kernel y no sé por qué esto no ha sucedido en su caso.
AFH
¿Tiene una partición de arranque separada y / u otros discos físicos (de arranque o no) en el sistema? No parece que sea parte del problema aquí, pero vale la pena estar seguro.
Tim G
Mi env todavía usa el legado grub (0.97), por lo que no hay opción para hacer grub-mkconfig.
Mahesh H Viraktamath
@MaheshHViraktamath grub legacy no usa grub.cfgperomenu.lst
Tom Yan
@ TomYan Gracias por la aclaración, mi menu.lst apunta a grub.conf, ¿no debería ser un enlace simbólico por casualidad?
Mahesh H Viraktamath

Respuestas:

0

¿Puedes arrancar a través de la línea de comandos de grub? Simplemente edite grub.conf para que coincida con las correcciones que realizó para su arranque único, haga una copia de seguridad y vea a continuación acerca de grub-mkconfig.

---- Lo releí y encontré más detalles; la siguiente sección asume que no puede arrancar ----

Como no puede arrancar, puede probar dos cosas: edite boot.cfg manualmente o arranque un disco de rescate / live-cd y ejecute grub-mkconfig.

La primera opción requiere que sepas el nombre del nuevo archivo del kernel o que puedas encontrarlo (como con un disco de rescate / live-cd). Edite /boot/grub/grub.cfg (o presione la tecla de acceso rápido en el menú de grub para editar la línea de arranque para un arranque) y busque la línea que incluye "linux [...] vmlinuz [...]. deberá cambiar la sección vmlinuz de la línea para que coincida con el nuevo nombre de archivo. Si corresponde, también deberá cambiar la sección initramfs por el nuevo nombre de archivo apropiado. Guárdelo y vea si puede iniciar (o hacer la edición en grub y ver si se inicia, luego edítelo una vez que esté dentro)

sin embargo, grub-mkconfig eliminará estos cambios si no funciona correctamente, así que si trabajas para algo que se inicia, guarda el grub.cfg que funciona como copia de seguridad.

El último paso es asegurarse de que (sudo) grub-mkconfig -o /boot/grub/grub.cfg generará correctamente las líneas de arranque correctas. Si está en un live-cd y aún no ha logrado iniciar en el sistema operativo, use chroot para cambiar la raíz a su disco real para que recoja los archivos de inicio correctos (y no olvide montar / iniciar si es una partición separada). Ejecute el comando y vea si se inicia.

El paso grub-mkconfig no es estrictamente necesario si logra que sea un sistema de arranque, pero es una buena práctica y las actualizaciones probablemente arruinarán su arranque nuevamente si grub-mkconfig no funciona.

Si resulta que grub-mkconfig no funciona, tendrá que sumergirse en /etc/grub(.d) para encontrar qué archivo de configuración no funciona correctamente. Esos archivos de configuración son muy complicados para poder manejar muchas situaciones, por lo que puede simplificar, comentar y codificar sus propias cosas para que funcione nuevamente.

Buena suerte.

Tim G
fuente
Mi env todavía usa el legado grub (0.97), por lo que no hay opción para hacer grub-mkconfig.
Mahesh H Viraktamath
0

Mi env todavía usa el legado grub (0.97), por lo que no hay opción para hacer grub-mkconfig.

¿Está de acuerdo para actualizar el legado de grub a grub2?

Luego puede actualizarlo con apt-get, luego:

sudo grub-install /dev/sdX --boot-directory=/your_boot_folder.

Luego, ejecute el comando ya hablado: sudo grub-update (grub-mkconfig ...)

Wsu
fuente