昨天晚上手贱点了win10更新,结果今天早上一看卡在了grub rescue的界面,一脸懵逼,从来没有遇到过此类情况,于是,我便开始google又baidu,搞的心慌慌好在最后终于搞好了,借此学习下,这种突发情况的处理,和linux学习
win10更新后会导致盘符的变化,也就是说grub引导启动的位置也发生了变化,现在要做的就是将grub指定在正确的盘符。
首先在grub rescue下使用
ls:列出所有分区
显示出(hd0,gpt1),(hd0,gpt2),…(hd1,gpt1),(hd1,gpt2)…
因为我有两个盘,所以这里显示hd0代表第一个磁盘,hd1代表第二个磁盘,后面的gpt1代表了分区,根据电脑型号不同,gpt也可能会变化,但在下面命令下,gpt可以省略,例如(hd0,1)代表第一个盘的1分区。
然后找到linux系统的存放位置。如果记不清可以尝试一个一个盘找,像这样
ls (hd0,1)/ # error
ls (hd0,2)/ # error
...
ls (hd1,6)/ # /.../lost+found/boot
ls (hd1,7)/ # /../efi/grub
一个一个试,最终会出现很多文件名称就是了
然后
set root=(hd1,6) # 根目录
set prefix=(hd1,7)/grub # grub所在位置,因为我是efi启动,独立分出的所以不在根目录下
insmod normal # 如果这一步没问题,那就是没问题了
normal
normal模组作用是把一些指令,文件系统模组,及其他需要的模组自动呼叫进来
tips:这里的命令只要打错就得重启在来一次,因为这里无法覆盖之前的命令。
成功进入熟悉的grub引导界面后,首先要进入linux系统,修改好grub,不然下次启动,还是会进入grub rescue。
进入终端,输入以下命令
sudo update-grub # 这一步如果能成功那就没什么问题,如果不行则以下命令
sudo grub-install /dev/sda # sda是装linux的磁盘
如果出现Installation finished. No error reported 那就大功告成了。?
最后,如果不想在出现这种情况,最好是将win10的自动更新给关了。