最近,在grub引导的Ubuntu+Win7双系统上作业,用的是Ubuntu14.04.2。进行系统更新,更新到一般卡住了,恰好此时在进行grub相关文件的更新,我把机器重启后进入了grub rescue模式,如下:

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

  Entering rescue mode...

  grub rescue>

  经过网络一番查找和自身验证,我汇总了三种解决方法。

  1.制作Ubuntu的U盘启动工具,选择U盘启动机器,进入Try Ubuntu,安装boot-repair工具,用该工具回复损坏的grub.

    a.在命令行下安装boot-repair,首先链接源地址:$sudo add-apt-repository ppa:yannubuntu/boot-repair

                         $sudo apt-get update

                         $sudo apt-get install boot-repair

    b.安装成功后可以在dash中或终端里启动boot-repair,开始修复系统。

    c.系统修复可能需要几分钟,后关机拔掉U盘,再启动。即可看到熟悉的grub引导界面了。

  2.直接在grub rescue模式下选择normal模式启动,然后再修改更新grub。这种方法的关键点有三个,一是选择好grub所在的分区目录,二是找到root所在的分区,三是要有normal.mod文件。该模式下命令有限,常用的有ls set insmod,通过这三个命令,来找到上述文件目录项后设置root和prefix,再选择normal启动模式。

    a.grub rescue>set //该命令会列出boot目录所在的分区,grub目录所在的分区;

    b.grub rescue>ls  //列出所有分区,样式如(hd0,msdosX);

    c.grub rescue>ls (hd0,msdosX)/  //依次列出每个分区下的目录,找出root在那个分区下,这里我们假设grub在(hd0,msdos6)/boot/grub,root在(hd0,msdos5)分区上;

    d.grub rescue>set root=(hd0,msdos5)

      grub rescue>set prefix=(hd0,msdos6)/boot/grub

       grub rescue>insmod /boot/grub/normal.mod  //若没有normal.mod这个文件,请选择第一种或第三种方法。

    e.grub rescue>normal  //显示grub菜单

    f.通过显示的菜单进入系统后,在命令行对系统进行更新修复。

      $sudo update-grub

      $sudo grub-install /dev/sda  //sda为硬盘号,不是分区号(sda1,sda2等等)

      $sudo shutdown -r now  //重新启动机器

    ps:可以在grub.cfg中修改grub菜单。

  3.若第一和第二中方法无效,那么只能放弃所有从来再来,用做好的启动工具重新做个Ubuntu系统,在更新修复grub -_*!。

 

最新文章

  1. C#中日期和时间相加的方法
  2. CPU中断和轮询
  3. Dev控件GridView单元格绑定控件
  4. deepin 15.3 安装数据库MariaDB10.0
  5. cf.301.D. Bad Luck Island(dp + probabilities)
  6. Android:res之layer-list的用法
  7. Jquery对Cookie的操作
  8. Kubuntu麦克风音频无声音
  9. Introducing Microsoft Sync Framework: Sync Services for File Systems
  10. Extjs4 使用store的post方法
  11. R-大数据分析挖掘(5-R基础回顾)
  12. Flume研究心得
  13. apache 启动不了
  14. ASP.NET 5 Identity
  15. 【机器学习】彻底搞懂CNN
  16. Redis学习之SDS源码分析
  17. Android 异常 android.os.NetworkOnMainThreadException
  18. 有关自动化构建gulp的搭建
  19. synchronized的锁问题
  20. 反转链表的golang实现

热门文章

  1. IOS第18天(3,CALayer隐式动画)
  2. NPOI简单操作excel
  3. Eclipse Android开发环境搭建
  4. UIBezierPath类 笔记
  5. 委托(delegate)的三种调用方式:同步调用,异步调用,异步回调(转载)
  6. Unity NGUI 资源下载
  7. SQL语法粗整理
  8. biztalk重新发布
  9. C#实现执行多条SQl语句,实现数据库事务
  10. Java语言的编写规范