简要版本解决办法
ls查看已有分区
ls (hd0,6)可以看到里面有GRUB目录
set命令查看当前的变量,发现都是hd0,7
set root=(hd0,6)
set prefix=(hd0,6)/grub
insmod normal
normal
每次开机都这么折腾一遍太麻烦,怎么办呢?解决办法:
sudo update-grub
sudo grub-install /dev/sda
Grub2的运行模式
Grub2中的运行模式,有了些许变化:
Normal 也就是常规模式,包括了菜单界面与控制台,即是 Grub 传统版的默认模式。
Rescue 这个是受限模式,比如 Grub 没有能找到 root 设备,就会进入这种模式。
通常,我们可以在 normal 模式下输入 'rescue' 即可进入 rescue 模式;在 rescue 模式下输入 'normal' 即可进入 normal 模式。
可是,通常后一种情况,需要我们做些一个相关设置才可以进入菜单:
1
2
3
set
root=(hd0,1) # 指定根分区为第一个磁盘,里面包含了 grub.cfg
set prefex=/boot/grub # 指定路径前缀,以构成菜单文件字符串'(hd0,1)/boot/grub/grub.cfg'(通常也不需要修改)
然后输入 'normal' 就可以换回常规的菜单模式了。
在rescue救援模式下只有很少的命令可以用:
set 查看环境变量,这里可以查看启动路径和分区。
ls 查看设备
insmod 加载模块
root 指定用于启动系统的分区,在救援模式下设置grub启动分区
prefix 设定grub启动路径
修复操作说明
我的linux在调整分区后,出现了grub rescue>