情况描述:
1、笔记本安装双系统,分别是Windows 10 2019LTSC版和deepin 20.2
2、开机利用深度的Grub管理工具选择启动系统,10秒钟内可以选择启动项目,默认Windows10。
3、因传说Deepin 20.2.2可以直接支持安卓App,于是主动升级系统(之前在UOS中体验过安卓App,但感觉UOS可玩性不如Deepin)
4、Deepin在系统中升级后重新开机直接进入grub>状态下,无法进入其他系统。
解决思路:
之前虽然接触过grub但都是在特殊情况下根据教程操作,对grub不了解,因此首先baidu、bing搜索解决方案。但各种方案测试后虽然可以进Windows系统,可以进Deepin系统,但必须在grub下输入相应的命令才可以,启动时的系统选择菜单找不出来了。于是综合众多教程后重新分析寻找解决方案。
1、grub>下输入命令exit可以退出grub状态,直接启动windows 10系统。
2、grub>下输入ls命令,可以显示所有分区,分区显示如下:
(hd0),(hd0,gpt3),(hd0,gpt2),(hd0,gpt1),(hd1),(hd1,gpt3),(hd1,gpt2),(hd1,gpt1)
依次输入 ls (hdX,gptX) 其中X为上述列表中的相应数字,直至出行EXT4字样分区,比如我的Deepin启动分区在 (hd1,gpt3)上,以下命令均以此为例,不同环境要根据实际情况自行修改。
3、grub>下依次输入命令
set root =(hd1,gpt3)
set prefix=(hd1,gpt3)/boot/grub
normal
可以调出启动菜单,选择Deepin即可进入深度系统。但重启后又恢复到grub>状态下。
4、经过若干尝试后,比如
ls (hd1,gpt3)/boot/grub 等等命令,突然想起 set 后面的变量应该可以通过echo输出,于是执行了
echo $prefix
系统输出的结果我记不太清,但有UOS字样,于是重新开机进入Deepin
5、进入root
su
cd /boot/efi/EFI
ls
查看当前引导的信息,发现引导的记录里原来有Microsoft、Deepin、Ubuntu,现在多了个UOS,查看UOS目录下的文件发现比其他文件少了几个,于是将ubuntu下的文件复制到UOS下。
cp ubuntu/* uos/
6、重新启动Deepin,引导菜单正常。
原因分析:
1、Deepin之前的引导程序一直利用的ubuntu目录,但不知是那个版本升级后出现了UOS目录,但uos目录下的引导文件又不完整,所以出现此问题。
2、尝试故障复现,另一台Deepin 20.2.1 升级20.2.2,升级后一切正常。
3、deepin系统的grub启动,之前是先通过EFI/ubuntu目录下面的efi文件调用EFI/deepin目录下的efi文件来启动系统的,现在是先调用EFI/UOS下相关文件。前一台计算机Deepin安装较早,应该是2019年安装的版本,是陆续升级到最新版本的,最开始是没有UOS的。后一台计算机安装的时候就是Deepin 20.2.1,可能安装的时候UOS就是存在的。
,