zoukankan      html  css  js  c++  java
  • Ubuntu+Win7双系统grub的修复问题

      最近,在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 -_*!。

     

    wsksec@gmail.com Pressing on Toward the Goal
  • 相关阅读:
    需求的仙界
    Office 2010卸载方案
    利用TwinCAT2对利时步进驱动器进行参数设置
    WIN10版本下的旋风码(一个小众输入法)AHK代码
    windows安装mysql服务
    WPF 给用户控件增加自定义事件的记录
    WPF学习记录 三、控件模版
    WFP 按钮增加图片背景,并且在按压时切换图片的记录
    WPF学习记录 二、Style样式
    WPF学习记录 一、布局
  • 原文地址:https://www.cnblogs.com/shuk-notes/p/4655979.html
Copyright © 2011-2022 走看看