RHEL7的GRUB2

grub详解–RHEL7以前的版本

Centos7以前,叫grub

# rhel6查看grub
cat /etc/grub.conf

grub文件主要内容如下:

# 默认从第1个内核启动
default=0

# 引导选项等待时间
timeout=5

# titile是可以在引导界面看到的引导项--如果有多个引导项,就有多个title
tiele Centos6 (2.6.32-696.e16.x86_64)

# root对应引导的分区
root (hd0,0)

# kernel对应具体的内核信息

grub2–RHEL7以后的版本

UEFI启动模式下的文件路径/boot/efi/EFI/openEuler/grub.cfg

legacy 启动模式下的文件路径/boot/grub2/grub.cfg

CentOS7中,/etc/default/grub/etc/grub2.cfg文件都与GRUB2引导加载程序相关。

  • /etc/default/grub文件是用来配置GRUB2引导加载程序的默认设置,它包含了GRUB2引导加载程序的一些默认设置,例如默认内核、超时时间等。当您修改此文件时,必须运行grub2-mkconfig命令来重新生成/etc/grub2.cfg文件,以便应用所做的更改。

  • /boot/grub2/grub.cfg文件是由grub2-mkconfig命令根据/etc/default/grub文件自动生成的。它是GRUB2引导加载程序的主要配置文件,定义了可供选择的操作系统和它们的内核、启动选项、启动参数等。在大多数情况下,您不需要手动编辑此文件,因为它是由grub2-mkconfig命令根据默认设置自动生成的。

# 查看grub2.cfg文件是否存在
ls /etc/grub2.cfg

在这里插入图片描述

# 查看链接文件的实际位置
readlink /etc/grub2.cfg

在这里插入图片描述


grub2.cfg详解

/etc/grub2.cfg文件中指定了引导目标内核文件目标 initrd文件,以及内核启动时设置的参数。

# 查看rhel8的grub文件
cat /etc/grub2.cfg

引导项

