V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
emUi998
V2EX  ›  Apple

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

  •  1
     
  •   emUi998 · Apr 4, 2022 · 5609 views
    This topic created in 1485 days ago, the information mentioned may be changed or developed.

    背景

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

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

    Could not connect 'Ethernet1' to virtual network '/dev/vmnet1'.
    Kobayashi
        13
    Kobayashi  
       May 2, 2022
    好像我只能使用桥接网络,NAT 和 Host Only 都不行,你们怎么弄得。 @tulongtou @stimw
    akaHenry
        14
    akaHenry  
       Jul 1, 2022
    @tulongtou 你安装的 Debian arm 版本是多少?

    我现在 m1 + vmware 装最新的版本(debian-11.3.0-arm64-netinst.iso), 是无法识别的.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5366 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 07:53 · PVG 15:53 · LAX 00:53 · JFK 03:53
    ♥ Do have faith in what you're doing.