Hello,大家好,我是 Ving 哥~
想必上图中的界面,大家差不多都见过。这是 Grub 命令行。
让我们设想这样的情景:
你好不容易辛辛苦苦配置好了多启动方案,结果到了有一天,你一开机,就看到上面这几行白字。
![](https://storage.deepin.org/thread/20210121093246671_图片 1.png)
不用说,我知道你们是什么感受~
那么今天的小白教程,我们就来看看遇到这样的情况,应该如何解决。
首先我们要知道的是——
举个栗子,Windows 10 跨大版本更新,或者你重装了 Windows,覆盖了 UEFI 设置;
再举个栗子,你把 deepin 分区前部空间进行了调整,导致分区编号的改变;
其实对于这个你在 BIOS 调一下或者 EasyUEFI 就能解决。
好了,接下来就是
在“>”后面,输入
ls
回车。
你会看到像下面这样罗列的分区编号:
(hd0,1),(hd0,2),(hd0,3),(hd1,1),(hd1,2)……
当然也有可能是:
(hd0,gpt1),(hd0,gpt2),(hd1,gpt1)……
因人而异嘛~
然后,你就要看看哪个是 deepin 的分区了。
你在安装的时候,应该知道主分区的文件系统——多半是 ext4 。
用下面的命令,一个一个去试:
ls (hd_,_) 或 ls (hd_,gpt_)
把横线上的数据替换成你要尝试的分区编号
如果,命令行这么说:
The filesystem is unknown.
那么你就换一个分区再试,直到:
The filesystem is ext4. (或者其他你安装 deepin 的设定的文件系统)
那你就找到了 deepin 的分区。但是——
“如果我给 /boot 单独分了区怎么办?”
问得好,确实有这样的情况存在。
因此,光从文件系统来看,确实有局限性。如果你的电脑中还有其他 Linux 系统,你就算 ls 出 Grub 目录下的文件也不一定能看出门道来。
So,保险起见,你可以用 Live 镜像制作一个临场 USB(这里不加赘述),查看 deepin(或者 /boot 单独的)分区编号,以 /dev/sda5 为例:
把“a”看作 0(如果是“b”就看作 1,以此类推),得出 Grub 中的分区编号为:(hd0,5)(下文省略 gpt 写法)。
还是拿 (hd0,5) 举例子。
简单,找到 deepin 分区之后,执行:
set root=(hd0,5) set prefix=(hd0,5)/boot/grub
这两条命令。
好吧,假设 (hd0,5) 就是 /boot 分区,执行:
set root=(hd0,5) set prefix=(hd0,5)/grub
这样两条命令。
/boot 没分区,你就:
insmod /boot/grub/normal.mod 或 insmod normal
/boot 分区了,你就:
insmod /grub/normal.mod 或 insmod normal
(在我的电脑上,执行这一步后,硬盘灯会闪一下,“grub>”会变亮一些)
然后关键的一步,执行:
normal
然后你就看见了——
(图像来源:https://www.cnblogs.com/1328497946TS/p/11610840.html)
这时候的你——
但是不要高兴得太早,因为这只是临时的操作,并不能永久修复。
如果不进行下一步操作,下一次等待你的还是命令行~
赶紧选择 deepin 启动,然后
打开终端,执行:
sudo update-grub sudo grub-install /dev/sda
这里,sda 是 EFI 分区所在的硬盘号,因机器而异。不要指定具体分区!
如果上一步没有报错(No error reported.),那么就再来一次:
sudo update-grub
以防万一嘛~
“万一还是命令行,怎么破?”
啊,这种小概率事件,我还真遇到过一次——
那就只能再次执行 2.1~2.3,重装 Grub 了。可以参考这篇博文。
好了,本期教程就到这里。
如果“小白教程”系列对你有所帮助,欢迎大家收藏或者跟帖评论。
我是 Ving 哥,我们下期再见~
这样的对不对?
我这个小白,是似懂非懂!必须得实际操作才会真懂!
深度好帖
Popular Ranking
Popular Events
小白教程第一期:谁动了我的Grub?
修复 Grub 命令行以及 Grub Rescue 问题的详细教程
Hello,大家好,我是 Ving 哥~
想必上图中的界面,大家差不多都见过。这是 Grub 命令行。
让我们设想这样的情景:
你好不容易辛辛苦苦配置好了多启动方案,结果到了有一天,你一开机,就看到上面这几行白字。
![](https://storage.deepin.org/thread/20210121093246671_图片 1.png)
不用说,我知道你们是什么感受~
那么今天的小白教程,我们就来看看遇到这样的情况,应该如何解决。
首先我们要知道的是——
1. 本篇教程的适用范围
1.1 出于某些原因,你的 Grub 不是进入正常模式而是进入命令行模式
举个栗子,Windows 10 跨大版本更新,或者你重装了 Windows,覆盖了 UEFI 设置;
1.2 处于某些特定原因,你的 Grub 进入了 Grub Rescue 模式
再举个栗子,你把 deepin 分区前部空间进行了调整,导致分区编号的改变;
1.3 这篇教程不讨论 deepin UEFI 启动项丢失的问题
其实对于这个你在 BIOS 调一下或者 EasyUEFI 就能解决。
好了,接下来就是
2. 教程正文
2.1 找到 deepin 所在的磁盘分区
在“>”后面,输入
回车。
你会看到像下面这样罗列的分区编号:
(hd0,1),(hd0,2),(hd0,3),(hd1,1),(hd1,2)……
当然也有可能是:
(hd0,gpt1),(hd0,gpt2),(hd1,gpt1)……
因人而异嘛~
然后,你就要看看哪个是 deepin 的分区了。
你在安装的时候,应该知道主分区的文件系统——多半是 ext4 。
用下面的命令,一个一个去试:
把横线上的数据替换成你要尝试的分区编号
如果,命令行这么说:
The filesystem is unknown.
那么你就换一个分区再试,直到:
The filesystem is ext4. (或者其他你安装 deepin 的设定的文件系统)
那你就找到了 deepin 的分区。但是——
“如果我给 /boot 单独分了区怎么办?”
问得好,确实有这样的情况存在。
因此,光从文件系统来看,确实有局限性。如果你的电脑中还有其他 Linux 系统,你就算 ls 出 Grub 目录下的文件也不一定能看出门道来。
So,保险起见,你可以用 Live 镜像制作一个临场 USB(这里不加赘述),查看 deepin(或者 /boot 单独的)分区编号,以 /dev/sda5 为例:
把“a”看作 0(如果是“b”就看作 1,以此类推),得出 Grub 中的分区编号为:(hd0,5)(下文省略 gpt 写法)。
2.2 关联 Grub 目录和 EFI 启动分区
还是拿 (hd0,5) 举例子。
2.2.1 情况一:你没有把 /boot 重新分区(你就是直接就那样装上了)
简单,找到 deepin 分区之后,执行:
这两条命令。
2.2.2 情况二:你愣是把 /boot 又单独分了个区
好吧,假设 (hd0,5) 就是 /boot 分区,执行:
这样两条命令。
2.3 进入常规启动模式
/boot 没分区,你就:
/boot 分区了,你就:
(在我的电脑上,执行这一步后,硬盘灯会闪一下,“grub>”会变亮一些)
然后关键的一步,执行:
然后你就看见了——
(图像来源:https://www.cnblogs.com/1328497946TS/p/11610840.html)
这时候的你——
但是不要高兴得太早,因为这只是临时的操作,并不能永久修复。
如果不进行下一步操作,下一次等待你的还是命令行~
赶紧选择 deepin 启动,然后
2.4 重新配置 Grub
打开终端,执行:
这里,sda 是 EFI 分区所在的硬盘号,因机器而异。不要指定具体分区!
如果上一步没有报错(No error reported.),那么就再来一次:
以防万一嘛~
“万一还是命令行,怎么破?”
啊,这种小概率事件,我还真遇到过一次——
那就只能再次执行 2.1~2.3,重装 Grub 了。可以参考这篇博文。
好了,本期教程就到这里。
如果“小白教程”系列对你有所帮助,欢迎大家收藏或者跟帖评论。
我是 Ving 哥,我们下期再见~
参考资料:
https://zhidao.baidu.com/question/368384875696974604.html
https://www.zhihu.com/question/368951215
https://www.cnblogs.com/1328497946TS/p/11610840.html
https://www.cnblogs.com/gaochaoweino/p/10277172.html
如需转载本帖,标注我的 ID 就行,可以不用让我知道~