首先,了解一下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中存在的问题。然后,它会提供一些可在命令行中直接运行的命令。将这些命令一个个在终端中执行。我这边屏幕上显示的是:
在输入了这些命令之后,它会执行执行一段时间,
在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引导错误,不妨使用该方法进行修复吧。