在CentOS系统中,GRUB(Grand Unified Bootloader)是引导操作系统的关键组件,它负责在系统启动时加载内核并初始化硬件,当GRUB配置文件出现错误或损坏时,系统可能无法正常启动,此时需要手动修复GRUB配置,本文将详细介绍在CentOS系统中处理GRUB相关问题的方法,包括常见故障排查、配置文件修复及引导项调整等内容。

GRUB故障的常见表现
当GRUB出现问题时,系统启动时可能会显示错误提示,如“error: no such partition”“error: file not found”或直接进入GRUB rescue模式,这些错误通常由分区表损坏、引导文件丢失或GRUB配置错误引起,在GRUB rescue模式下,系统会提供一个命令行界面,用户可以通过手动加载内核和initrd文件来临时启动系统,进而进行修复。
进入GRUB救援模式后的操作
在GRUB rescue模式下,首先需要确认系统分区的位置,使用ls命令列出所有可用设备,例如(hd0,gpt1)或(hd0,msdos1),然后使用set prefix=(hd0,gpt1)/boot/grub和set root=(hd0,gpt1)命令指定GRUB的安装位置,加载必要的模块:insmod normal,然后执行normal命令尝试启动系统,若能成功进入系统,即可进行后续修复。
修复GRUB配置文件
进入系统后,首先需要检查GRUB配置文件/boot/grub2/grub.cfg是否存在或损坏,使用grub2-mkconfig命令重新生成配置文件:
grub2-mkconfig -o /boot/grub2/grub.cfg
该命令会根据当前系统配置自动生成GRUB菜单项,如果/boot分区是独立的(如/boot/efi),可能需要指定路径:
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
安装GRUB到引导设备
若GRUB未正确安装到引导设备(如MBR或EFI分区),需手动执行安装命令,对于传统BIOS系统:

grub2-install /dev/sda
对于UEFI系统:
grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=centos
安装完成后,重启系统验证GRUB是否正常工作。
调整GRUB默认启动项
若需要修改默认启动的操作系统或超时时间,可编辑/etc/default/grub文件,将默认启动项设置为第二个选项(从0开始计数):
GRUB_DEFAULT=1
调整超时时间为10秒:
GRUB_TIMEOUT=10
保存文件后,运行grub2-mkconfig更新配置。

FAQs
问:如何备份GRUB配置文件?
答:使用cp命令备份/boot/grub2/grub.cfg和/etc/default/grub文件,
cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak cp /etc/default/grub /etc/default/grub.bak
备份后可在出现问题时快速恢复。
问:GRUB rescue模式下如何恢复系统?
答:在GRUB rescue模式下,依次执行以下命令:
ls查找分区;set root=(hd0,gpt1)(根据实际分区调整);set prefix=(hd0,gpt1)/boot/grub;insmod normal;normal。
成功启动后,按上述方法修复GRUB配置并重新安装。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复