与Centos6不同Centos7采用的是grub2,而不是grub。在Centos7中,把grub的主要配置文件放在以下三个地方。

/boot/grub2/grub.cfg  (/etc/grub2.cfg 是/boot/grub2/grub.cfg 文件的符号链接) /etc/grub.d/ /etc/default/grub 这三个配置文件之间的关系是 grub.cfg 里通过 ####BEGIN ##### 这种格式按照顺序调用 /etc/grub.d 里面的脚本实现不同的功能。在  grub.d 目录里有很多数字开头的脚本,按从小到大的顺序执行。 ​ 例如:在 /etc/grub2.cfg 文件里调用 /etc/grub.d/10_linux 来配置不同内核,在这里有2个menuentry(菜单入口),所以我们开机的时候会看见两个默认选项,一个是普通模式,一个是救援模式。 上图是 /etc/default/grub 文件。和其他的脚本比较起来,非常简单直观了。后面会举例如何修改(需要注意的是,最好不要直接去修改 /etc/grub2.cfg 文件。这个是因为如果后期升级内核,所有的配置都会失效。如果需要自定义这个文件,我们可以修改对应的脚本或者 /etc/default/grub 文件,然后通过 grub2-mkconfig 重新生成 grub.cfg 文件。) 我们可以修改grub配置文件来进行一些简单的配置。 例如:1.修改启动等待时间 Centos7 默认启动等待时间为 5 秒,我们可以将其改为3秒(注意,如果改为-1,那么每次启动需要手动确认才可以) 修改 /etc/default/grub 文件,如下图所示: 修改完成后重新编译生成 grub.cfg 文件 2.对 grub 进行加密 在开机界面时如果输入e ,会打开编辑窗口,我们可以根据需要进入 rescue, emergency 或者 shell 模式。那么如何对 grub 进行加密呢? 在 /etc/grub.d/00_header 文件的末尾,加入以下内容 其中,“EOF” 可以自己定义。然后重新定义编码文件 重启之后输入e,就需要用户和密码才能进入编辑窗口了。 上面我们设置的是明文密码。在 /etc/grub.d/00_header 文件内可以知道,那如何设置密文口令呢? 加密密码由命令 grub2-mkpasswd-pbkdf2 生成 将生成的密码符,添加到 /etc/grub.d/00_header 文件末尾 3.修改root密码 重启系统,按e进入编辑模式 在 linux16 那一行的末尾加上以下信息 rd.break console=tty0 按 ctrl+x 启动 重新挂载文件系统 改变根目录 修改root密码 echo "123456" | passwd --stdin root 在根目录下创建相关文件(用于重新标记 selinux 环境值) 使用exit(两次),退出 系统将会重启。

		开机排错
		例如:1.grub 故障:比如把 MBR 的前 446 个字节都覆盖了

系统重启后会出现以下故障 开机的时候会自动尝试从本地,光盘和网络加载引导程序(如果光盘、网络等引导失败则会operatiing system not found);这里是从我的光盘加载的,因为本地的引导程序已经没有了。 选择 troubleshooting (排错) 选择 resure a red hat enterprise linux system 选择 continue(注意有耐心多等一下,有的时候会卡个 10 秒才有反应) 按照提示,切换根到本机的系统 使用 fdisk -l 查看启动分区是哪个,带星号的就是。 重装以下 grub2 到启动分区即可 重启就OK了 2.如果grub引导没问题,但我们把内核文件或 grub.cfg 配置文件删除了该怎么办? 重启之后,直接进入 grub 的救援模式,这表明程序没有问题,但引导文件找不到了 和前面一样,光盘启动,切换到根目录,挂载以下光盘到光盘挂载点,我们可以顺便卡一下 /boot 目录,发现里面以及没有东西了,内核文件和配置文件都没了 解决方法就是重新安装内核,rpm 可以强行--force 覆盖安装。 装完内核之后,重新安装grub2,输入 grub2-install /dev/sda,庵后重新编译一下 grub2 就行了 重启系统即可。