在Parallels中将Ubuntu Desktop 22.04 ARM64安装在macOS Apple Silicon(M1/Pro/Max)上

目前还没有Ubuntu Desktop 22.04的ARM64直接下载,那么如何安装呢?

只是出于好奇:这个运行得如何,也就是说,你会考虑将其作为日常使用的驱动程序吗?你在哪些设备上看到了什么样的电池续航时间? - Cliowa
我在背景中默默运行了几个月,完全忘记了它的存在。只要关闭图形界面,保持纯文本模式,并停止一些占用CPU资源的服务,其实效果还不错。 - ylluminate
5个回答

更新2:非公开(不在主网站上)的arm64桌面版本现在可以在dail-live文件夹中获取: https://cdimage.ubuntu.com/jammy/daily-live/current/jammy-desktop-arm64.iso 你的情况可能有所不同,但也许可以直接使用,正如另一位用户所指示的那样
有些人感到困惑,以下是整个过程的完整屏幕录像: https://www.youtube.com/watch?v=56n2q6-MXX8
  1. 从以下链接下载ARM64服务器版:https://ubuntu.com/download/server/arm
  2. 在Parallels 17中创建新的虚拟机时使用ISO进行安装
  3. 更新系统:sudo apt update && sudo apt upgrade 然后 sudo reboot
  4. 登录并安装:sudo apt install ubuntu-desktop
  5. 重新启动(sudo reboot
  6. Parallels工具安装:两个选项
  • 使用菜单栏:

    1. 菜单栏 → 操作 → 安装 Parallels 工具
    2. 通过 shell 安装:
      cd /media/USERNAME/Parallels\ Tools
      sudo ./install
      sudo reboot
      
  • 使用 ISO:挂载 Parallels ARM64 工具 ISO 并安装:

    • 注意:最初在安装图形用户界面之前我安装了 Parallels 工具,但如果您在安装 ubuntu-desktop 或者 kde-standard/full/whatever 之后再安装它,那么复制粘贴等功能也会被安装。
    1. CD-ROM:“连接映像…”
    2. 导航到 /Applications/ 并切换到列表视图
    3. 展开 Parallels Desktop.app/Contents/Resources/Tools/
    4. 选择并打开 prl-tools-lin-arm.iso
    5. 执行:
      sudo mount /dev/cdrom /media/
      cd /media/
      sudo ./install
      # 允许其安装适当的工具
      sudo reboot
      
成功: Ubuntu Desktop 22.04 on macOS Parallels ARM64 DOCKER:
下面有一个关于Docker是否可以在Apple Silicon上与Ubuntu 22.04一起使用的问题。答案是肯定的。人们遇到的问题是当他们尝试在Ubuntu上使用"Docker Desktop"(而不是直接在macOS上)时,会出现问题。这会尝试运行嵌套虚拟化场景,而苹果在M1系列的Apple Silicon设备上没有提供此指令集。然而,关键是只需使用Docker本身,例如从这里的教程开始: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04 然后你会注意到,在成功设置并运行docker run hello-world之后,它确实可以工作。此外,您还可以安装像Alpine这样的发行版并运行它们:
$ docker pull alpine
$ docker run -it alpine
/ # ls
bin    dev    etc    home   lib    media  mnt    opt    proc   root   run    sbin   srv    sys    tmp    usr    var
/ # exit
$ docker image ls
REPOSITORY    TAG       IMAGE ID       CREATED       SIZE
alpine        latest    3fb3c9af89a9   5 weeks ago   5.32MB
hello-world   latest    46331d942d63   7 weeks ago   9.14kB
$ docker system prune -a --volumes
WARNING! This will remove:
  - all stopped containers
  - all networks not used by at least one container
  - all volumes not used by at least one container
  - all images without at least one container associated to them
  - all build cache

Are you sure you want to continue? [y/N] y
Deleted Containers:
e02dce4144eccb4828a3775ec96c97c5741c69120981bf323732796ff2e4855f
72beba41f97505fe14532b0f700e6c1477986c35c656bac7500591194725e1ef

Deleted Images:
untagged: hello-world:latest
untagged: hello-world@sha256:80f31da1ac7b312ba29d65080fddf797dd76acfb870e677f390d5acba9741b17
deleted: sha256:46331d942d6350436f64e614d75725f6de3bb5c63e266e236e04389820a234c4
deleted: sha256:efb53921da3394806160641b72a2cbd34ca1a9a8345ac670a85a04ad3d0e3507
untagged: alpine:latest
untagged: alpine@sha256:4edbd2beb5f78b1014028f4fbb99f3237d9561100b6881aabbf5acce2c4f9454
deleted: sha256:3fb3c9af89a9178a2ab12a1f30d8df607fa46a6f176acf9448328b22d31086a2
deleted: sha256:4f4ce317c6bbf55719e49973d32d33ba456d7cb08693a6d6fb372690eacee23b

Total reclaimed space: 5.331MB

这里还有一个ARM64桌面镜像可用:http://cdimage.ubuntu.com/jammy/daily-live/current/ 不确定是否很新,但看起来是的 ;) 我成功地使用该镜像在Parallels中安装了Jammy(我也会尝试UTM)。 然而,我还没有找到KUbuntu的ARM64镜像 :( 如果有人发现了,请告诉我,谢谢! - mkurz
酷,很高兴看到他们终于建成了@mkurz。之前在任何地方都找不到,但Kubuntu可以安装在服务器上或桌面上。实际上,我在安装后切换到了Kubuntu,只是没有在上面记录下来。尝试使用sudo apt install kde-full或更轻的元包kde-standardkde-plasma-desktop - ylluminate
Parallels不是免费提供的。我建议使用UTM作为替代选择。 - undefined
是的,我已经和UTM调情一段时间了@Mehrshad,但在某些方面它还不够成熟,这些方面正是Parallels所提供的。我想这取决于你的使用情况。UTM确实有所帮助,尤其是对于一些不受直接支持的架构,甚至是像QNX这样的操作系统,即使是arm64也可以运行。 - undefined

1. 在M1 Mac上 - 我使用的是16GB RAM的Pro版本。 2. 安装了Parallels Desktop - 我的版本不是从Mac应用商店下载的。我认为从Parallels网站下载的版本并不重要,我安装的是高级版,但我认为那只是让你拥有更多的RAM。 3. 下载Jammy Jellyfish每日构建: - 直接下载:https://cdimage.ubuntu.com/jammy/daily-live/current/jammy-desktop-arm64.iso - 父目录:https://cdimage.ubuntu.com/jammy/daily-live/current/ 4. 使用ISO创建新的虚拟机。 5. 我没有选择Parallels的自动安装选项。不确定另一种方式是否可行。安装后,重新启动,启动序列在找不到CD / DVD后冻结。我想我按了回车键然后它就起作用了,或者以某种方式重新启动了它。 6. 我执行了在此页面中看到的其他帖子中提到的以下操作:
  • CD-ROM: "连接图像..."
  • 导航到 /Applications/ 并切换到列表视图
  • 展开 Parallels Desktop.app/Contents/Resources/Tools/
  • 选择并打开 prl-tools-lin-arm.iso
  • 执行: sudo mount /dev/cdrom /media/ cd /media/ sudo ./install
  • 允许其安装适当的工具 sudo reboot
  1. 对我来说有效!
  2. 现在,所有的 ARM 应用程序在哪里?希望它们能随着时间的推移进行移植。
  3. 顺便说一下,我非常努力地尝试让这个在 Fedora 36 上运行,但无法使 Parallels Tools 正常工作。
  4. 额外说明,使用 M1 Mac 的系统速度比使用具有 32GB RAM 的 2020 年款 Mac mini 在 x86 架构上要快得多。我原以为它们会相似,但我错了。M1 真是太强大了。祝你好运!

我尝试使用 Parallels 1.7.2(23531)和 ubuntu-22.04-live-server-arm64.iso 在我的 M1 上创建一个虚拟机。但是在 Grub 屏幕之后出现了一个空白屏幕,永远停留在那里。

所以我必须假设安装失败/挂起。是否有任何特殊的设置(BIOS/UEFI 等),使其成功引导?

我还尝试从 grub 的引导命令中删除 quiet 参数,然后我得到以下输出:

EFI stub: Booting Linux Kernel...
EFI stub: EFI_RNG_PROTOCOL unavailable
EFI stub: Using DTB from configuration table 
EFI stub: Exiting boot services...

这是什么意思,我能做些什么呢?
谢谢。

我能够立即启动它。等我有机会的时候,我会录制一个屏幕录像来演示。 - ylluminate
那么,你用的是哪个版本的Parallels呢,ylluminate?我正在使用1.7.2 App Store Edition。Dave在他的帖子中建议所使用的Parallels版本可能会有所不同... - Stefan Szebinski
Stefan,注意一下我在原始帖子中已经提供了版本号。所以正如最初指出的(也许你错过了这个信息,如果你没有注意到的话?),“17”是我正在使用的版本,具体来说是最新发布的17.1.2 (51548) - ylluminate
在我的回答中为您添加了一个屏幕录像。 - ylluminate
是的,所以它是完全相同的版本,我在你的原始帖子中没有注意到这一点,抱歉。但那么有什么区别呢?对我来说不起作用... - Stefan Szebinski
如果您完全按照演示视频中的步骤进行操作,我不确定您遇到了什么问题。我强烈建议您在 Parallels 论坛上发布问题并/或者联系客户支持。 - ylluminate
我完全像你一样(感谢你的屏幕录制)。它总是停在只显示下划线的屏幕上(就在Grub之后)。现在它继续进行,就像你的视频中一样。什么都没改变...令人困惑。也许我只是没有耐心等待启动过程继续吧?不管怎样,谢谢,它起作用了! - Stefan Szebinski
当然没问题,很高兴现在可以正常工作了! - ylluminate
我使用VMWare Fusion也遇到了完全相同的问题。你知道是什么导致的吗? - leodotcloud

我成功地运行了下面的命令:
docker run --platform linux/arm64 -p 52022:22 --name arm64 -v /Users/my_username:/home/my_username -v /tmp/:/tmp -it ubuntu:22.04

我和Stephan一样,在MacBook Pro(16英寸,2021年)M1 Pro 32GB内存上安装Ubuntu 22.04时遇到了同样的问题。我使用的是Apple Store版本1.7.x(我想是1.7.2)。根据上面接受的解决方案的建议,我从我的机器上移除了Parallels,登录了我的parallels.com账户,并重新安装了parallels Version 17.1.2(51548)。在下载和激活新安装后,我按照上面接受的解决方案的建议进行操作,现在Ubuntu 22.04已经按照接受的解决方案的答案运行正常。
我应该提到,我在安装parallel tools时遇到了问题。最后,我所做的是点击虚拟机窗口顶部的警告图标,警告我需要安装工具。这显然挂载了磁盘并安装了工具。
我直觉认为我使用的Apple Store版本可能有所不同。我尚未确认,但我所采取的行动似乎确实表明如此。 2022年5月4日更新 根据我收到的parallels.com的支持邮件,我安装的苹果商店版本是parallels desktop,并不同于我在parallels.com网站上购买的parallels pro版本。他们给我发送了以下链接以供将来参考,但简而言之,我相信在我的情况下需要parallels pro。
"版本之间的区别 - https://kb.parallels.com/en/123796"

在我的回答中为您添加了一个屏幕录像。 - ylluminate
有什么特别酷的是如何在Ubuntu 22.04 Parallels/M1虚拟机上安装Docker Desktop的建议。 :) - Dave
嗯,你能告诉我一些关于Docker Desktop的事情吗,@Dave?:Docker Desktop(普通的Docker不应该有,而且我对“Desktop”这个术语不熟悉,所以可能是一个不同的产品)需要嵌套虚拟化吗?例如,它在Linux发行版上运行qemu/kvm,而不是LXC/kernel层次结构?嵌套虚拟化,我最近从苹果那里了解到这一点,让我很失望,因为我觉得我买苹果芯片太早了,M1系列芯片不支持嵌套虚拟化,但M2系统可能/应该会支持... - ylluminate
Dave,我猜你指的是https://www.docker.com/products/docker-desktop/。现在它似乎已经直接支持苹果芯片上的 macOS... 你为什么想在 Ubuntu 上运行它呢?我看了一下 Linux 版本(https://docs.docker.com/desktop/linux/install/),发现提到了 kvm,所以我怀疑确实需要嵌套虚拟化,并且可能无法在 macOS Parallels 这样的虚拟机客户机中运行。 - ylluminate
很抱歉回复晚了。我所指的是docker.com/products/docker-desktop产品。我试图在Linux(Ubuntu 30.04或22.04)上设置一个实验,以便在MacBook Pro/M1上纯粹使用Linux进行容器实验、部署Docker容器等。我可以在其他的MacBook Pro/Intel上做到这一点,但这更像是对M1的测试,看看能做到什么。话虽如此,你对嵌套虚拟化的评论可能会成为制约因素。还是感谢你对我的问题感兴趣。挑战极限,探索可行性总是有趣的。 - Dave
顺便提一下,非常感谢你在安装Ubuntu/Parallels/M1方面的卓越帮助。真的非常感激。 - Dave
欢迎。Docker本身似乎是可以工作的...(我不喜欢Docker,但它确实有效:))我认为你只是不能使用那些执行额外虚拟机操作的Docker实例。例如,尝试按照这个教程安装Docker 在制作客户机快照后,以便出错时可以恢复:https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04 -- 然后当你到达docker run hello-world时,它应该可以工作。然后你还可以docker pull alpine,然后docker run -it alpine。你会发现你已经进入并且它可以工作。 - ylluminate
Dave,我在上面的回答中为你添加了更多细节。 - ylluminate
谢谢你的帮助,ylluminate。我很感激。我想Ubuntu也有一种替代Docker的东西。我忘记它叫什么了,但我可能也会调查一下。我对其他平台没有偏见,只是在寻找一个能够预打包应用程序以供学习的平台。 - Dave
1再次感谢你,ylluminate。我刚刚拍了一个快照,安装了Docker,一切都正常运行。非常感谢你的帮助。我在想也许我可以尝试在Ubuntu虚拟机中运行一个Ubuntu容器。:) 其实不是真的,只是看起来很递归。最好的,Dave - Dave
1所以,现在我有:
  1. 在 MacBook Pro (16 英寸,2021 年款) 上运行的 Parallels 版本 17.1.2 (51548) 的 Ubuntu 22.04 Apple M1 Pro 处理器 32GB 内存
  2. Docker 版本 20.10.16,构建版本 aa7e414
