V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
emUi998
V2EX  ›  Apple

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

  •  1
     
  •   emUi998 · 2022-04-04 23:52:51 +08:00 · 4440 次点击
    这是一个创建于 997 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    这几天在做的一个项目中需要依赖 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. 然后重启系统即可,建议再打个快照,方便后续克隆。

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

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

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

    我现在 m1 + vmware 装最新的版本(debian-11.3.0-arm64-netinst.iso), 是无法识别的.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5794 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:43 · PVG 10:43 · LAX 18:43 · JFK 21:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.