Introducción y configuración de Linux GRUB

1. ¿Qué es GRUB?

GNU GRUB (GNU GRand Unified Bootloader, "GRUB" para abreviar) es un cargador de arranque del proyecto GNU. GRUB es la implementación de la especificación de arranque múltiple, que permite a los usuarios tener múltiples sistemas operativos en la computadora al mismo tiempo, y cuando la computadora se inicia Seleccione el sistema operativo que desea ejecutar. GRUB se puede usar para seleccionar diferentes núcleos en una partición del sistema operativo y también se puede usar para pasar parámetros de arranque a esos núcleos.

GRUB admite métodos de arranque directos y de carga en cadena. GRUB se puede usar en casi todos los sistemas operativos, los sistemas de archivos más populares y casi todos los discos duros reconocidos por el BIOS del sistema.

La siguiente imagen es un ejemplo de la interfaz de arranque de GRUB en Linux:

Presione e para editar el elemento de configuración del menú de grub correspondiente al menú seleccionado y presione c para ingresar al modo interactivo de la línea de comandos de grub.
inserte la descripción de la imagen aquí

Dos, la diferencia entre GRUB2 y GRUB Legacy

  • GRUB se divide actualmente en GRUB heredado y GRUB 2. El número de versión es 0.9x y las versiones anteriores se llaman GRUB Legacy, a partir de 1.x se llama GRUB 2, no hay una descripción especial de la versión de GRUB, generalmente se refiere a GRUB 2, el método para verificar la versión de GRUB esgrub-install --version

  • GRUB 2 se deriva de un proyecto llamado PUPA, el propósito es construir la próxima generación de gestores de arranque

  • GRUB 2 se desarrolló casi desde cero y se diferencia de GRUB Legacy en muchos aspectos, como la compatibilidad con scripts, idiomas internacionalizados, módulos de carga dinámica, modo de reanudación, etc., que GRUB Legacy no tiene.

  • Aunque GRUB 2 es un GRUB reescrito, toma prestadas algunas características de grub y grub2 mejora de la siguiente manera:

    1. El archivo de configuración de arranque tiene un nuevo nombre grub.cfg, nueva sintaxis y muchos comandos nuevos.
    2. grub.cfg es generado automáticamente por grub-mkconfig y mantenido por update-grub.La configuración modificada antes de update-grub no tendrá efecto, por lo que puede manejar fácilmente la situación de actualización del kernel.
    3. El número de partición en grub2 ya no comienza con 0, sino con 1.
    4. El archivo de configuración no se puede escribir, pero se actualiza automáticamente con el comando después de modificar el archivo
    5. Grub2 tiene una forma más confiable de encontrar archivos y núcleos de destino cuando hay varios sistemas en el disco Puede usar comandos para encontrar números de dispositivo del sistema o UUID.
    6. Más compatibilidad con el sistema de archivos, como ext4 hfs ntfs
    7. grub2 puede leer archivos directamente desde lvm y raid
    8. stage1 stage1.5 stage2 en grub ha sido cancelado
    9. grub2 presenta muchos módulos de dispositivos, lo que permite que la imagen principal sea más pequeña
    10. Admite secuencias de comandos, incluida la sintaxis simple
    11. Si no se selecciona ningún menú al inicio, presione y mantenga presionada la tecla shift para forzar la aparición del menú
    12. Puede usar grub-install -v para ver la versión grub del sistema

Tres, configuración GRUB2

1. Archivo de configuración principal

  • /boot/grub/grub.cfg - no edite esto ni siquiera como root, se genera automáticamente después de cada actualización-grub
  • /etc/default/grub: el archivo de configuración principal que cambia la apariencia del menú de inicio
  • /etc/grub.d/ - Varios archivos de secuencias de comandos utilizados para generar grub.cfg, que se ejecutarán cada vez que se actualice-grub

2. Genere grub.cfg a través del archivo /etc/default/grub

grub-mkconfig crea archivos de configuración basados ​​en el archivo /etc/default/grub. Este archivo define la macro global de grub, la modificación de la macro integrada puede generar rápidamente el archivo de configuración de grub. De hecho, hay algunos scripts de configuración de grub en el directorio /etc/grub.d/ Estos scripts de shell leen algunos archivos de configuración de scripts (como /etc/default/grub) y generan archivos de configuración de grub de acuerdo con la lógica especificada.

En /etc/default/grub, use el formato de "clave=valor", y la clave es todas letras mayúsculas y minúsculas. Si la parte del valor contiene espacios u otros caracteres especiales, debe rodearla con comillas; hay no es necesario cambiar directamente /boot/grub /grub.cfg o archivos en /etc/grub.d/

Más sobre GRUB puede referirse a este documento oficialhttps://help.ubuntu.com/community/Grub2

Las siguientes son macros globales de configuración de GRUB comunes:

# If you change this file, run 'update-grub' afterwards to update

