这几天在做的一个项目中需要依赖 ubuntu 20.04.4 LTS 版本。本人的开发机器是 MacBook Pro M1 Pro 处理器版本的,使用 vmware fusion 技术预览版 (可以点击下载最新版本,可能需要注册账号) 安装虚拟机安装过程中,一直遇到无法启动的问题,一般是如下提示:
EFI stub: ERROR: FIRMWARE BUG: kernel image not aligned on 64k boundary
EFI stub: ERROR: FIRMWARE BUG: Image BSS overlaps adjacent EFI memory region
经过查找资料,发现可能是新版本内核与 M1 处理器的内存存在兼容性问题,目前暂无官方解决方案。只能退而求其次使用旧版本内核安装,然后再逐步更新至可用的最新内核版本,来避免安全问题、性能问题。
最终通过好几天的摸索,终于曲线救国可正常使用,特记录下来,帮兄弟们节省时间。
在断开虚拟机网络的情况下安装旧版本 ubuntu
更新内核以及其他组件,并锁定内核版本至 5.14.21 。
更新组件
sudo apt-get update
sudo apt-get upgrade
安装新内核
下载内核更新工具
wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
此操作可能会由于国内特殊的网络环境而失败,自行解决。能看到这个文章的人应该不成问题。
将脚本安装只可执行目录:
sudo install ubuntu-mainline-kernel.sh /usr/local/bin/
安装指定内核
sudo ubuntu-mainline-kernel.sh -i 5.14.21
经过多轮尝试,发现 5.14.21 目前可用的最新版本内核,从 5.15.0 开始就无法启动了。兄弟们有时间的话可以去看看 5.15.0 这个版本到底更新了啥 feature 。
漫长的下载安装之后,还需要执行以下操作,解决依赖缺失的问题。
sudo apt --fix-broken install
此时,新内核已经安装成功,可以重启系统了,不出意外的话就会出意外:启动失败。
启动失败,启动时手动选择指定内核
此时不要慌,在 grub 启动器页面按方向⬇️按键,选择带有 advanced 的条目, 此时可以看到有好多内核可以选择,选择 5.14.21 版本内核(非 64K 的那个),进入系统。
删除无用内核,并锁定内核版本至 5.14.21 。
列举所有已经安装的内核
dpkg --get-selections | grep linux
删除低版本内核+带 64K 的所有内核
sudo apt-get remove {把上个页面中列出来的旧版本内核+带 5.14.21- generic-64k 的内核全部填入,使用空格分开}
删除内核配置项目,防止干扰试听
sudo apt-get purge {此处跟上一个命令的一模一样,复制进来即可}
更新 grub
sudo update-grub
锁定内核版本,防止后续更新炸了。
sudo apt-mark hold 5.14.21-generic
安装 vmtools
sudo apt install open-vm-tools
关机,进行快照。此时你将获得一个可以启动的ubuntu 20.04.4 LTS
版本虚拟机
通过以上方式安装的系统时不带桌面的,可以额外安装桌面。
此时又遇到了一堆坑。梳理后,把完整流程记录下来:
安装 ubuntu 桌面,建议选精简版本。此处需要下载大量包,耐心等候。
sudo apt install ubuntu-desktop-minimal
将 gdm3 替换为 lightdm ,解决启动后黑窗口&不跳出登陆界面问题。猜测是内核不兼容导致的。
删除 gdm3 以及其他依赖
sudo apt-get remove gdm3
sudo apt autoremove
安装 lightdm
sudo apt-get install lightdm
修改 netplan 配置,解决 NetworkManager 识别不到网卡导致的执行卡顿问题&无法界面配置网络问题
修改 /etc/netplan/00-installer-config.yaml 文件,如果没有这个文件,则在该目录下寻找是否有其他 yaml 。
sudo vi /etc/netplan/00-installer-config.yaml
network:
renderer: NetworkManager (在这个位置添加此行)
ethernets:
⚠️只需添加一行即可,其他不要修改。
应用配置
sudo netplan apply
PS:这个问题很妖,如果不进行以上操作,进入桌面后进行任何操作都会延迟一会(可能是在检测网络)才执行。不理解这样设计的逻辑。
安装桌面的 vmtools ,与上文中安装的不冲突,直接安装。
sudo apt install open-vm-tools-desktop
然后重启系统即可,建议再打个快照,方便后续克隆。
1
CivAx 2022-04-05 01:27:43 +08:00
虽然不用 VMWare ,但这种质量的帖子值得点个感谢
|
2
stimw 2022-04-05 01:35:51 +08:00 via iPhone
不知道是不是 tech preview 的 bug ,我遇到了掉 ip 的问题
https://www.v2ex.com/t/844266 |
3
Weny 2022-04-05 01:37:20 +08:00 via iPhone
PD 也是一样的问题
|
4
forgetlight 2022-04-05 01:46:05 +08:00
感谢分享! 之前也有尝试过几次 Tech preview 的, 包括最新 3 月刚刚更新版本均无法完全安装. 都是会出现无法加载光驱 iso 的问题. 不过之前都是尝试 desktop 版本, 看来只能用 server 的. 这次开的课 30%学生都是 m1 mac, 非常头疼, 最后只能给学生弄了一堆卡到爆炸的远程桌面.
@Weny 个人一直在使用 pd17 最新版的倒是没有一点问题, 连 3d 加速都有了, 还是很丝滑的.最新一个版本还把部分软件开启 3d 加速后会黑屏的问题也修复了. |
5
dingwen07 2022-04-05 03:13:01 +08:00
UTM 开 GPU 加速之后整个 Ubuntu 直接卡死用不了
还是用 WSL 去了,稳定 |
6
andrewpsy 2022-04-05 04:13:46 +08:00
跟楼上一样也暂时没这个需求,但这么认真的分享和整洁的排版看了就舒服,必须要感谢制造正反馈。
|
7
tulongtou 2022-04-05 06:46:58 +08:00 via iPhone
我用 tech preview 版的 VMware fusion 装 Debian arm 的没有遇到过问题,从安装到使用都十分流畅
|
8
miyunda 2022-04-05 08:47:48 +08:00
感谢,已经一键三连
|
9
ilovekobe1314 2022-04-05 11:18:17 +08:00
感谢大佬!上次折腾 centos 安装 vm-tools 一直失败,放弃了
|
10
jdjingdian 2022-04-05 11:28:43 +08:00
前段时间也遇到过,百思不得其解,老哥牛逼
|
11
yinglongnvba 2022-04-06 16:15:52 +08:00
tech preview 版可以装 Windows 吗
|
12
Kobayashi 2022-04-24 10:36:07 +08:00
我一直网络报错,根本启动不了安装镜像。尝试了 NAT 和 Host.
Could not connect 'Ethernet1' to virtual network '/dev/vmnet1'. |