Ubuntu16.04和WindowsXP双系统开机出现grub rescure 解决方案

时间:2024-03-20 09:38:36

首先,了解一下grub rescure模式下可以使用的命令:

set设置变量值,单独的set可以查看系统设置的默认值,查看grub设定内容是否和实际的分区路径一致

ls 会罗列所有磁盘的分区信息,例如(hd0),(hd0,msdos3),(hd0,msdos2),(hd0,msdos1)

insmod加载模块

root 确定启动分区

prefix确定启动路径

set root 设置启动分区 /set prefix 设置启动路径


其次,我在开机的时候遇到的问题

error: file '/boot/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

说明normal.mod 文件丢失,不能进入正常模块。

这种情况下需要使用LiveCD或者ubuntu安装U盘,进行Try ubuntu并链接网络

(需要进入Ubuntu界面,但是并不需要安装,如果直接安装的话,以前在Ubuntu里面的文件可全部都没有了,所以万不得已,千
万别这样做)

1,打开终端,终端快捷键是Ctrl+Alt+T,输入命令,添加boot-repair所在的源:
sudo add-apt-repositoryppa:yannubuntu/boot-repair && sudo apt-get update


2,待上面命令执行完毕后,继续输入以下命令,安装boot-repair并且开启boot-repair
sudo apt-get install -y boot-repair &&boot-repair

3,启动boot-repair之后,在出现的界面点击BootRepair中的Recommendedrepair选项。

BootRepair需要花费一些时间来分析引导和Grub中存在的问题。然后,它会提供一些可在命令行中直接运行的命令。将这些命令一个个在终端中执行。我这边屏幕上显示的是:

Ubuntu16.04和WindowsXP双系统开机出现grub rescure 解决方案

在输入了这些命令之后,它会执行执行一段时间,

bootrepair成功完成后,关闭你的电脑,移除USB并再次引导

重启电脑后系统进入的是grub模式,而且常规的命令无法执行,提示Unconmand,只能重新使用Try Ubuntu进行更新grub,最后完美解决。步骤如下:

1,查看硬盘分区状况,获取Linux 系统安装分区编号

  代码如下:

  sudofdisk -l

  查看输出结果,然后根据文件类型和分区大小来判定Linux 系统安装在哪块硬盘和安装的分区。我的电脑是在/dev/sda7安装了Ubuntu

  或者,打开Gparted 图形化工具来查看分区信息也可以。

  挂载Ubuntu 安装分区

2,已知Ubuntu安装在了/dev/sda7上,所以我们可以用下面命令来挂载Ubuntu安装分区。你需要将/dev/sda7换成自己的Linux 安装分区。

  代码如下:

  sudomount /dev/sda7 /mnt

3,挂载其他所需的目录(使用--bind

  代码如下:

  sudomount --bind /dev /mnt/dev

  sudomount --bind /proc /mnt/proc

  sudomount --bind /sys /mnt/sys

4,Chroot到硬盘上的Linux 系统

  代码如下:

  sudochroot /mnt

5,安装&更新Grub

  代码如下:

  grub-install/dev/sda

  grub-mkconfig-o /boot/grub/grub.cfg

6.Grub已经修复成功,我们还需要退出chroot 环境、卸载已经挂载的设备与目录:

  代码如下:

  exit#退出chroot 环境

  sudoumount /mnt/dev

  sudoumount /mnt/proc

  sudoumount /mnt/sys

  sudoumount /mnt

7.重启!

  上面就是使用UbuntuLiveCD修复grub的方法介绍了,如果你在使用双系统安装windows中出现Grub引导错误,不妨使用该方法进行修复吧。