CentOS 7 GRUB详解
GRUB简介
GRUB(GRand Unified Bootloader)是Linux系统中广泛使用的引导加载程序,CentOS 7默认使用GRUB2,相比GRUB1,GRUB2具有更丰富的功能和更好的可扩展性。
GRUB配置文件
GRUB2的配置文件通常位于/boot/grub2/grub.cfg
,这个文件包含了系统启动时需要加载内核及初始化内存盘的信息,如果该文件损坏或丢失,系统将无法正常启动,会出现grub>
提示符。
常见GRUB问题与解决方法
问题描述 | 解决方案 |
/boot/grub2/grub.cfg损坏 | 删除/boot/grub2/grub.cfg 后重启,进入救援模式后重新生成配置文件:grub2mkconfig o /boot/grub2/grub.cfg 。 |
开机直接进入grub命令行 | 使用以下步骤修复: 1. 查看分区信息: ls 2. 设置临时root分区: set root=hd0,msdos1 3. 加载内核和内存盘: linux16 /vmlinuzxxx root=/dev/mapper/centosroot 4. 启动: initrd16 /initramfsxxx boot 。 |
MBR记录中的引导程序破坏 | 使用光盘或U盘进入救援模式,修复MBR: 1. 查看前512字节内容 2. 破坏bootloader 3. 再次查看前512字节内容 4. 修复MBR。 |
双系统下Grub配置错误 | 使用LiveCD启动系统,挂载原系统分区,编辑/boot/grub2/grub.cfg ,添加正确的启动项。 |
GRUB密码及单用户模式
为了增加系统安全性,可以设置GRUB密码以防止未经授权的用户通过单用户模式修改root密码,在CentOS 7中,设置GRUB密码的方法如下:
1、生成加密密码:grub2mkpasswdpbkdf2
2、编辑/etc/grub2.cfg
,添加以下内容:
set superusers="root" password_pbkdf2 root PASSWORD
其中PASSWORD
替换为生成的加密密码。
更改内核启动顺序
在CentOS 7中,由于使用了GRUB2,更改内核启动顺序的方法与CentOS 6不同,以下是具体步骤:
1、执行以下命令进入GRUB2配置目录:cd /etc/default/grub.d/
2、找到并编辑对应的内核配置文件(例如10_linux
)。
3、调整内核启动顺序后,运行grub2mkconfig o /boot/grub2/grub.cfg
生成新的配置文件。
FAQs
问:为什么开机会出现grub rescue提示符?
答:这通常是由于GRUB配置文件损坏或MBR记录中的引导程序被破坏,可以通过上述方法进行修复。
问:如何确保GRUB配置的安全性?
答:可以设置GRUB密码,防止未经授权的用户通过单用户模式修改root密码。
问:如何更改CentOS 7的内核启动顺序?
答:进入GRUB2配置目录,编辑对应内核配置文件,然后重新生成GRUB配置文件。
问:如果GRUB2目录里的其他文件被删除怎么办?
答:如果依赖的文件被删除,可能需要通过光盘救援模式来修复系统。
问:在双系统环境下,如何处理Grub配置错误?
答:可以使用LiveCD启动系统,挂载原系统分区,编辑/boot/grub2/grub.cfg
,添加正确的启动项。
通过以上内容,可以全面了解和解决CentOS 7中与GRUB相关的问题,无论是配置文件损坏、引导程序破坏,还是系统安全性设置,都有相应的解决方案来应对。