在grub的rescue模式修复linux引导
今天在windows 10系统收到系统更新通知,没看清楚就手贱点了马上更新。以为只是像那些普通更新一样重启一下更新就完了,万万没想到这个是覆盖更新,也就是说这是一个全新的系统更新而不是系统补丁。在安装的过程中我就在心中默念 “完了,这安装完成linux的系统的引导肯定是要手动修复了。”,果然安装完之后默认是用windows启动引导,F2设置切换到deepin linux的引导后依然没法正常启动linux。要修复这个问题并不复杂,下面这篇文章记录了修复引导的全过程。
错误信息
error: file '/boot/grub/x86_64-efi/normal.mod' not found. Entering rescue mode... grub rescue> _
进入系统
从错误信息上可以看出,问题出现在grub找不到文件normal.mod,我们现在要做的就通过grub的rescue终端设置linux的引导分区和grub文件路径并重新引导系统。
- 查找系统引导所在的分区:
用ls命令列出所有的分区
grub rescue> ls (hd0) (hd1) (hd1,gpt8)....
根据你自己的记忆大概定位系统引导所在的分区(如果不记得那就只能逐个去试了)并用ls定位引导所在的分区(输出包含boot/)
如下图可以看出(hd1,gpt7)就是我们要找的分区:
grub rescue> ls (hd1,gpt6)/ ./ ../ lost+found/ grub rescue> ls (hd1,gpt7)/ ./ ../ lost+found/ bin/ boot/ dev/...
- 配置grub引导
grub rescue> set root=(hd1,gpt7) grub rescue> set prefix=(hd1,gpt7)/boot/grub
- 切换到normal模式
grub rescue> insmod normal grub rescue> normal
如果上面设置没有错的话,就可以正常进入系统的grub菜单了。
安装grub到efi分区
正常进入系统后,如果不先修复grub的引导的话,重启电脑之后还是会进入刚刚那个rescue模式。
- 找出你的efi分区挂载点
运行df命令:
df
如下图可看出efi挂载点是:/dev/sdb2
- 重新安装grub
用grub-install命令安装grub:
如果提示找不到某个命令,尝试把你的/usr/sbin添加到环境变量PATH中:
打开:vim /etc/profile
添加: export PATH=$PATH:/usr/sbin
应用配置: source /etc/profile
sudo grub-install /dev/sdb2
如果得到如下输出,恭喜你grub成功安装了!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)