升级win10导致ubuntu/deepin grub2 引导错误【 error: unknown filesystem. 】
下面是修复的完整步骤!一定要看完在操作!切记切记!不要边看边操作!
截图中使用红色标记的都是正确的命令,使用青色标记的是错误命令!
1、先使用【 ls 】命令查看下磁盘都有那些分区
grub rescue> ls
(hd0) (hd0,gpt8) (hd0,gpt7) (hd0,gpt6) (hd0,gpt5) (hd0,gpt4) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (cd0)
2、接下来查看下根在哪个分区上。(标注下,只有命令【 ls 】后面有一个空格,其他地方没有空格。实际上如果你有PE一类工具的话,也可以在pe中找到根分区的位置。)
grub rescue> ls (hd0,gpt8)/
./ ../ lost+found/ deepinhost/ bin/ boot/ dev/ etc/ home/ lastore/ lib/ lib64/ ....
(标注下,看样子我的运气很好第一个就是我的根分区!哈哈哈哈! lucky 我顺便把错误的也给输出一下)
grub rescue> ls (hd0,gpt7)/
error: unknown filesystem.
3、既然已经知道了根分区的位置了,那就该改引导了;先 【 set 】 下,看下引导参数,可以看到grub错误是因为引导的分区错误,它们把自己的老家给指到了JP了!
grub rescue> set
cmdpath=(hd0,gpt2)/EFI/deepin
prefix=(hd0,gpt7)/boot/grub
root=hd0,gpt7
(标注下,冲定义引导变量,按照上面的个格式,没有空格哦!千万别搞错了)
grub rescue> set prefix=(hd0,gpt8)/boot/grub
grub rescue> set root=hd0,gpt8
4、接下来执行 【 insmod normal 】 这命令是 啥意思我不知道,猜测应该是加载检查配置是否正确把,因为上一步【 set 】中如果定义错误,这一步会报错的!
grub rescue> insmod normal
5、既然没有错,哪就准备见证奇迹的出现吧!
grub rescue> normal
是不是看到了久违的引导界面了!
你以为就这么完事了? 哈!那只能说你离500W大奖要失之交臂了!
6、既然已经进入系统了,剩下的就好说了。(标注,其实我个人觉得先sudo到root在继续下面的操作是不是会好很多... 反正我是这么干了)
$ sudo update-grub2
Generating grub configuration file ...
Found theme: /boot/grub/themes/deepin/theme.txt
Found background image: /boot/grub/themes/deepin/background.png
Found linux image: /boot/vmlinuz-4.2.0-1-amd64
Found initrd image: /boot/initrd.img-4.2.0-1-amd64
Found Windows Boot Manager on /dev/sda2@/EFI/Microsoft/Boot/bootmgfw.efi
Adding boot menu entry for EFI firmware configuration
done
更新完,想确认下grub引导是不是被修复,可以直接查看【 /boot/grub/grub.cfg 】里是不是已经变过来了。
7、好了,继续执行修复操作
# grub-install /dev/sda
Installing for x86_64-efi platform.
Installation finished. No error reported.
8、接下来就是!【 reboot 】了! 如果看到了grub引导界面!恭喜你 一次OK了!(话说我搞了两三次才OK!)