写作原因
最近购得一台MacbookAir M3,想尝试一下在这台笔记本上安装OpenEuler虚拟机。 本以为很简单,结果遇到了安装失败,如下图: 一番搜索,最后在OpenEuler官方论坛找到了一篇帖子,成功解决了这个问题。故分享一下。
如何解决安装失败的问题
为了方便大家观看,在这里直接把问题的解决方案抛出给大家。
- 重新启动虚拟机
- 按
e
进入GRUB的编辑界面,将参数video=efifb:off
删除 - 按
ctrl+x
或F10
重新启动 - 正常安装即可。
具体安装步骤
如果在mac上安装VMware Fusion步骤可以参考我的上一篇文章VMware Fusion安装win11 arm;使用Mac远程连接到Win,这里不赘述。
-
从官网下载好镜像。OpenEuler下载中心
-
将镜像拖入到Fusion新建虚拟机的地方
-
选择其他Linux 6.x内核(内核版本可以到官网查看)
-
进行配置的设置
-
按
e
进入GRUB的编辑界面,将参数video=efifb:off
删除 -
按
ctrl+x
或F10
重新启动 -
正常安装即可。
原因
排查过程
由于Rocky9.5和OpenEuler 22.03 都是一样的内核,那么Rocky 能正常安装但OpenEuler不能的原因就排除了内核。 那么除了内核问题,一般就可以直接考虑GRUB。 通过对比Rocky和OpenEuler的GRUB参数,可以发现OpenEuler的参数比较多,那么一个一个参数收窄最后就可以定位到efifb
上。
这个参数是什么?
在 GRUB 中配置 video=efifb:off 是通过内核参数禁用 EFI Framebuffer (efifb) 的一种方法。它主要用于解决图形显示相关的问题,例如驱动冲突或分辨率异常。
- 什么是 efifb? EFI Framebuffer (efifb) 是 Linux 内核在 UEFI 启动模式下的基础图形驱动,用于提供图形输出的最低支持。 在没有加载特定显卡驱动时,efifb 提供初始的显示功能(如引导界面、基本终端)。
- video=efifb:off 的作用 禁用 efifb:通过 video=efifb:off,内核不会加载 efifb 图形驱动。 释放显存控制权:禁用 efifb 后,专门的显卡驱动(如 NVIDIA、AMD、Intel 驱动)可以完全接管图形设备的控制权。 解决冲突:避免 efifb 与其他显卡驱动(如 NVIDIA DRM 模块)发生资源争夺。
- 常见使用场景 (1)安装显卡驱动时冲突 某些显卡驱动(如 NVIDIA 的官方驱动)在加载时可能与 efifb 冲突,导致黑屏或分辨率问题。 在这种情况下,禁用 efifb 让显卡驱动独占硬件控制权。 (2)提升图形性能 efifb 是一个简单的 Framebuffer,不支持高性能或高级功能(如 3D 加速)。 禁用 efifb,可以让内核加载专用显卡驱动,提供更好的图形性能。 (3)解决启动卡死或黑屏 在某些硬件配置下,efifb 会与显卡驱动或系统固件冲突,导致系统在启动时卡住或显示黑屏。 禁用 efifb 后,可以绕过这些问题。