操作环境:CentOS 6.8


一、grub的配置文件

[root@localhost ~]# vi /boot/grub/grub.conf //编辑配置文件

default=0    //设定默认启动的菜单项;落单项(title)编号从0开始
timeout=3    //指定菜单项等待选项选择的时长
title Dashui Linux    //定义菜单项“标题”, 可出现多次
root (hd0,0)    //:grub查找stage2及kernel文件所在设备分区;为grub“根”
kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/vg0/root    //启动的内核
initrd /initramfs-2.6.32-642.el6.x86_64.img    //内核匹配的ramfs文件

其中还有几项没有列出来,如下

splashp_w_picpath=(hd#,#)/PATH/TO/XPM_FILE:菜单背景图片文件路径
hiddenmenu:隐藏菜单
password [--md5] STRING: 启动菜单编辑认证
password [--md5] STRING: 启动选定的内核或操作系统时进行认证


二、对grub文件进行加密

[root@localhost ~]# grub-md5-crypt    //将密码使用md5加密转换下
Password: 
Retype password: 
$1$kPLWy$0KdG91RdiCro4cU/gUXp4/
[root@localhost ~]# vi /boot/grub/grub.conf 
default=0
timeout=3
password --md5 $1$kPLWy$0KdG91RdiCro4cU/gUXp4/ 输入加密过的口令
title Dashui Linux
root (hd0,0)
kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/vg0/root
initrd /initramfs-2.6.32-642.el6.x86_64.img

重新启动查看效果

Linux下grub配置文件以及加密和解密_第1张图片

三、如果进入单用户模式

(1) 编辑grub菜单(选定要编辑的title,而后使用e命令);
(2) 在选定的kernel后附加
1, s, S或single都可以;
(3) 在kernel所在行,键入“b”命令


Linux下grub配置文件以及加密和解密_第2张图片

Linux下grub配置文件以及加密和解密_第3张图片

Linux下grub配置文件以及加密和解密_第4张图片

实例:如果用户忘记了其root密码,可以通过开机进入单用户模式,然后更改root密码,进入单用户模式如上所述,进入后我们只需要执行passwd

wKioL1fbaenSCgNqAABnQ4E7koU047.jpg


四、有一种相当糟糕的状况,假使你忘记了root密码,而且由于记性不好又忘记了grub菜单的密码,这如何解决?

    1)重启按esc键选择光盘启动(要挂在本地镜像光盘)

    2)选择进入救援模式

    3)经过一系列的语言网络选择(网络配置选择no),我们终于来到了救援模式的shell界面,不过此时所在的并不是我们真的rootfs,所以我们需要切换到真正的root,即chroot /mnt/sysp_w_picpath

    4)然后我们就可以编辑/boot/grub/grub.conf配置文件,删除password加密的行

    5)exit后重新启动即可,此时grub的密码已经被我们取消了,root密码的问题也迎刃而解,即可以再救援模式修改,也可以在单用户修改密码

wKioL1fbbnCDeQnQAAAisAN8tRo495.png