# 这里显示的引导项
### BEGIN /etc/grub.d/10_linux ###
menuentry 'CentOS Linux (3.10.0-862.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-862.el7.x86_64-advanced-e8a5deb3-2139-4e75-be3d-851fd05ff8a7' {
	# 这里是模块信息
	load_video
	set gfxpayload=keep
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'

# 救援模式的引导项目
menuentry 'CentOS Linux (0-rescue-e12365cf8dd24f4089db7e2f086648e3) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-e12365cf8dd24f4089db7e2f086648e3-advanced-e8a5deb3-2139-4e75-be3d-851fd05ff8a7' {
	load_video
	insmod gzio
	insmod part_msdos
	insmod xfs
	set root='hd0,msdos1'

内核信息

# linux16 就是内核引导信息
	linux16 /vmlinuz-0-rescue-e12365cf8dd24f4089db7e2f086648e3 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet

为Linux设置GRUB密码

https://mp.weixin.qq.com/s/4euVunN2Kvyx765_Ujkoxg

GRUB设置密码,可以防止启动前编辑GRUB防止破解Linux密码

# 查看/etc/grub目录
ll /etc/grub.d/

在这里插入图片描述

  • 文件00_*用于保留给00_header
  • 文件10_*表示本机启动条目
  • 文件20_*表示第三方应用程序
  • 文件40_custom用于管理身份验证功能
# 查看40_custom
/etc/grub.d/40_custom

在这里插入图片描述


备份grub.cfg

# 备份grub.cfg
cp /boot/grub2/grub.cfg{,.bak}

设置密码

/etc/grub.d/40_custom文件中添加:

# 用户
## set superusers=“[User Name]”
set superusers=”tietou”
# 用户 密码
## password [User name] [Password]
password tietou qwe123

在这里插入图片描述

# 使用grub2-mkpasswd-pbkdf2加密明文密码
grub2-mkpasswd-pbkdf2

在这里插入图片描述

# 用户
## set superusers=“[User Name]”
set superusers=”tietou”
# 用户 加密密码
# password_pbkdf2 [user name] [hashed string]
password tietou grub.pbkdf2.sha512.10000.5DF1DE834380F14945A1DBDE81004662EB871822F21154ED135FD4891FBBD5395BE919383150D10228A34A5166142AC73F177ABE8ABB0B1D93E0D669F7114DE3.D6C5AB742703B84BE2BE78FE43982524A5C9B4B0A5B0213973EF0BB5AAC6446B0EC0DCB1982D7D1DF904A84D09BF7751FC7D68CFD5E41C60ABF5AF6BB4B9D6CE

在这里插入图片描述


更新grub

# 生成grub
grub2-mkconfig

# 或
# 更新GRUB
update-grub

# 或
# 更新grub
## -o 指定输出文件
grub2-mkconfig -o /boot/grub2/grub.cfg

Linux修改或移除GRUB密码

https://mp.weixin.qq.com/s/PXwko0TGNtY3Yu_mxAtZ6A

如果我们知道root密码,可以顺利登陆操作系统,那操作还是比较简单的。我们可以使用以下步骤来删除修改GRUB密码


在引导加载程序屏幕处不做任何操作,避免中断引导过程,让系统正常启动。然后使用root帐户登录并打开文件/etc/grub.d/40_custom




接下来就简单了,如果我们想删除GRUB密码,删除文件中set superuserspassword/password_pbkdf2部分配置就可以了;如果我们要重置更改GRUB密码,按要求重新配置passwordpassword_pbkdf2部分就可以了。


在修改完文件40_custom之后,创建一个新的主配置文件grub.cfg

# 更新grub
## -o 指定输出文件
grub2-mkconfig -o /boot/grub2/grub.cfg

最后重新启动系统,从引导加载程序屏幕访问grub选项就可以验证更改是否成功了。


忘记root密码删除GURB密码

但是,如果我们不知道root密码呢?该怎么删除GRUB密码呢?

这时我们就要用到CentOS的安装盘来引导系统了,首先调整BIOS引导顺序从 Centos7的安装光盘引导系统。

image.png
接下来,选择Rescue a CentOS Linux system选项。

短暂引导之后,我们输入1回车,以选择第一个选项救援模式现在将尝试查找已经安装的Linux系统,并将其挂载到目录/mnt/sysimage下。然后,我们就可以对系统进行所需的任何更改

然后我们就进入到了和重置root密码时一样的命令环境

接下来,我们运行以下命令来创建必要的root环境,以便使用已安装的Linux系统。

# 将/更改为 /mnt/sysimage 目录
chroot /mnt/sysimage


在此之后,无论我们执行什么命令,都将以root权限从已安装的Linux执行。通过ls命令我们可以验证是否所有目录都已正确安装。


然后我们检查文件/etc/grub.d/40_custom



可以看到我们使用的加密的密码,现在如果遗忘了GRUB密码,指定是找不回来了。接下来,我们删除文件中有关身份验证的set superuserspassword_pbkdf2部分配置,并保存文件退出。


更新grub

最后,我们还是运行grub2-mkconfig命令来重新生成grub.cfg配置文件。

# 更新grub
## -o 指定输出文件
grub2-mkconfig -o /boot/grub2/grub.cfg

# 或
# 生成新的grub.cfg
grub2-mkconfig -o /tmp/grub.cfg
# 替换旧grub.cfg
mv /tmp/grub.cfg /boot/grub2/

重启系统

# 关闭临时root环境
exit

返回救援系统shell提示

# 重启系统
reboot

![](https://img-blog.csdnimg.cn/img_convert/ce49be7cea90a4d4cf7712c8400aceef.png#clientId=u884a139d-d607-4&from=paste&id=u12eb9666&originHeight=181&originWidth=435&originalType=url&ratio=2&rotation=0&showTitle=false&status=done&style=none&taskId=u63d89f03-9fa1-4630-8276-f2aceb40774&title=)

结果验证

此时,我们再从引导加载程序屏幕按e键访问GRUB选项,就可以发现grub密码已经没有了。


访问Linux中的GRUB菜单

https://linux.cn/article-16056-1.html


临时方案(当你偶尔访问GRUB时)

例如:你想切换回旧内核或进入恢复模式以 重置密码。

重启时按住 Shift 键,会显示 GRUB 菜单


永久方案(每次启动时都会显示 GRUB)

# 编辑grub
vim /etc/default/grub

GRUB_TIMEOUT_STYLE=hidden 更改为 GRUB_TIMEOUT_STYLE=menu
其中hidden表示隐藏GRUB
menu表示显示GRUB

# 显示GRUB
GRUB_TIMEOUT_STYLE=menu
# GRUB显示秒数
GRUB_TIMEOUT=5

在这里插入图片描述
改完后更新GRUB

# 更新GRUB
update-grub

# 或
## -o 指定输出文件
grub2-mkconfig -o /boot/grub2/grub.cfg
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值