太棒了!
- Dave
Dave,我确实喜欢/偏好LXC(Ubuntu正在改进这个领域为"LXD"),而Proxmox则是一个非常棒的LXC(Linux容器)解决方案。据我了解,Docker其实部分是基于此构建的,并且在可能的情况下会使用它(比如我们现在直接使用Docker,并安装其他Linux发行版,如递归-Ubuntu、Alpine等)。我希望看到Proxmox能够变得更强大,以便管理其他场景,这样我们就可以摆脱直接使用Docker和一些其他对DevOps部门产生困扰的混乱。 - ylluminate
Docker的主要吸引力在于其跨平台支持,适用于Windows、Mac和Ubuntu。我三个系统都使用(按照偏好顺序是Mac、Ubuntu和Windows),主要是因为工具和所需支持的内容。LXD是否只限于Ubuntu系统? - Dave
LXC/LXD是建立在Linux内核之上的,以便轻松实现额外的操作系统(发行版)实例。这使得Linux可以在整个系统中使用相同的内核和内存,比虚拟化更高效,但是是的,它必须与Linux一起使用。Docker也实现了同样的功能,这就是为什么你可以在Docker中同时运行多个Linux实例(发行版),而Docker Desktop使用虚拟化,并且在尝试在macOS上使用时会出现嵌套虚拟化问题。 - ylluminate