m1 处理器使用 vmware fusion 安装 ubuntu 问题解决(新内核无法启动 kernel image not aligned on 64k boundary)

2022-04-04 23:52:51 +08:00
 emUi998

背景

这几天在做的一个项目中需要依赖 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 处理器的内存存在兼容性问题,目前暂无官方解决方案。只能退而求其次使用旧版本内核安装,然后再逐步更新至可用的最新内核版本,来避免安全问题、性能问题。

最终通过好几天的摸索,终于曲线救国可正常使用,特记录下来,帮兄弟们节省时间。

解决方案如下

  1. 断开虚拟机网络的情况下安装旧版本 ubuntu

    1. 目前可使用的版本为 ubuntu-20.04-live-server-arm64.iso 点击应该就可以下载这个官方镜像,后面带小版本的均无法正常启动。
    2. 注意⚠️:联网状态下安装系统会自动更新,导致安装成功后直接无法启动。务必在虚拟机设置中断开网络链接
    3. 安装完成后,确认可以进入系统时,建议关机&进行快照,方便回滚,防止后续操作失败导致前功尽弃。
  2. 更新内核以及其他组件,并锁定内核版本至 5.14.21 。

    1. 更新内核至 5.14.21 (或更低版本),并更新其他组件
      1. 更新组件

        sudo apt-get update
        sudo apt-get upgrade
        
      2. 安装新内核

        1. 下载内核更新工具

          wget https://raw.githubusercontent.com/pimlie/ubuntu-mainline-kernel.sh/master/ubuntu-mainline-kernel.sh
          

          此操作可能会由于国内特殊的网络环境而失败,自行解决。能看到这个文章的人应该不成问题。

        2. 将脚本安装只可执行目录:

          sudo install ubuntu-mainline-kernel.sh /usr/local/bin/
          
        3. 安装指定内核

          sudo ubuntu-mainline-kernel.sh -i 5.14.21
          

          经过多轮尝试,发现 5.14.21 目前可用的最新版本内核,从 5.15.0 开始就无法启动了。兄弟们有时间的话可以去看看 5.15.0 这个版本到底更新了啥 feature 。

          漫长的下载安装之后,还需要执行以下操作,解决依赖缺失的问题。

          sudo apt --fix-broken install
          

          此时,新内核已经安装成功,可以重启系统了,不出意外的话就会出意外:启动失败

        4. 启动失败,启动时手动选择指定内核

          此时不要慌,在 grub 启动器页面按方向⬇️按键,选择带有 advanced 的条目, 此时可以看到有好多内核可以选择,选择 5.14.21 版本内核(非 64K 的那个),进入系统。

      3. 删除无用内核,并锁定内核版本至 5.14.21 。

        1. 列举所有已经安装的内核

          dpkg --get-selections | grep linux
          
        2. 删除低版本内核+带 64K 的所有内核

          sudo apt-get remove {把上个页面中列出来的旧版本内核+带 5.14.21- generic-64k 的内核全部填入,使用空格分开}
          
        3. 删除内核配置项目,防止干扰试听

          sudo apt-get purge {此处跟上一个命令的一模一样,复制进来即可}
          
        4. 更新 grub

          sudo update-grub
          
        5. 锁定内核版本,防止后续更新炸了。

          sudo apt-mark hold 5.14.21-generic
          
  3. 安装 vmtools

    sudo apt install open-vm-tools
    
  4. 关机,进行快照。此时你将获得一个可以启动的ubuntu 20.04.4 LTS版本虚拟机

桌面需求以及遇到的坑

通过以上方式安装的系统时不带桌面的,可以额外安装桌面。

