LFCS Cómo configurar y solucionar problemas de Grand Unified Bootloader (Grub) - Parte 13

LFCS Cómo configurar y solucionar problemas de Grand Unified Bootloader (Grub) - Parte 13

Debido a los cambios recientes en los objetivos del examen de certificación LFCS efectivos desde 2 de febrero de 2016, Estamos agregando los temas necesarios a la serie LFCS publicada aquí. Para prepararse para este examen, se le recomienda encarecidamente que siga la serie LFCE también.

LFCS: Configurar y solucionar problemas de GRUB Boot Loader - Parte 13

En este artículo le presentaremos a GRUB y explicaremos por qué es necesario un cargador de arranque y cómo agrega versatilidad al sistema.

El proceso de arranque de Linux desde el momento en que presiona el botón de encendido de su computadora hasta que obtenga un sistema completamente funcional sigue esta secuencia de alto nivel:

  1. 1. Un proceso conocido como CORREO (Poder en la auto prueba) realiza una verificación general en los componentes de hardware de su computadora.
  2. 2. Cuando CORREO Completa, pasa el control al cargador de arranque, que a su vez carga el núcleo de Linux en la memoria (junto con initramfs) y lo ejecuta. El cargador de arranque más utilizado en Linux es el Gran cargador de arranque unificado, o COMIDA para abreviar.
  3. 3. El núcleo verifica y accede al hardware, y luego ejecuta el proceso inicial (principalmente conocido por su nombre genérico "en eso") Que a su vez completa el arranque del sistema iniciando los servicios.

En Parte 7 De esta serie ("Sysvinit, Upstart y Systemd") presentamos los sistemas y herramientas de gestión de servicios utilizados por las distribuciones modernas de Linux. Es posible que desee revisar ese artículo antes de continuar.

Introducir el cargador de arranque de grub

Dos mayores COMIDA versiones (V1 aveces llamado Legado de la comida y V2) se pueden encontrar en los sistemas modernos, aunque la mayoría de las distribuciones usan V2 Por defecto en sus últimas versiones. Solo Red Hat Enterprise Linux 6 y sus derivados aún usan V1 hoy.

Por lo tanto, nos centraremos principalmente en las características de V2 En esta guía.

A pesar de COMIDA Versión, un cargador de arranque permite al usuario:

  1. 1). Modifique la forma en que se comporta el sistema especificando diferentes núcleos para usar,
  2. 2). Elija entre sistemas operativos alternativos para arrancar y
  3. 3). Agregar o editar estrofas de configuración para cambiar las opciones de arranque, entre otras cosas.

Hoy, COMIDA se mantiene por el ÑU proyecto y está bien documentado en su sitio web. Le recomendamos que use la documentación oficial de GNU mientras pasa por esta guía.

Cuando se presenta el sistema, se le presentan lo siguiente COMIDA pantalla en la consola principal. Inicialmente, se le solicita que elija entre núcleos alternativos (de forma predeterminada, el sistema se iniciará con el último núcleo) y puede ingresar un COMIDA línea de comando (con C) o edite las opciones de arranque (presionando el mi llave).

Pantalla de arranque de grub

Una de las razones por las que consideraría arrancar con un kernel más antiguo es un dispositivo de hardware que solía funcionar correctamente y ha comenzado "actuar"Después de una actualización (consulte este enlace en el Askubuntu Foros para un ejemplo).

El Grub v2 La configuración se lee en el arranque desde /arranque/grub/grub.CFG o /Boot/Grub2/Grub.CFG, mientras /arranque/grub/grub.confusión o /Boot/Grub/Menú.LST se usan en V1. Estos archivos no deben ser editados a mano, sino que se modifican en función del contenido de /etc/default/grub y los archivos encontrados dentro /etc/comida.d.

en un Centos 7, Aquí está el archivo de configuración que se crea cuando el sistema se instala por primera vez:

Grub_timeout = 5 grub_distributor = "$ (Sed 's, lanzamiento .*$ ,, G ' /etc /System-Selease) "Grub_Default = Saved Grub_Disable_Submenu = True Grub_Merminal_output =" Console "Grub_CMDLine_Linux =" VConsole.kymap = la-latin1 rd.LVM.LV = Centos_centos7-2/Swap CrashKernel = Auto VConsole.fuente = Latarcyrheb-SUN16 RD.LVM.lv = centos_centos7-2/root rhgb quiet "grub_disable_recovery =" verdadero " 

Además de la documentación en línea, también puede encontrar el manual de GNU GRUB utilizando la información de la siguiente manera:

# GRUB INFO 

Si está interesado específicamente en las opciones disponibles para /etc/default/grub, Puede invocar la sección de configuración directamente:

# info -f grub -n 'Configuración simple' 

Usando el comando anterior, descubrirá que Grub_timeout Establece el tiempo entre el momento en que aparece la pantalla inicial y el arranque automático del sistema comienza a menos que el usuario interrumpe el usuario. Cuando esta variable se establece en -1, El arranque no se iniciará hasta que el usuario haga una selección.

Cuando se instalan múltiples sistemas operativos o núcleos en la misma máquina, Grub_default requiere un valor entero que indique qué entrada o entrada de kernel en la pantalla inicial de grub debe seleccionarse para iniciar de forma predeterminada. La lista de entradas se puede ver no solo en la pantalla Splash que se muestra arriba, sino también utilizando el siguiente comando:

En CentOS y OpenSuse:

# AWK -F \ "$ 1 ==" MenuEntry "imprimir $ 2 '/boot/grub2/grub.CFG 

En Ubuntu:

