找了很久,终于找到M1芯片电脑可以使用的虚拟机软件了 
虚拟机软件太多了,出名的莫过于VMware,VirutlaBox以及Parallels Desktop。
我们使用虚拟机软件一般有两种用途:
Ubuntu,Mac安装Windows等,用于日常工作和生活的使用;这一需求我目前使用Parallels Desktop来解决,在我本机上安装了Windows和Ubuntu的桌面版。Parallels Desktop除了贵,没有其他问题!

之前我在Windows上都是使用VirtualBox+Vagrant的方式快速创建和销毁虚拟机。现在我的工作主机换成了M1芯片的Mac,而VirtualBox并没有给予适配。
最近发现了一款叫做Multipass的虚拟机软件,重点是,我的M1电脑可以使用!接下来给大家分享一下使用心得。
Mac下推荐使用brew安装Multipass,免去了点击下载,解压以及安装的步骤
brew install --cask multipass安装之后,查看是否安装成功
? ~ multipass versionmultipass 1.9.2+macmultipassd 1.9.2+mac? ~ multipass findImage Aliases Version Description18.04 bionic 20220615 Ubuntu 18.04 LTS20.04 focal,lts 20220615 Ubuntu 20.04 LTS21.10 impish 20220609 Ubuntu 21.1022.04 jammy 20220609 Ubuntu 22.04 LTSanbox-cloud-appliance latest Anbox Cloud Appliancecharm-dev latest A development and testing environment for charmersdocker latest A Docker environment with Portainer and related toolsminikube latest minikube is local Kubernetes注意:
Multipass只提供了Ubuntu的发行版镜像,这对于开发人员开说并不算什么缺点,至少对我是这样的
接下来我们选择需要的镜像版本来安装Ubuntu实例,这里以jammy(镜像列表的Aliases一列)为例
? ~ multipass launch jammyLaunched: boss-wallaroo其中,boss-wallaroo是Multipass给jammy镜像实例随机起的名字,你也可以使用--name来指定实例名称。
~ multipass launch jammy --name chanmufeng-ubuntuLaunched: chanmufeng-ubuntu使用multipass info --all查看安装的所有虚拟机
? ~ multipass info --allName: chanmufeng-ubuntuState: RunningIPv4: 192.168.64.3Release: Ubuntu 22.04 LTSImage hash: 746fd17e2944 (Ubuntu 22.04 LTS)Load: 0.02 0.02 0.00Disk usage: 1.3G out of 4.7GMemory usage: 162.4M out of 961.9MMounts: --Name: lucky-dogState: StoppedIPv4: --Release: --Image hash: 746fd17e2944 (Ubuntu 22.04 LTS)Load: --Disk usage: --Memory usage: --Mounts: --执行结果表明,我电脑上有了2个实例,分别是chanmufeng-ubuntu(运行中)、lucky-dog(停止状态)。
执行multipass shell 实例名 进入实例,如果实例未启动,则会自动启动
? ~ multipass shell lucky-dogWelcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-37-generic aarch64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sun Jun 19 21:06:43 CST 2022 System load: 0.3203125 Usage of /: 29.8% of 4.77GB Memory usage: 20% Swap usage: 0% Processes: 100 Users logged in: 0 IPv4 address for enp0s1: 192.168.64.2 IPv6 address for enp0s1: fd96:8c7d:a0ba:459d:5054:ff:fea5:1ea30 updates can be applied immediately.Last login: Tue Jun 14 13:41:27 2022 from 192.168.64.1ubuntu@lucky-dog:~$ ~然后就可以在lucky-dog中自由地玩耍了。
# 暂停? ~ multipass stop lucky-dog# 启动? ~ multipass start lucky-dog使用如下命令删除实例
? ~ multipass delete chanmufeng-ubuntudelete命令只是将chanmufeng-ubuntu实例标记为DELETED状态而已,相当于放到了回收站,但是本身依然存在。
使用list命令看一下
? ~ multipass listName State IPv4 Imagechanmufeng-ubuntu Deleted -- Not Availablelucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS如果后悔了,可以使用recover命令进行撤销
? ~ multipass recover chanmufeng-ubuntu再次使用list命令看一下
? ~ multipass listName State IPv4 Imagechanmufeng-ubuntu Stopped -- Not Availablelucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS这一步相当于从“回收站”彻底删除,当然了,前提是实例必须已经被放在了“回收站”。
? ~ multipass delete chanmufeng-ubuntu? ~ multipass purge? ~ multipass listName State IPv4 Imagelucky-dog Running 192.168.64.2 Ubuntu 22.04 LTS除了以上基本功能,Multipass还提供其他进阶功能,本文只是提一嘴,更多细节,大家访问官网查看一下文档即可。
可以自定义CPU核心数、硬盘大小以及内存大小等参数
自定义网卡配置和DNS配置
虚拟机功能给我们带来的好处就是对于实例,我们想建就建,想删就删。
可是删了之后重新建立,难免很多软件和工具需要重新进行配置,Mutipass提供了--cloud-init对容器进行初始化配置。
? ~ multipass launch --name ubuntu --cloud-init config.yamlconfig.yaml 是初始化配置文件,内容如下:
runcmd: - curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - - sudo apt-get install -y nodejs runcmd 可以指定容器首次启动时运行的命令
当然,这个功能不适合M1,但是在其他平台上搭配VirtualBox可以实现和Vagrant同样的效果。
通过VirtualBox对Multipass虚拟机进行可视化操作。

还有其他的一些功能需要读者朋友们自己发掘一下了,更多细节参见官网。