zoukankan      html  css  js  c++  java
  • 在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成功安装了!

    转载请注明出处:http://www.cnblogs.com/keitsi/p/6229005.html

  • 相关阅读:
    升级或安装 GNOME Shell
    安装eclipse for c/c++环境
    BT3入门之中文语言支持
    开始接触BT5-自动登录X界面
    标准流与序列化
    IO流
    Collection与Map容器
    常用类
    枚举与常用类
    异常处理机制
  • 原文地址:https://www.cnblogs.com/keitsi/p/6229005.html
Copyright © 2011-2022 走看看