# AWK -F \ "$ 1 ==" MenuEntry "imprimir $ 2 '/boot/grub/grub.CFG 

En el ejemplo que se muestra en la imagen a continuación, si deseamos iniciar con la versión del núcleo 3.10.0-123.El7.x86_64 (4ª entrada), necesitamos establecer Grub_default a 3 (Las entradas se numeran internamente con cero) de la siguiente manera:

Grub_default = 3 
Sistema de arranque con versión antigua del núcleo

Una variable de configuración de grub final que es de especial interés es Grub_cmdline_linux, que se usa para pasar opciones al kernel. Las opciones que se pueden transmitir a través del grub al núcleo están bien documentadas en el archivo de parámetros del núcleo y en el hombre 7 Bootparam.

Opciones actuales en mi Centos 7 el servidor es:

Grub_cmdline_linux = "vConsole.kymap = la-latin1 rd.LVM.LV = Centos_centos7-2/Swap CrashKernel = Auto VConsole.fuente = Latarcyrheb-SUN16 RD.LVM.lv = centos_centos7-2/raíz rhgb tranquilo " 

¿Por qué querría modificar los parámetros predeterminados del kernel o pasar opciones adicionales?? En términos simples, puede haber momentos en los que necesite decirle al kernel ciertos parámetros de hardware que puede no poder determinar por sí solo, o anular los valores que detectaría.

Esto me pasó no hace mucho tiempo cuando intenté Vector Linux, un derivado de Flogware, En mi computadora portátil de 10 años. Después de la instalación, no detectó la configuración correcta para mi tarjeta de video, por lo que tuve que modificar las opciones del núcleo pasadas por GRUB para que funcione.

Otro ejemplo es cuando necesita llevar el sistema al modo de usuario único para realizar tareas de mantenimiento. Puede hacer esto agregando la palabra single a Grub_cmdline_linux y reiniciar:

Grub_cmdline_linux = "vConsole.kymap = la-latin1 rd.LVM.LV = Centos_centos7-2/Swap CrashKernel = Auto VConsole.fuente = Latarcyrheb-SUN16 RD.LVM.lv = centos_centos7-2/raíz rhgb tranquilo soltero" 

Después de editar /etc/defalt/grub, necesitarás correr GRUB ACTUALIZADO (Ubuntu) o Grub2 -mkconfig -o/boot/grub2/grub.CFG (Cento y usura de apertura) después para actualizar comida.CFG (De lo contrario, los cambios se perderán al arranque).

Este comando procesará los archivos de configuración de arranque mencionados anteriormente para actualizar comida.CFG. Este método asegura que los cambios sean permanentes, mientras que las opciones pasadas a través de Gub en el momento del arranque solo durarán durante la sesión actual.

Solicitar problemas de grub de Linux

Si instala un segundo sistema operativo o si su archivo de configuración de GRUB se corrompe debido a un error humano, hay formas en que puede recuperar su sistema y poder arrancar nuevamente.

En la pantalla inicial, presione C Para obtener una línea de comandos de grub (recuerde que también puede presionar mi Para editar las opciones de arranque predeterminadas) y use la ayuda para traer los comandos disponibles en la solicitud de grub:

Arreglar problemas de configuración de grub en Linux

Nos centraremos en LS, que enumerará los dispositivos y sistemas de archivos instalados, y examinaremos lo que encuentra. En la imagen a continuación podemos ver que hay 4 discos duros (HD0 a través de HD3).

Solo HD0 parece haber sido dividido (como lo demuestra msdos1 y msdos2, dónde 1 y 2 son los números de partición y msdos es el esquema de partición).

Examinemos ahora la primera partición en HD0 (msdos1) para ver si podemos encontrar grub allí. Este enfoque nos permitirá arrancar Linux y utilizará otras herramientas de alto nivel para reparar el archivo de configuración o reinstalar GRUB por completo si es necesario:

# LS (HD0, MSDOS1)/ 

Como podemos ver en el área resaltada, encontramos el grub2 Directorio en esta partición:

Encuentra la configuración de grub

Una vez que estemos seguros de que Grub reside (HD0, MSDOS1), digamos a Grub dónde encontrar su archivo de configuración y luego instruya que intente iniciar su menú:

Establecer prefix = (HD0, MSDOS1)/Grub2 set root = (hd0, msdos1) insmod normal normal 
Buscar y iniciar el menú Grub

Luego, en el menú de grub, elija una entrada y presione Ingresar para arrancarlo. Una vez que el sistema ha iniciado, puede emitir el Grub2-install /dev /sdx comando (cambiar sdx Con el dispositivo desea instalar grub). La información de arranque se actualizará y se restaurarán todos los archivos relacionados.

# Grub2-Install /dev /sdx 

Se documentan otros escenarios más complejos, junto con sus soluciones sugeridas, en la Guía de solución de problemas de Ubuntu Grub2. Los conceptos explicados también son válidos para otras distribuciones.

Resumen

En este artículo le hemos presentado a GRUB, indicado dónde puede encontrar documentación tanto en línea como fuera de línea, y explicó cómo abordar un escenario en el que un sistema ha dejado de arrancar correctamente debido a un problema relacionado con el gestor de arranque.

Afortunadamente, Grub es una de las herramientas que se documenta mejor y puede encontrar ayuda fácilmente en los documentos instalados o en línea utilizando los recursos que hemos compartido en este artículo.

Tienes preguntas o comentarios? No dudes en hacernos saber usando el formulario de comentarios a continuación. Esperamos con interés escuchar de usted!

Convertirse en administrador del sistema certificado por Linux