开机出现 grub  rescue>的解决办法

【时间】2018.09.22

【标题】开机出现 grub  rescue>的解决办法

【参考链接】https://jingyan.baidu.com/article/c85b7a640cd7d6003bac95f8.html,侵权删

 

一、开机错误如图:

error: file '/boot/grub/i386-pc/normal.mod' not found.

Entering rescue mode...

grub rescue>

二、先输入ls回车,查看显示的内容。如:

(hd0)  (hd0,msdos14) (hd0,msdos13) (hd0,msdos12)....

三、然后找出哪个盘安装了系统,

ls (hd0,msdos1)/boot/grub

ls (hd0,msdos2)//boot/grub

 

四、 如输入ls (hd0,msdos13)/boot/grub后出现了类似如下内容。即为找到了系统所在分区。

 

五、然后依次输入如下内容:

set root=(hd0,msdos13)/boot/grub

set prefix=(hd0,msdos13)/boot/grub

insmod normal

normal

六、 normal执行之后即进入选择启动项的界面。可以看到除了WIN8之外还有Ubuntu Kylin和Ubuntu 13.04总共3个系统。选择启动的系统进入即可。

(PS:若只有一个系统,输入normal后会自动启动)

### 解决 Ubuntu 64 位系统中的 GRUB Rescue 问题 当遇到 `error: unknown filesystem` 和 `grub rescue>` 提示时,通常是因为分区调整或 UUID 改变导致 GRUB 配置文件损坏。以下是针对此问题的具体解决方案。 #### 方法一:通过 GRUB Rescue 命令行修复 在 GRUB Rescue 模式下,可以通过手动输入命令来恢复正常的引导功能: 1. **查找有效的根分区** 使用以下命令列出所有可用的磁盘分区并找到包含 `/boot/grub` 的分区: ```bash ls ``` 输出类似于 `(hd0,msdosX)` 或 `(hd0,gptX)` 的分区列表。逐一检查这些分区是否存在有效的 GRUB 文件夹: ```bash ls (hd0,msdosX)/boot/grub/ ``` 如果该路径存在且包含 `grub.cfg` 等必要文件,则说明找到了正确的分区[^4]。 2. **设置根分区和前缀变量** 找到正确的分区后(假设为 `(hd0,msdos5)`),执行以下命令设置根目录和 GRUB 路径: ```bash set root=(hd0,msdos5) set prefix=(hd0,msdos5)/boot/grub ``` 3. **加载 Normal 模块** 加载必要的模块以进入标准 GRUB 引导菜单: ```bash insmod normal normal ``` 此操作完成后应能成功进入 GRUB 启动界面[^2]。 --- #### 方法二:借助 Live CD/USB 修复 GRUB 如果无法通过上述方法解决问题,可使用 Ubuntu Live CD/USB 来重新安装 GRUB: 1. **启动至 Live 环境** 插入 Ubuntu 安装介质并从其启动,选择“Try Ubuntu without installing”。 2. **挂载目标分区** 打开终端,确认硬盘分区信息: ```bash sudo fdisk -l ``` 假设要修复的目标分区为 `/dev/sda5`,则将其挂载到临时目录: ```bash sudo mount /dev/sda5 /mnt ``` 3. **绑定关键文件系统** 绑定其他必需的虚拟文件系统以便后续操作: ```bash sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys ``` 4. **切换至目标环境** 切换到已挂载的系统环境中运行命令: ```bash sudo chroot /mnt ``` 5. **重新安装 GRUB** 更新 GRUB 并指定安装位置(通常是主硬盘设备 `/dev/sda`): ```bash grub-install /dev/sda update-grub exit ``` 6. **卸载并重启** 卸载之前挂载的所有内容,并安全退出: ```bash sudo umount /mnt/{dev,proc,sys} sudo umount /mnt reboot ``` 完成以上步骤后,GRUB 应恢复正常工作状态[^5]。 --- #### 注意事项 - 在设置 `set root` 和 `set prefix` 参数时,请确保所选分区确实包含完整的 GRUB 文件结构。 - 对于 GPT 分区表格式的磁盘,需额外注意 EFI 引导方式下的配置差异。 ```python # 示例 Python 脚本用于自动化检测 Linux 分区 import os def list_linux_partitions(): partitions = [] with open('/proc/partitions', 'r') as f: lines = f.readlines()[2:] for line in lines: parts = line.strip().split() dev_name = '/dev/' + parts[3] try: if os.path.ismount(dev_name): continue output = os.popen(f'ls {dev_name}/boot/grub').read() if 'grub.cfg' in output: partitions.append(dev_name) except Exception: pass return partitions print(list_linux_partitions()) ```
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值