CentOS 7 GRUB配置与排错
一、CentOS 7的GRUB介绍
在CentOS 7中,GRUB(Grand Unified Bootloader)是默认的引导加载程序,与CentOS 6中的GRUB legacy不同,CentOS 7采用的是GRUB2版本,提供了更多的功能和更好的兼容性,GRUB的主要作用是在系统启动时加载操作系统内核,并把控制权移交给内核,GRUB还提供了一个菜单界面,允许用户选择不同的启动项,例如不同的内核版本或救援模式。
二、配置文件结构
主要配置文件及目录
/boot/grub2/grub.cfg
这是实际生成的配置文件,但它是由其他脚本生成的,不建议直接编辑。
/etc/default/grub
这个文件包含了全局的GRUB配置选项,比如默认启动项、启动等待时间等。
/etc/grub.d/
这个目录包含了多个脚本文件,每个文件负责生成一部分GRUB菜单,这些脚本按照数字顺序执行,最终生成完整的菜单。
配置文件之间的关系
/boot/grub2/grub.cfg
:由/etc/grub.d/
目录中的脚本生成,包含所有菜单项的具体配置。
/etc/default/grub
:定义了基本的GRUB设置,如默认启动项和等待时间。
/etc/grub.d/
:包含多个脚本文件,用于生成具体的菜单项。
三、基本配置与修改
修改启动等待时间
步骤:
打开/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