HCRM博客

如何在CentOS 7中配置和修复GRUB引导加载器?

CentOS 7 GRUB配置与排错

一、CentOS 7的GRUB介绍

如何在CentOS 7中配置和修复GRUB引导加载器?-图1
(图片来源网络,侵权删除)

在CentOS 7中,GRUB(Grand Unified Bootloader)是默认的引导加载程序,与CentOS 6中的GRUB legacy不同,CentOS 7采用的是GRUB2版本,提供了更多的功能和更好的兼容性,GRUB的主要作用是在系统启动时加载操作系统内核,并把控制权移交给内核,GRUB还提供了一个菜单界面,允许用户选择不同的启动项,例如不同的内核版本或救援模式。

二、配置文件结构

主要配置文件及目录

/boot/grub2/grub.cfg

这是实际生成的配置文件,但它是由其他脚本生成的,不建议直接编辑。

/etc/default/grub

这个文件包含了全局的GRUB配置选项,比如默认启动项、启动等待时间等。

如何在CentOS 7中配置和修复GRUB引导加载器?-图2
(图片来源网络,侵权删除)

/etc/grub.d/

这个目录包含了多个脚本文件,每个文件负责生成一部分GRUB菜单,这些脚本按照数字顺序执行,最终生成完整的菜单。

配置文件之间的关系

/boot/grub2/grub.cfg:由/etc/grub.d/目录中的脚本生成,包含所有菜单项的具体配置。

/etc/default/grub:定义了基本的GRUB设置,如默认启动项和等待时间。

/etc/grub.d/:包含多个脚本文件,用于生成具体的菜单项。

三、基本配置与修改

如何在CentOS 7中配置和修复GRUB引导加载器?-图3
(图片来源网络,侵权删除)

修改启动等待时间

步骤:

打开/etc/default/grub文件。

找到GRUB_TIMEOUT这一行,修改其值即可,将等待时间改为3秒:

  GRUB_TIMEOUT=3

保存文件并退出编辑器。

运行以下命令重新生成GRUB配置文件:

  grub2mkconfig o /boot/grub2/grub.cfg

对GRUB进行加密

为了提高安全性,可以为GRUB添加密码保护,防止未经授权的用户修改启动参数。

步骤:

编辑/etc/grub.d/00_header文件,添加以下内容:

  set superusers="root"
  password_pbkdf2 root your_password

保存文件并退出编辑器。

重新生成GRUB配置文件:

  grub2mkconfig o /boot/grub2/grub.cfg

修改root密码

如果需要修改root用户的密码,可以通过以下步骤完成:

步骤:

重启系统,按e键进入编辑模式。

linux16那一行的末尾加上rd.break console=tty0,然后按Ctrl+X启动。

重新挂载文件系统并切换到根目录:

  mount o remount,rw /sysroot
  chroot /sysroot

修改root密码:

  echo "new_password" | passwd stdin root

创建相关文件以重新标记SELinux环境值:

  touch /.autorelabel

退出并重启系统:

  exit
  reboot

四、常见问题排错

修复GRUB故障

如果因为某些原因导致GRUB损坏,例如MBR(Master Boot Record)被覆盖,可以通过以下步骤修复:

步骤:

使用Live CD或USB引导系统。

找到Linux分区并挂载:

  fdisk l
  mount /dev/sdaX /mnt

切换到chroot环境:

  archchroot /mnt

重新安装GRUB:

  grub2install /dev/sda
  grub2mkconfig o /boot/grub2/grub.cfg

退出并重启系统:

  exit
  reboot

恢复丢失的内核或配置文件

如果内核文件或GRUB配置文件丢失,可以按照以下步骤恢复:

步骤:

使用Live CD或USB引导系统。

挂载本地Linux分区:

  fdisk l
  mount /dev/sdaX /mnt

重新安装内核:

  rpm force nodeps avh /mnt/*.rpm

重新安装GRUB:

  grub2install /dev/sda
  grub2mkconfig o /boot/grub2/grub.cfg

重启系统:

  reboot
分享:
扫描分享到社交APP
上一篇
下一篇