Ubuntu GRUB之引导界面学习

一、grub有关配置文件

1./etc/default/grub

GRUB的一个简单选项的配置文件,可以改变引导菜单外观。在执行sudo grub-update后使新配置生效。

配置文件内有关代码的含义:

GRUB_DEFAULT=0
#属性:默认启动项
#参数:可以是数字:从0开始(按照开机选择界面的顺序对应);也可以是saved或者是某一个菜单条目的标题(查专业手册)

#GRUB_HIDDEN_TIMEOUT=0
#属性:是否隐藏菜单(grub2不再使用)
#参数:0:不隐藏,1:隐藏

GRUB_HIDDEN_TIMEOUT_QUIET=true
#属性:是否显示等待倒计时
#参数:true:不显示,false:显示

GRUB_TIMEOUT=0
#属性:进入默认启动项的等候时间
#参数:单位:秒,默认0,-1表示一直等待

GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
#属性:由 GRUB 的分发者设置为他们的标识名称。这用于生成更多信息性的菜单条目标题。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
#属性:内核启动参数的默认值
#参数:quiet splash为不显示启动信息,安静的启动,如值为空则显示启动信息
#说明:除非 GRUB_DISABLE_RECOVERY 被设置为 true,否则每个 Linux 内核将生成两个菜单项: 一个默认条目和一个恢复模式条目。
      此选项列出命令行参数,仅添加到默认菜单条目中,位于 GRUB_CMDLINE_LINUX 中列出的参数之后。

GRUB_CMDLINE_LINUX=""
#属性:手动添加内核启动参数
#参数:默认为空,可以添加你需要的参数,以 “name=value” 的格式添加,多个参数用空格隔开

#GRUB_TERMINAL=console
#属性:是否使用控制终端(仅限grub-pc)
#参数:默认使用图像界面,去掉前面的“#”则使用控制台终端

#GRUB_GFXMODE=640x480
#属性:图形界面分辨率
#参数:“宽x高”或者“宽x高x深”,只能使用图形卡通过 VESA BIOS 扩展 (VBE) 支持的模式,因此可能无法提供本地 LCD 面板分辨率。
      可以通过 GRUB 中的"videoinfo"命令"列出。
#说明:分辨率可以指定为一种或多个模式的序列,按逗号(,)或分号(;)分开,依次尝试,直到找到一个。

#GRUB_DISABLE_LINUX_UUID=true
#属性:是否允许GRUB将“root=UUID=xxx”参数传递给Linux
#参数:true:允许,注释表示不允许

#GRUB_DISABLE_RECOVERY="true"
#属性:是否禁用恢复模式菜单项的生成
#参数:true:禁用,,注释表示不禁用

#GRUB_INIT_TUNE="480 440 1"
#属性:取消注释可以在grub启动时收到嘟嘟声

grub-update的实际作用就是将相应的修改写入到/boot/grub/grub.cfg文件中,因此作为用户是无需直接修改/boot/grub/grub.cfg进行个性化配置的。

2./usr/share/grub/default/grub

示例配置文件,当/etc/default/grub配置发生错误时,可以通过它来帮助你恢复初始配置。

3./etc/grub.d

/etc/grub.d目录下包含了很多用来配置 GRUB 的shell脚本,这些配置可以在/etc/default/grub配置的基础上进行的更复杂的配置。同样需通过执行sudo grub-update使新配置生效。

4./boot/grub/grub.cfg

当对/etc/default/grub配置文件 和 /etc/grub.d目录内复杂的配置文件进行修改并grub-update后,生成的文件就是/boot/grub/grub.cfg,这也是 GRUB 实际使用到的配置文件。

5./boot/grub.cfg

即使是root也不要编辑它,它同样在每次update-grub后自动生成。

二、个性化设置引导界面

1.启动菜单背景图

引导菜单界面将自动搜索/boot/grub/,并将找到的的第一张图片作为引导菜单背景图。
如需要使用背景图,建议背景图分辨率和GRUB_GFXMODE保持一致。

2.添加GRUB主题

1)下载主题包

GRUB主题下载网址:https://www.gnome-look.org/browse?cat=109&ord=latest
两个优秀的GRUB主题:https://www.gnome-look.org/p/1009236 和 https://www.gnome-look.org/p/1414997

2)解压主题包到指定目录
hollowman@hollowman-F117:~/下载$ xz -d Vimix-1080p.tar.xz 
hollowman@hollowman-F117:~/下载$ sudo mkdir /boot/grub/themes
hollowman@hollowman-F117:~/下载$ sudo tar -xvf Vimix-1080p.tar -C /boot/grub/themes
3)修改/etc/default/grub配置文件
hollowman@hollowman-F117:~/下载$ sudo vim /etc/default/grub

### 注意以下参数
# GRUB_TIMEOUT_STYLE=hidden                                 #注释掉,不然不会出现引导菜单
GRUB_TIMEOUT=3                                              #不能为0,否则引导菜单还没出现就跳过了
GRUB_GFXMODE="1920x1080"                                    #请将分辨率和图像大小设置一致
GRUB_THEME=/boot/grub/themes/Vimix-1080p/Vimix/theme.txt    #添加此代码,注意参数应设置主题文件theme.txt的路径
4) 执行 sudo update-grub
hollowman@hollowman-F117:~/下载$ sudo update-grub

注意:优麒麟GRUB主题这样设置是无效的
原因分析:优麒麟添加了自定义的主题,配置文件存放在/etc/grub.d/06_ubuntukylin_theme 文件
解决办法:打开该文件,找到GRUB_THEME这一行,将其注释并改成你自己的主题路径。执行sudo update-grub生效

hollowman@hollowman-F117:~/下载$ sudo vim /etc/grub.d/06_ubuntukylin_theme

...省去上文...
#GRUB_THEME=/usr/share/grub/themes/UKUI/theme.txt
GRUB_THEME=/boot/grub/themes/Vimix-1080p/Vimix/theme.txt
...省去下文...

三、GRUB2引导修复

当遇上GRUB2引导被破坏,启动时出现GRUB>的时候,可试着通过GRUB2一些命令来修复引导。

1.指定启动分区

GRUB>set root=(hd0,gpt1)  #注意这里的root不是系统中的root,而是boot所在分区。

辅助命令:

GRUB>cat (hd0,gpt4)/etc/fstab  #查看系统挂载信息,找到boot所在分区,我这里找到的是/dev/sda1。

2.指定grub启动路径和该grub引导的系统根目录所在分区,加载内核

GRUB>set prefix=(hd0,gpt1)/grub
GRUB>linux /vmlinuz root=/dev/sda4  #加载linux内核,这里的root是系统根目录所在分区,那为什么要指定root?因为加载内核过程需要动态调用root分区中/lib/modules/目录内的核心模块。

3.加载内核的ramdisk并引导

GRUB>initrd /initrd.img-XXX  #加载linux的ramdisk
GRUB>boot   #引导之前加载过的程序

4.重启

GRUB>reboot

5.更新修复引导

进入系统后,修复引导,防止重启系统后问题再次出现。

$ sudo grub-install /dev/sda

四、GRUB有关文档

  • GNU GRUB Manual 2.06 https://www.gnu.org/software/grub/manual/grub/html_node/index.html
  • GRUB2配置文件"grub.cfg"详解(GRUB2实战手册)–金步国作品 http://www.jinbuguo.com/linux/grub.cfg.html
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值