Table of Contents
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 que entraron en vigencia a partir del 2 de febrero de 2016. estamos agregando los temas necesarios a la serie LFCS publicada aquí. Para prepararse para este examen, le recomendamos que siga también la serie LFCE.
LFCS: Configurar y solucionar problemas del cargador de arranque Grub-Parte 13
En este artículo, le presentaremos GRUB y le 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 obtiene un sistema completamente funcional sigue esta secuencia de alto nivel:
- 1.. Un proceso conocido como POST. ( Autoprueba de encendido. realiza una verificación general del hardware. componentes de su computadora.
- 2.. Cuando POST. se completa, pasa el control al cargador de arranque, que a su vez carga el kernel de Linux en memory (junto con initramfs. y lo ejecuta. El cargador de arranque más utilizado en Linux es GRand Unified Boot loader. o GRUB. para abreviar.
- 3.. El el kernel verifica y accede al hardware, y luego ejecuta el proceso inicial (conocido principalmente por su nombre genérico “ init. ) que a su vez completa el arranque del sistema iniciando los servicios.
En la Parte 7. de esta serie (“SysVinit, Upstart y Systemd”) presentamos los sistemas y herramientas de administración de servicios que utilizan las distribuciones modernas de Linux. Es posible que desee revisar ese artículo antes de continuar.
Presentamos GRUB Boot Loader
Dos versiones principales de GRUB. ( v1. a veces llamados GRUB Legacy. y v2. se pueden encontrar en los sistemas modernos, aunque la mayoría de las distribuciones usan v2. de forma predeterminada en sus últimas versiones. Solo Red Hat Enterprise Linux 6. y sus derivados todavía usan v1. en la actualidad.
freestar.config.enabled_slots.push (LocationName: “tecmint_incontent”, slotId: ” tecmint_incontent “);
Por lo tanto, nos centraremos principalmente en las características de v2. en esta guía.
Independientemente de la versión de GRUB. un cargador de arranque permite al usuario:
- 1).. modificar la forma en que se comporta el sistema especificando diferentes kernels para usar,
- 2).. elija entre sistemas operativos alternativos para arrancar, y
- 3).. agregue o edite secciones de configuración para cambiar las opciones de arranque, entre otras cosas.
Hoy, GRUB. es mantenido por el proyecto GNU. y está bien documentado en su sitio web. Le recomendamos que utilice la documentación oficial de GNU mientras lee esta guía.
Cuando se inicia el sistema, se le presenta la siguiente pantalla de GRUB. en la consola principal. Inicialmente, se le pedirá que elija entre kernels alternativos (de forma predeterminada, el sistema se iniciará con el kernel más reciente) y se le permite ingresar una línea de comando de GRUB. (con c) o editar las opciones de inicio (por presionando la tecla e).
Pantalla de inicio de GRUB
Una de las razones por las que debería considerar iniciar con una El kernel es un dispositivo de hardware que solía funcionar correctamente y ha comenzado a “ funcionar. después de una actualización (consulte este enlace en los foros de AskUbuntu. para ver un ejemplo).
El GRUB v2. se lee al arrancar desde/boot/grub/grub.cfg o/boot/grub2/grub.cfg, mientras que/boot/grub/grub.conf o/boot/grub/menu.lst se utilizan en v1. Estos archivos NO deben editarse a mano, sino que se modifican según el contenido de/etc/default/grub y los archivos que se encuentran dentro de/etc/grub.d.
En 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, release . * $,, g ‘/etc/system-release) “GRUB_DEFAULT = guardado GRUB_DISABLE_SUBMENU = true GRUB_TERMINAL_OUTPUT =” consola “GRUB_CMDLINE_LINUX =” vconsole.keymap = la-latin1 rd.lvm.lv = centos_centos7-2/auto crash vconsole.font = latarcyrheb-sun16 rd.lvm.lv = centos_centos7-2/root rhgb quiet “GRUB_DISABLE_RECOVERY =” true “
Además de la documentación en línea, también puede encontrar el manual de GNU GRUB usando info de la siguiente manera:
# info grub
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 inicio automático del sistema comienza a menos que se interrumpa d por el usuario. Cuando esta variable se establece en-1, el arranque no se iniciará hasta que el usuario realice una selección.
Cuando se instalan varios sistemas operativos o kernels en la misma máquina, GRUB_DEFAULT requiere un valor entero que indique qué sistema operativo o la entrada del kernel en la pantalla inicial de GRUB debe seleccionarse para arrancar de forma predeterminada. La lista de entradas se puede ver no solo en la pantalla de presentación que se muestra arriba, sino también usando el siguiente comando:
En CentOS y openSUSE: # awk-F \ ” $ 1 == “menuentry” print $ 2 ‘/boot/grub2/grub.cfg En Ubuntu: # awk-F \ ” $ 1 == “menuentry” print $ 2 ‘/boot/grub/grub.cfg
En el ejemplo que se muestra en la siguiente imagen, si deseamos arrancar con la versión del kernel 3.10.0-123.el7.x86_64. (cuarta entrada), necesitamos establecer GRUB_DEFAULT en 3 (las entradas se numeran internamente comenzando con cero) de la siguiente manera:
GRUB_DEFAULT = 3
Sistema de inicio con versión de kernel anterior
Una última variable de configuración de GRUB que es de especial interés es GRUB_CMDLINE_LINUX, que se utiliza para pasar opciones a el núcleo. Las opciones que se pueden pasar a través de GRUB al kernel están bien documentadas en el archivo de parámetros del kernel y en el bootparam man 7.
Las opciones actuales en mi servidor CentOS 7. son:
GRUB_CMDLINE_LINUX = “vconsole.keymap = la-latin1 rd.lvm.lv = centos_centos7-2/swap crashkernel = auto vconsole.font = latarcyrheb-sun16 rd.lvm.lv = centos_centos7-2/root rhgb silencioso”
¿Por qué querría modificar los parámetros predeterminados del kernel o pasar opciones adicionales? En términos simples, puede haber ocasiones en las que necesite decirle al kernel ciertos parámetros de hardware que tal vez no pueda determinar por sí mismo, o anular los valores que detectaría.
Esto le sucedió a no hace mucho, cuando probé Vector Linux. un derivado de Slackware. en mi portátil de 10 años. Después de la instalación, no detectó la configuración correcta para mi tarjeta de video, así que tuve que modificar las opciones del kernel pasadas a través de GRUB para que funcionara.
Otro ejemplo es cuando necesitas llevar el sistema a modo único-Modo de usuario para realizar tareas de mantenimiento. Puede hacerlo agregando la palabra single a GRUB_CMDLINE_LINUX y reiniciando:
GRUB_CMDLINE_LINUX = “vconsole.keymap = la-latin1 rd.lvm.lv = centos_centos7-2/swap crashkernel = auto vconsole.font = latarcyrheb-sun16 rd .lvm.lv = centos_centos7-2/root rhgb quiet single. “
Después de editar/etc/defalt/grub, deberá ejecutar update-grub ( Ubuntu) o grub2-mkconfig-o/boot/grub2/grub.cfg ( CentOS. y openSUSE. posteriormente para actualizar grub.cfg (de lo contrario, los cambios se perderán al arrancar ).
Este comando procesará los archivos de configuración de arranque mencionados anteriormente para actualizar grub.cfg. Este método garantiza que los cambios sean permanentes, mientras que las opciones que se pasan a través de GRUB en el momento del arranque solo durarán durante la sesión actual.
Solución de problemas de GRUB en 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 comando de GRUB (recuerde que también puede presionar e para editar las opciones de arranque predeterminadas) y use la ayuda para traer los comandos disponibles en el indicador de GRUB:
Solucionar problemas de configuración de Grub en Linux
Nosotros se centrará en ls. que enumerará los dispositivos y sistemas de archivos instalados, y examinaremos lo que encuentra. En la imagen de abajo podemos ver que hay 4 discos duros (hd0 a hd3).
Solo hd0 parece haber sido particionado (como lo demuestran msdos1. y msdos2. donde 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 usar 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 directorio grub2. en esta partición:
Buscar configuración de Grub
Una vez que estemos seguros de que GRUB reside en ( hd0, msdos1. , digamos a GRUB dónde encontrar su archivo de configuración y luego indiquémosle que intente iniciar su menú:
set prefix = ( hd0, msdos1)/grub2 set root = (hd0, msdos1) insmod normal normal
Buscar y ejecutar Menú de Grub
Luego, en el menú de GRUB, elija una entrada y presione Intro. para iniciar su uso. Una vez que el sistema se haya iniciado, puede ejecutar el comando grub2-install/dev/sdX (cambie sdX con el dispositivo en el que desea instalar GRUB). La información de arranque se actualizará y se restaurarán todos los archivos relacionados.
# grub2-install/dev/sdX
Otros escenarios más complejos están documentados, junto con sus correcciones sugeridas, en la guía de resolución de problemas de Ubuntu GRUB2. Los conceptos explicados allí también son válidos para otras distribuciones.
Resumen
En este artículo le presentamos GRUB, le indicamos dónde puede encontrar documentación tanto en línea como fuera de línea, y explicado cómo abordar un escenario en el que un sistema ha dejado de arrancar correctamente debido a un problema relacionado con el cargador de arranque.
Afortunadamente, GRUB es una de las herramientas mejor documentadas y puede encontrar ayuda fácilmente en los documentos instalados o en línea utilizando los recursos que hemos compartido en este artículo.
¿Tiene preguntas o comentarios? No dude en hacérnoslo saber mediante el formulario de comentarios a continuación. ¡Esperamos con interés escuchar de usted!