[Boot/Shutdown] V23nightly更新后无法启动(modprobe: module efivars not found
Tofloor
poster avatar
blacklamb
deepin
2022-04-05 00:25
Author

系统是V23 nightly,昨天刚刚更新。

今天开机后进入登陆界面,还没输完密码就黑屏提示:

modprobe: module efivars not found in moduels.dep

键盘无法输入,重启问题依旧存在。

请问有哪位知道是怎么回事吗?

8dbe80d80bffefc8d42cbb0b98dd17a.jpg

sad

Reply Favorite View the author
All Replies
Mr-Wan
deepin
2022-04-05 02:48
#1

不懂。

如果说not found in moduels.dep 那么也许需要进入单用户文本模式下,尝试sudo depmod -a

如果说module efivars ,看起来是获取主板信息的内核模块。有可能配置成了模块后没有建立合适的依赖关系。检索了一下内核模块,现在版本的内核好像没有这模块,5.3及以前版本有,不知道是不是默认编译进内核了。如果自编译进内核改编为编译成模块,那么是不是有可能modules.dep没有产生对应的模块依赖信息产生的。

近来uefi好像爆了个普遍漏洞,不知是不是同主板更新有关。

Reply View the author
blacklamb
deepin
2022-04-05 09:49
#2
Mr-Wan

不懂。

如果说not found in moduels.dep 那么也许需要进入单用户文本模式下,尝试sudo depmod -a

如果说module efivars ,看起来是获取主板信息的内核模块。有可能配置成了模块后没有建立合适的依赖关系。检索了一下内核模块,现在版本的内核好像没有这模块,5.3及以前版本有,不知道是不是默认编译进内核了。如果自编译进内核改编为编译成模块,那么是不是有可能modules.dep没有产生对应的模块依赖信息产生的。

近来uefi好像爆了个普遍漏洞,不知是不是同主板更新有关。

我吐了。

刚刚想重新安装20.5的版本,用rufus制作启动盘,结果反复尝试后都提示/live/vmlinuz.efi not found,没安装成功。

然后一通操作,又是修改bios设置,又是刷ventory启动盘,在启动时不知道按了哪个键,似乎打断了deepin 23的启动过程,然后过了一会居然又成功启动了。

现在成功进入了V23 nightly的系统。也不知道明天这种情况还会不会发生。

(其实没更新之前就发生过efivars not found的情况,都是再重启一次就好了,所以都没当一回事。只是这次反复重启都没能成功。)

Reply View the author
qq8645
deepin
2022-04-05 18:18
#3

我原先以为目前使用V23 nightly的,应该是技术牛人,给大家传经送宝的。

Reply View the author
Mr-Wan
deepin
2022-04-05 22:17
#4
blacklamb

我吐了。

刚刚想重新安装20.5的版本,用rufus制作启动盘,结果反复尝试后都提示/live/vmlinuz.efi not found,没安装成功。

然后一通操作,又是修改bios设置,又是刷ventory启动盘,在启动时不知道按了哪个键,似乎打断了deepin 23的启动过程,然后过了一会居然又成功启动了。

现在成功进入了V23 nightly的系统。也不知道明天这种情况还会不会发生。

(其实没更新之前就发生过efivars not found的情况,都是再重启一次就好了,所以都没当一回事。只是这次反复重启都没能成功。)

猜测efivars是initramfs后进入systemd的init过程挂载分区的时候挂载在系统里的。用途应该是同主板uefi bios打交道。

systemctl list-units | grep efi
boot-efi.mount                           loaded active mounted   /boot/efi

#mount | grep efivars

efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)

出现问题,要么某种原因导致挂载失败,要末某种原因在调用//sys/firmware/efi/efivars 功能时出现问题。因为uefi bios提供一些service,同时可能具有一些兼容的csm模式下的某些调用,这些功能有可能是通过这个efivarfs提供linux内的交互(类似早期linux会屏蔽bios调用,自建中断向量表。)

看了以下内核的配置

ONFIG_EFI=y 支持uefi启动
CONFIG_EFI_STUB=y
CONFIG_EFI_MIXED=y 支持uefi混合模式兼容早期bios硬件

CONFIG_EFIVAR_FS=m efivarfs文件系统模块

那么支持uefi启动的应该内核的配置会有这样类似的条目,这也许是/live/vmlinuz.efi与同目录其它内核的区别。

那么出现问题可能性就比较多样,可能主板老,或者主板太新,或者主板电池没电了,或者有多硬盘导致grub配置有问题,或者是个nightly bug。

deepin的安装方式有个快速模式的样子,顺序猜测是 uefi 启动 gurb下的loader,加载 live下的efi内核,加载live下的initramfs,挂载那个squashfs文件作为跟目录,把squashfs的文件以类似ghost的方式放到硬盘里。同其他多数发行版有点不太一样。没怎么用过deepin,我也刚接触,一切都是猜。

Reply View the author
blacklamb
deepin
2022-04-13 16:31
#5
qq8645

我原先以为目前使用V23 nightly的,应该是技术牛人,给大家传经送宝的。

sweat

这可就尴尬了,我只是想试用一下,结果发现虽然有些小bug,但是基本使用顺畅,所以也就没有重新安装,一直用下来了。

后续没有什么问题的话应该还会继续用吧,毕竟一次次重装还是比较麻烦。

Reply View the author
blacklamb
deepin
2022-04-13 16:48
#6
Mr-Wan

猜测efivars是initramfs后进入systemd的init过程挂载分区的时候挂载在系统里的。用途应该是同主板uefi bios打交道。

systemctl list-units | grep efi
boot-efi.mount                           loaded active mounted   /boot/efi

#mount | grep efivars

efivarfs on /sys/firmware/efi/efivars type efivarfs (rw,nosuid,nodev,noexec,relatime)

出现问题,要么某种原因导致挂载失败,要末某种原因在调用//sys/firmware/efi/efivars 功能时出现问题。因为uefi bios提供一些service,同时可能具有一些兼容的csm模式下的某些调用,这些功能有可能是通过这个efivarfs提供linux内的交互(类似早期linux会屏蔽bios调用,自建中断向量表。)

看了以下内核的配置

ONFIG_EFI=y 支持uefi启动
CONFIG_EFI_STUB=y
CONFIG_EFI_MIXED=y 支持uefi混合模式兼容早期bios硬件

CONFIG_EFIVAR_FS=m efivarfs文件系统模块

那么支持uefi启动的应该内核的配置会有这样类似的条目,这也许是/live/vmlinuz.efi与同目录其它内核的区别。

那么出现问题可能性就比较多样,可能主板老,或者主板太新,或者主板电池没电了,或者有多硬盘导致grub配置有问题,或者是个nightly bug。

deepin的安装方式有个快速模式的样子,顺序猜测是 uefi 启动 gurb下的loader,加载 live下的efi内核,加载live下的initramfs,挂载那个squashfs文件作为跟目录,把squashfs的文件以类似ghost的方式放到硬盘里。同其他多数发行版有点不太一样。没怎么用过deepin,我也刚接触,一切都是猜。

感谢大佬耐心回复。

电脑现在已经正常了,似乎是我在修改为csm兼容后,成功启动了。具体原因尚不明了,我也并不知道如何复现这一问题。之前出问题时只是经过了一次upgrade,并没有修改bios设置,甚至没有安装任何应用。所以可能是一个bug,也可能如你所说是我的主板太老了,毕竟是2015年的机子。

再次表示感谢kissing_heart

BTW,如果有哪位大佬对问题感兴趣想要log或配置文件可以和我联系。

Reply View the author