此时又遇到了一堆坑。梳理后,把完整流程记录下来:

  1. 安装 ubuntu 桌面,建议选精简版本。此处需要下载大量包,耐心等候。

    sudo apt install ubuntu-desktop-minimal
    
  2. 将 gdm3 替换为 lightdm ,解决启动后黑窗口&不跳出登陆界面问题。猜测是内核不兼容导致的。

    删除 gdm3 以及其他依赖

    sudo apt-get remove gdm3
    sudo apt autoremove
    

    安装 lightdm

    sudo apt-get install lightdm
    
  3. 修改 netplan 配置,解决 NetworkManager 识别不到网卡导致的执行卡顿问题&无法界面配置网络问题

    1. 修改 /etc/netplan/00-installer-config.yaml 文件,如果没有这个文件,则在该目录下寻找是否有其他 yaml 。

      sudo vi /etc/netplan/00-installer-config.yaml
      
      network:
        renderer: NetworkManager (在这个位置添加此行)
        ethernets:
      

      ⚠️只需添加一行即可,其他不要修改。

    2. 应用配置

      sudo netplan apply
      

    PS:这个问题很妖,如果不进行以上操作,进入桌面后进行任何操作都会延迟一会(可能是在检测网络)才执行。不理解这样设计的逻辑。

  4. 安装桌面的 vmtools ,与上文中安装的不冲突,直接安装。

    sudo apt install open-vm-tools-desktop
    
  5. 然后重启系统即可,建议再打个快照,方便后续克隆。

4011 次点击
所在节点    Apple
14 条回复
CivAx
2022-04-05 01:27:43 +08:00
虽然不用 VMWare ,但这种质量的帖子值得点个感谢
stimw
2022-04-05 01:35:51 +08:00
不知道是不是 tech preview 的 bug ,我遇到了掉 ip 的问题
https://www.v2ex.com/t/844266
Weny
2022-04-05 01:37:20 +08:00
PD 也是一样的问题
forgetlight
2022-04-05 01:46:05 +08:00
感谢分享! 之前也有尝试过几次 Tech preview 的, 包括最新 3 月刚刚更新版本均无法完全安装. 都是会出现无法加载光驱 iso 的问题. 不过之前都是尝试 desktop 版本, 看来只能用 server 的. 这次开的课 30%学生都是 m1 mac, 非常头疼, 最后只能给学生弄了一堆卡到爆炸的远程桌面.

@Weny
个人一直在使用 pd17 最新版的倒是没有一点问题, 连 3d 加速都有了, 还是很丝滑的.最新一个版本还把部分软件开启 3d 加速后会黑屏的问题也修复了.
dingwen07
2022-04-05 03:13:01 +08:00
UTM 开 GPU 加速之后整个 Ubuntu 直接卡死用不了
还是用 WSL 去了,稳定
andrewpsy
2022-04-05 04:13:46 +08:00
跟楼上一样也暂时没这个需求,但这么认真的分享和整洁的排版看了就舒服,必须要感谢制造正反馈。
tulongtou
2022-04-05 06:46:58 +08:00
我用 tech preview 版的 VMware fusion 装 Debian arm 的没有遇到过问题,从安装到使用都十分流畅
miyunda
2022-04-05 08:47:48 +08:00
感谢,已经一键三连
ilovekobe1314
2022-04-05 11:18:17 +08:00
感谢大佬!上次折腾 centos 安装 vm-tools 一直失败,放弃了
jdjingdian
2022-04-05 11:28:43 +08:00
前段时间也遇到过,百思不得其解,老哥牛逼
yinglongnvba
2022-04-06 16:15:52 +08:00
tech preview 版可以装 Windows 吗
Kobayashi
2022-04-24 10:36:07 +08:00
我一直网络报错,根本启动不了安装镜像。尝试了 NAT 和 Host.

Could not connect 'Ethernet1' to virtual network '/dev/vmnet1'.
Kobayashi
2022-05-02 13:40:54 +08:00
好像我只能使用桥接网络,NAT 和 Host Only 都不行,你们怎么弄得。 @tulongtou @stimw
akaHenry
2022-07-01 23:40:48 +08:00
@tulongtou 你安装的 Debian arm 版本是多少?

我现在 m1 + vmware 装最新的版本(debian-11.3.0-arm64-netinst.iso), 是无法识别的.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/844955

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX