如何M2(arm64)上运行amd64位的ubuntu系统

本教程将向您展示如何在Apple Mac M2 arm64架构的MacBook上使用UTM运行64位Ubuntu Linux虚拟机。

前言

随着Apple Silicon芯片(M1/M2)的普及,许多开发者面临着在ARM64架构上运行x86/AMD64应用程序的挑战。UTM是一个优秀的虚拟化解决方案,可以帮助我们在Mac M2上运行不同架构的操作系统。

虽然我的电脑上已经有了arm64位的ubuntu系统,但是出于跨平台测试和编译,还是得需要amd64平台的系统,因此本文就实战如何部署一个amd64的ubuntu在m2上。

安装UTM

首先,我们需要安装UTM虚拟机软件:

  1. 访问UTM官方文档页面:https://docs.getutm.app/installation/macos/
  2. 下载UTM.dmg文件
  3. 安装并打开UTM

安装完成后,您将看到UTM的主界面。

下载Ubuntu镜像

在创建虚拟机之前,我们需要下载Ubuntu Server镜像:

  1. 访问Ubuntu Server下载页面:https://ubuntu.com/download/server
  2. 选择并下载您想要的版本(本教程使用Ubuntu Server 22.04)
  3. 等待ISO镜像文件下载完成

创建虚拟机

第一步:选择虚拟化类型

在UTM主界面中点击"创建新虚拟机":

  1. 选择"模拟(Emulate)",因为我们要运行AMD64位架构
  2. 选择"Linux"操作系统类型,这里要选择Emulate。linux-64bit-vms-on-apple-mac-m1

第二步:选择系统镜像

在下一个界面中:

  1. 浏览并选择刚才下载的Ubuntu ISO镜像文件

  2. 确认选择的镜像文件正确显示,这里点击“Browse”,选择我们下载好的amd64的镜像。

    linux-64bit-vms-on-apple-mac-m1

第三步:配置硬件

点击"继续"后,需要配置虚拟机的硬件参数:

  • 架构:选择 x86_64
  • 系统:保持默认设置
  • 内存:设置为 2048MB(可根据需要调整)
  • CPU核心数:设置为 2(可根据需要调整)linux-64bit-vms-on-apple-mac-m1

第四步:配置存储

在存储配置界面:

  • 设置虚拟磁盘大小(本教程设置为8GB,仅用于测试)
  • 根据实际需求调整存储大小linux-64bit-vms-on-apple-mac-m1

第五步:共享目录(可选)

如果需要在主机和虚拟机之间共享文件,可以配置共享目录:

mkdir ~/share

在UTM中将这个目录设置为共享目录。

第六步:完成配置

  1. 在摘要界面检查所有配置
  2. 为虚拟机命名
  3. 点击"保存"完成创建linux-64bit-vms-on-apple-mac-m1

安装Ubuntu

启动虚拟机

  1. 在UTM主界面选择刚创建的虚拟机
  2. 点击播放按钮启动虚拟机
  3. 控制台将显示Ubuntu安装界面linux-64bit-vms-on-apple-mac-m1

安装过程

  1. 选择"安装Ubuntu"
  2. 按照安装向导进行配置
  3. 重要:确保选择"安装OpenSSH服务器"选项,这样可以通过SSH连接到虚拟机
  4. 完成其他配置选项,安装过程中会让你选择镜像源,可以自行配置清华的源或者其他的。
  5. 等待安装过程完成(通常需要几分钟)linux-64bit-vms-on-apple-mac-m1

完成安装

安装完成后:

  1. 在UTM界面右侧点击圆形按钮
  2. 选择CD/DVD选项
  3. 选择Ubuntu ISO并点击"弹出"
  4. 关闭虚拟机并重新启动

使用虚拟机

登录系统

虚拟机重启后:

  1. 使用安装时创建的用户账号登录
  2. 查看虚拟机的IP地址:
    ip addr show
    

通过SSH连接

从Mac终端连接到虚拟机:

ssh username@虚拟机IP地址

可以验证虚拟机正在运行64位系统:linux-64bit-vms-on-apple-mac-m1

这将显示 x86_64,确认我们成功在ARM64的Mac M2上运行了AMD64架构的Linux虚拟机。

总结

通过UTM,可以在Mac M2上成功运行AMD64架构的Linux虚拟机。这种方法虽然性能会有所损失(因为需要指令集转换),但对于开发、测试和学习目的来说已经足够。

UTM的优势包括:

  • 支持多种架构模拟
  • 界面友好,易于使用
  • 免费开源
  • 在Apple Silicon上有良好的兼容性

这个解决方案特别适合需要在ARM64环境中运行x86/AMD64应用程序的开发者和技术爱好者。


个人体验:由于涉及架构模拟,在amd64上运行确实比其他的arm64的系统慢很多,大概延迟1秒左右,即使配置了多核和内存还是一样的,因此安装仅用于测试,要高性能的还是去找一台完整的amd64的虚拟机或者服务器更合适。