云服务器
强制重启导致centos系统故障:file /grub2/i386-pc/normal.mod not found
2025-07-26 10:45  点击:0
修复GRUB启动菜单的方法与步骤

前言

GRUB(Grand Unified Bootloader)是Linux系统中的一个重要组件,它负责加载操作系统的内核并提供启动菜单。有时候,由于各种原因(如更新系统、安装新系统、磁盘错误等),GRUB可能会出现配置错误或丢失,导致系统无法正常启动。本文将介绍如何通过GRUB rescue模式修复GRUB启动菜单。

步骤一进入GRUB rescue模式

1. 在计算机启动时,迅速按下键盘上的特定键(如F2、F10、F12或Del),这取决于你的主板和BIOS设置,进入BIOS设置界面。
2. 找到启动选项,通常在“Advanced”或“Boot”菜单下,将第一启动设备设置为你的系统安装的硬盘。
3. 保存并退出BIOS设置,计算机将重新启动并尝试从你指定的硬盘启动。
4. 如果启动失败,系统将进入GRUB rescue模式。

步骤二检查磁盘分区

在GRUB rescue模式下,可以使用ls命令来列出所有可用的磁盘分区。

shell
grub rescue\u003e ls


输出应该类似于

shell
(hd0) (hd0,gpt1) (hd1) (hd1,gpt6) (hd1,gpt5) (hd1,gpt4) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1)


这里,(hd0)表示第一块硬盘,(hd1)表示第二块硬盘,以此类推。每个分区是对应的硬盘号加上分区号,如(hd0,gpt1)表示第一块硬盘上的第一个分区。

步骤三设置GRUB启动分区

根据你的系统安装位置,尝试设置正确的启动分区。假设你的系统安装在(hd1,gpt5)分区上,你可以使用set命令来设置GRUB的启动分区。

shell
grub rescue\u003e set root=(hd1,gpt5)
grub rescue\u003e set prefix=(hd1,gpt5)/boot/grub


这里,root变量指定GRUB应该从哪个分区读取内核和模块,prefix变量指定GRUB的安装路径。

步骤四加载基本模块

使用insmod命令加载GRUB的基本模块。

shell
grub rescue\u003e insmod /boot/grub/normal.mod


如果模块加载成功,你将能够看到系统的启动菜单。选择你的系统并进入。

步骤五修复GRUB

一旦你成功进入系统,可以使用以下命令来修复GRUB

shell
sudo update-grub
sudo grub-install /dev/sda


这里,/dev/sda是指你的系统所在的第一块磁盘。这些命令将更新GRUB的启动菜单,并确保GRUB能够正确引导你的系统。