使用 UTM 在 Mac M1 (arm64) 上运行 x86_64 项目
自从苹果发布了搭载 M1 芯片的新 Mac 以来,一直在努力让各种应用程序可以在新架构上运行,即 arm64,不同于英特尔、AMD 等传统的 x86_64 架构,既来自拥有专有软件的公司,也来自开源项目社区。
Mac M1 支持这个生态系统的大部分,但是,一些项目仍然存在问题,例如一些基于 QEMU 的项目或尚不支持多架构的 docker 映像。
解决这种情况的一种方法就是能够以 x86_64 架构运行这些项目,而这正是虚拟化可以帮助我们的地方。
对于虚拟化,我们将使用 UTM,我已经在这个链接中写过,Virtualization on Mac M1?是的,使用 UTM。
所以我假设你已经在你的 Mac M1 上安装了 UTM,所以我们开始吧。
对于本文,我们将使用 Ubuntu 20.04 服务器,因此您可以从 Canonical 的网站下载它,或者直接从下面的链接下载它,但是,您可以使用您选择的发行版。
发布.ubuntu.com/20.04/ubuntu-20.04.3-li..
创建虚拟机
- 让我们通过单击“+”图标然后“从头开始”来创建我们的虚拟机。

- 在“信息”选项卡中,您将根据需要配置虚拟机的名称和图标。

- 在“系统”选项卡中是重要的部分,在“架构”中,选择“x86_64”选项,下面的“系统”选项将自动更改。在“内存”选项中,您将选择虚拟机应具有的内存量。能够运行的最小值是 768Mb,但是,我强烈建议您放置 1Gb 或更多。

- 在“驱动器”选项卡中,您将创建一个硬盘和一个 CD/DVD 驱动器。我强烈建议创建至少 30Gb 或更大的磁盘。



- 在“网络”选项卡中,您将创建一个端口转发,以便我们可以通过 SSH 访问机器。


值得记住的是,您可以根据需要转发其他端口。
- 最后,点击“保存”就可以了,你的虚拟机就创建好了。

- 在虚拟机信息的底部有一个选择 CD/DVD 选项,您将选择您选择的发行版的 ISO,在我们的例子中是 Ubuntu Server 20.04。

- 现在只需运行虚拟机并安装 linux 发行版。

测试虚拟机
现在您已经安装了虚拟机,只需通过 SSH 访问它,您将看到虚拟机将运行 x86_64 系统,如下图所示。

试火时间
对于防火示例,我正在使用 docker 和一个名为 Kafdrop 的项目的容器,它基本上是一个用 Java 制作的 Kafka 的 Web UI,并且在 GitHub 上也值得一星,即使它是用 Java 制作的哈哈存储库该项目如下。
github.com/obsidiandynamics/kafdrop
由于这个项目的容器还不支持多架构,所以我们试着把它当成linux/amd64来运行,在其他项目中可以,但是在这个项目中不行。
如下图所示,在第一个控制台中发生了错误qemu: uncaught target signal 11 (Segmentation fault) - core dumped,因为即使尝试在 arch arm64 上强制 x86_64,在这种情况下它也不起作用。
但是,在第二个控制台中,项目运行正常,因为它是在 x86_64 发行版上运行的 x86_64 容器。

也就是说,即使使用 Mac M1 也完全可以运行 x86_64 项目。
就是这样,我希望我对这篇文章有所帮助,如果您有更多问题,请随时在此处发表评论或在互联网上的某个地方寻找我 :)
更多推荐


所有评论(0)