GRUB启动管理器

目录

前言

一、GRUB是什么

二、示例

三、原理

总结


前言

GRUB多重启动管理器。


一、GRUB是什么

GRUB(GRand Unified Bootloader简称“GRUB”)是GUN项目的多操作系统启动程序,它允许用户在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。

二、示例

cat /etc/default/grub

 返回如下信息:

# If you change this file, run 'update-grub' afterwards to update /boot/grub/grub.cfg.

(更改后运行"update-grub")
# For full documentation of the options in this file, see:info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0  (0表示第一个启动项,saved表示上次选择项)
GRUB_TIMEOUT=5  (等待选择启动项的时间为5秒,0表示直接进入默认选项)
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`(提取发行版本号)
GRUB_CMDLINE_LINUX_DEFAULT="quiet"(此处有3个选项,"quiet"的意思是内核启动时候简化提示信息,"splash"的意思是启动的时候使用图形化的进度条代替init的字符输出过程,"text"的意思是启动后进入命令行界面,不设置“text"参数默认进入图形界面。可以选择多个参数,如"quiet text"。调整命令行界面或者图形界面后,需要运行"sudo systemctl set-default multi-user.target"使配置生效,使用“startx"命令进入图形界面
GRUB_CMDLINE_LINUX=""(在引导时将传递给内核的命令行参数。 对于所有已安装的内核,这些参数将添加到grub.cfg的内核行中,这意味着所有已安装的内核在引导时将具有相同的参数。 建议删除“quiet”参数,以便在引导和启动过程中可以看到内核和systemd输出的所有非常有用的消息)

(GRUB_CMDLINE_LINUX中的选项始终有效,GRUB_CMDLINE_LINUX_DEFAULT中的选项仅在正常引导期间有效,恢复模式期间无效)


# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console(计算机启动时,禁用GRUB图形界面)

# 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(设置图形界面分辨率为640x480,只能使用显卡支持的分辨率,可以在grub模式下输入"vbeinfo"查看)

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true(设置是否使用UUID引导,即使用root=/dev/sdax还是root=UUDI=XXX)

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"(GRUB为每个已安装的内核创建一个恢复条目。 设置为“ true”时,不会创建恢复条目。 无论此设置如何,最后一个内核条目始终是“救援”选项。恢复条目可以在命令行中根据runlevel命令引导至运行级别1,要求输入密码以进入维护模式,也可以按Ctrl-D组合键以继续正常启动到默认运行级别。 )

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"(GRUB启动时扬声器的音量)

三、原理

GRUB主配置文件

  • /boot/grub/grub.cfg文件
  • /etc/grub.d目录
  • /etc/default/grub文件

/boot/grub/grub.cfg按照由小到大顺序调用/etc/grub.d目录中的脚本实现不同的功能。如果直接去修改/boot/grub2/grub.cfg文件,后期内核升级后所有的配置都会失效。如更需要自定义这个文件,可以修改/etc/grub.d目录中对应的脚本或者/etc/default/grub文件,然后通过使用update-grub命令重新生成/boot/grub/grub.cfg文件。

/etc/grub.d目录定义每个菜单项的脚本,这些脚本的名称必须有两位的数字前缀,其目的是构建GRUB菜单时定义脚本的执行顺序以及相应菜单项的顺序,比如00_header文件首先被读取。在使用update-grub命令生成配置文件时,需要加载/etc/grub.d目录。该文件描述如下

  • 00_header        设置grub默认参数
  • 10_linux     系统中存在多个linux版本
  • 20_ppc_terminfo     设置tty控制台
  • 30_os_prober     设置其他分区中的系统(硬盘中有多个操作系统时设置)
  • 40_custom和41_custom     用户自定义的配置

/etc/default/grub是一个文本文件,可以在该文件中设置通用配置变量和GRUB菜单的其他特性,修改此文件后,需要使用update-grub命令更新GRUR配置文件才能使更改生效。

GRUB中设备和分区命名规则如下:

GRUB以fd表示软盘,hd表示硬盘(包括IDE和SCSI硬盘),设备从0开始编号、分区从1开始,主分区为1-4,逻辑驱动器从5开始。下面介绍设备和分区的使用方法:

  • (fd0):表示第一个软盘
  • (hd0):表示第一个硬盘(大多数U盘与USB接口的移动硬盘以及SD卡也都被当作硬盘看待)
  • (hd0,msdos1):表示第一个硬盘的第一个分区
  • (hd0,msdos1)/boot/vmlinuz-3.10.0-327.e17.x86_64:表示第一个硬盘的第一个分区下的boot目录下的vmlinuz-3.10.0-327.e17.x86_64文件
  • (hd1,msdos1):表示第二硬盘的第一个分区
  • (cd):启动光盘(仅在从光盘启动GRUB时可用)
  • (cd0):第一个光盘


总结

未完待续。


版权声明:本文为qq_55282290原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。