[Tutorials] 【小白教程】第一期:谁动了我的Grub?——Grub 修复
Tofloor
poster avatar
PossibleVing
deepin
2021-01-21 23:22
Author

小白教程第一期:谁动了我的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 所在的磁盘分区

在“>”后面,输入

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 写法)。

 

2.2 关联 Grub 目录和 EFI 启动分区

还是拿  (hd0,5) 举例子。

 

2.2.1 情况一:你没有把 /boot 重新分区(你就是直接就那样装上了)

简单,找到 deepin 分区之后,执行:

set root=(hd0,5)
set prefix=(hd0,5)/boot/grub

这两条命令。

 

2.2.2 情况二:你愣是把 /boot 又单独分了个区

好吧,假设 (hd0,5) 就是 /boot 分区,执行:

set root=(hd0,5)
set prefix=(hd0,5)/grub

这样两条命令。

 

2.3 进入常规启动模式

/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 启动,然后

 

2.4 重新配置 Grub

打开终端,执行:

sudo update-grub
sudo grub-install /dev/sda

这里,sda 是 EFI 分区所在的硬盘号,因机器而异。不要指定具体分区!

如果上一步没有报错(No error reported.),那么就再来一次:

sudo update-grub

以防万一嘛~

“万一还是命令行,怎么破?”

啊,这种小概率事件,我还真遇到过一次——

那就只能再次执行 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 就行,可以不用让我知道~
Reply Favorite View the author
Comments
poster avatar
符华
2021-01-22 00:17
好活
All Replies
1 / 2
To page
element
deepin
2021-01-21 23:34
#1

你这个是走其他地方的转贴导致格式不正确么?

Reply View the author
PossibleVing
deepin
2021-01-21 23:37
#2
element

你这个是走其他地方的转贴导致格式不正确么?

啊这。。。

用的就是论坛的编辑器,这是原创教程~

鬼知道行间距为啥这么小……

转帖,不经过人家同意,我哪敢啊

Reply View the author
guaguale
deepin
2021-01-21 23:38
#3

感谢分享,不过文字不如录屏来的直观

Reply View the author
element
deepin
2021-01-21 23:44
#4
PossibleVing

啊这。。。

用的就是论坛的编辑器,这是原创教程~

鬼知道行间距为啥这么小……

转帖,不经过人家同意,我哪敢啊

我还以为你最后的连接是错乱的呢  原来是故意那样的排版

Reply View the author
Comments
我是 Ving 哥
2021-01-21 23:46
靠右对齐~
PossibleVing
deepin
2021-01-21 23:45
#5
guaguale

感谢分享,不过文字不如录屏来的直观

感谢建议~

不过grub这个东西并不好录屏,而且我个人认为文字的话更容易让大家看清楚,还有复制。

等等grub命令行好像不能粘贴……(雾)

Reply View the author
caoayu
deepin
2021-01-21 23:52
#6

牛逼

Reply View the author
Comments
我是 Ving 哥
2021-01-21 23:59
感谢支持~
小小怪下士
deepin
2021-01-22 02:02
#7

好好的文章,但是我遇到这情况时,你文章还没出来,结果我就重装了。。。赞一个

Reply View the author
PossibleVing
deepin
2021-01-22 02:12
#8
小小怪下士

好好的文章,但是我遇到这情况时,你文章还没出来,结果我就重装了。。。赞一个

没事,下次遇到就知道怎么操作了

Reply View the author
不会开车有驾照
deepin
2021-01-22 03:18
#9

学习了,原来真不知道grub怎么维护

Reply View the author
pzm9012
Moderator
2021-01-22 04:54
#10

那么,legacy启动的怎么操作

不会只有我还在用legacy的电脑吧……

Reply View the author
zerofancy
deepin
2021-01-22 05:06
#11

没有在deepin下试过,不过都用上live系统了不是可以直接chroot?

Reply View the author
PossibleVing
deepin
2021-01-22 05:11
#12
pzm9012

那么,legacy启动的怎么操作

不会只有我还在用legacy的电脑吧……

哦豁,涉及到我的知识盲区了~

印象中传统模式下其他系统的启动项可以加到Windows boot manager里

不知道其他坛友有没有知道的……

Reply View the author
PossibleVing
deepin
2021-01-22 07:56
#13
zerofancy

没有在deepin下试过,不过都用上live系统了不是可以直接chroot?

live下chroot我试过,但是各种挂载分区搞得我一脸懵,

最后还报了一堆错。。。

可能是我技术不到位吧

Reply View the author
小小怪下士
deepin
2021-01-22 19:20
#14
zerofancy

没有在deepin下试过,不过都用上live系统了不是可以直接chroot?

我没修好,然后就重装了

Reply View the author
小小怪下士
deepin
2021-01-22 19:21
#15
PossibleVing

live下chroot我试过,但是各种挂载分区搞得我一脸懵,

最后还报了一堆错。。。

可能是我技术不到位吧

+1

Reply View the author
qq12490855
deepin
2021-01-25 00:20
#16

小白表示看懂一点点

 

Reply View the author
PossibleVing
deepin
2021-01-25 23:21
#17
qq12490855

小白表示看懂一点点

 

没事,有所收获就行~

Reply View the author
winston2019
deepin
2021-02-28 06:46
#18

大神,我的系统是UOS好久没用了,启动后提示GRUB命令行,已经使用上述方法 通过命令进入系统,不过update-grub提示done,重启仍然是grub命令行,然后发现有一行 显示missing  ,请问如何修复。

Reply View the author
PossibleVing
deepin
2021-03-16 06:22
#19
winston2019

大神,我的系统是UOS好久没用了,启动后提示GRUB命令行,已经使用上述方法 通过命令进入系统,不过update-grub提示done,重启仍然是grub命令行,然后发现有一行 显示missing  ,请问如何修复。

重装grub,试试https://www.cnblogs.com/gaochaoweino/p/10277172.html

Reply View the author
u1036
deepin
2021-03-17 06:26
#20

我把EFI分区删了重做Windows引导,还能把deepinOS20的引导修复回来吗??没有备份。。。。。拷贝一个其他电脑的引导可以修改后使用吗???

Reply View the author
1 / 2
To page