GRUB_DEFAULT=0
#设置默认启动项,按menuentry顺序如果要默认从第四个菜单项启动,数字改为3,若改为 saved,则默认为上次启动项

GRUB_TIMEOUT="10"
#设置进入默认启动项的等候时间,默认值10秒,按自己需要修改,单位为秒改改为零和负值为无限等待操作

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` 
#获得发行版名称(比如Ubuntu, Debian,也可以自定义为其他名称)

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
#选择启动的环境,“quiet splash”为图像界面,“text”为文本界面

#GRUB_CMDLINE_LINUX="noresume" 
#手动添加内核启动参数,比如 acpi=off noapic 等可在这里添加
# Uncomment to disable graphical terminal (grub-pc only)

#GRUB_TERMINAL=console
#设置是否使用图形介面。前面有#注释(使用图形界面),前面没有#注释(仅使用控制台终端,不使用图形介面) )

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
#设定图形介面分辨率,如不使用默认。把前面#去掉,把分辨率改为800x600或1024x768

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
#取消注释以阻止GRUB将传递参数 "root=UUID=xxx" 传递给 Linux内核

# Uncomment to disable generation of recovery mode menu entrys
#GRUB_DISABLE_LINUX_RECOVERY="true"
#定是否创建修复模式菜单项,前面有#注释(建立修复模式).前面没有#注释(不建立修复模式

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1" #当GRUB菜单出现时发出鸣音提醒,户无法看到屏幕特别有用,默认关闭

Cuatro, comando de herramienta GRUB

Orden ilustrar
grub-instalar Genere el archivo de configuración de Grub (generalmente /boot/grub/grub.cfg) y genere un menú de inicio basado en el sistema operativo y el kernel instalados en el sistema. Escanea el sistema en busca de archivos de arranque y genera entradas de menú.
grub-mkconfig Genere el archivo de configuración de Grub (generalmente /boot/grub/grub.cfg) y genere un menú de inicio basado en el sistema operativo y el kernel instalados en el sistema. Escanea el sistema en busca de archivos de arranque y genera entradas de menú.
grub-editenv Se utiliza para editar las variables de entorno de Grub. Estas variables de entorno incluyen entradas de inicio predeterminadas, opciones de inicio y otros parámetros de configuración.
grub-mkrelpath Genera rutas relativas, especialmente cuando se configura el arranque múltiple. Se puede usar para generar rutas relativas que se pueden usar en archivos de configuración
grub-mkimage Genere un archivo de imagen Grub. Un archivo de imagen es un único archivo que contiene módulos Grub y archivos de configuración que se pueden usar para iniciar un sistema sin acceso directo al sistema de archivos.
grub-reiniciar Establece la entrada de inicio predeterminada para usar en el siguiente inicio. Con este comando, puede configurar el elemento de inicio para que se seleccione automáticamente cuando el sistema se inicie la próxima vez.
grub-set-default Establezca la entrada de arranque predeterminada. Le permite establecer un elemento de inicio específico como la opción predeterminada para que se seleccione automáticamente en el momento del inicio.
grub-sonda Se utiliza para detectar dispositivos y sistemas de archivos en el sistema. Puede identificar discos duros, particiones y tipos de sistemas de archivos.
actualizar-grub Se utiliza para actualizar los archivos de configuración de Grub y regenerar el menú de inicio. Escanea el sistema operativo instalado y el kernel en el sistema, y ​​regenera el menú de inicio de Grub de acuerdo con las reglas del archivo de configuración.
  • grub-install completa las siguientes tareas
    (1) Instalar grub en el dispositivo y crear el directorio /boot/grub si es necesario
    (2) Mover .mod, .lst, *.img desde /usr/lib/grub/i386-pc/ directorio Cópielo en el directorio /boot/grub y sobrescribirá los archivos existentes
    (3) Llame a grub_probe para escanear la computadora y recopilar información del disco y la partición
    (4) Llame a grub_mkimage para crear un nuevo new.img
    (5) Llame a grub_setup para coloque el arranque de grub.img está escrito en MBR, y core.img está escrito en el primer sector del dispositivo.

Cinco, los pasos para personalizar GRUB

  1. Modifique el archivo /etc/default/grub (Ubuntu16 y otros sistemas modifican el archivo de configuración)

    vim /etc/default/grub
    增加或者修改已有GRUB参数设置,例如 GRUB_TIMEOUT="10"
    保存退出
    

2. Ejecute el comando sudo update-grub, actualice el archivo /boot/grub/grub.cfg y luego surta efecto.

Referencias:
1, https://blog.csdn.net/qq_38880380/article/details/99528290
2, https://www.cnblogs.com/f-ck-need-u/archive/2017/06/29/ 7094693 .html#auto_id_48

Supongo que te gusta

Origin blog.csdn.net/xiao3404/article/details/131342499
Recomendado
Clasificación