• 推荐一款M1电脑可用的虚拟机软件



    image-20220619220708778

    虚拟机软件太多了,出名的莫过于VMwareVirutlaBox以及Parallels Desktop

    我们使用虚拟机软件一般有两种用途:

    1. 安装不同于宿主机系统的拥有用户界面的操作系统,比如Windows安装桌面版Ubuntu,Mac安装Windows等,用于日常工作和生活的使用;

    这一需求我目前使用Parallels Desktop来解决,在我本机上安装了WindowsUbuntu的桌面版。Parallels Desktop除了贵,没有其他问题!

    image-20220620075136512

    1. 另一种是便于开发者快速创建和部署虚拟化开发环境(集群环境),本文推荐的虚拟软件就是这个作用。

    之前我在Windows上都是使用VirtualBox+Vagrant的方式快速创建和销毁虚拟机。现在我的工作主机换成了M1芯片的Mac,而VirtualBox并没有给予适配。

    最近发现了一款叫做Multipass的虚拟机软件,重点是,我的M1电脑可以使用!接下来给大家分享一下使用心得。

    下载安装Multipass

    Mac下推荐使用brew安装Multipass,免去了点击下载,解压以及安装的步骤

    brew install --cask multipass
    
    • 1

    安装之后,查看是否安装成功

    ➜  ~ multipass version
    multipass   1.9.2+mac
    multipassd  1.9.2+mac
    
    • 1
    • 2
    • 3

    查看Multipass支持的镜像

    ➜  ~ multipass find
    Image                       Aliases           Version          Description
    18.04                       bionic            20220615         Ubuntu 18.04 LTS
    20.04                       focal,lts         20220615         Ubuntu 20.04 LTS
    21.10                       impish            20220609         Ubuntu 21.10
    22.04                       jammy             20220609         Ubuntu 22.04 LTS
    anbox-cloud-appliance                         latest           Anbox Cloud Appliance
    charm-dev                                     latest           A development and testing environment for charmers
    docker                                        latest           A Docker environment with Portainer and related tools
    minikube                                      latest           minikube is local Kubernetes
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    注意Multipass只提供了Ubuntu的发行版镜像,这对于开发人员开说并不算什么缺点,至少对我是这样的

    创建虚拟机

    接下来我们选择需要的镜像版本来安装Ubuntu实例,这里以jammy(镜像列表的Aliases一列)为例

    ➜  ~ multipass launch jammy
    Launched: boss-wallaroo
    
    • 1
    • 2

    其中,boss-wallarooMultipassjammy镜像实例随机起的名字,你也可以使用--name来指定实例名称。

    ~ multipass launch jammy --name chanmufeng-ubuntu
    Launched: chanmufeng-ubuntu
    
    • 1
    • 2

    操作虚拟机

    查看虚拟机列表

    使用multipass info --all查看安装的所有虚拟机

    ➜  ~ multipass info --all
    Name:           chanmufeng-ubuntu
    State:          Running
    IPv4:           192.168.64.3
    Release:        Ubuntu 22.04 LTS
    Image hash:     746fd17e2944 (Ubuntu 22.04 LTS)
    Load:           0.02 0.02 0.00
    Disk usage:     1.3G out of 4.7G
    Memory usage:   162.4M out of 961.9M
    Mounts:         --
    
    Name:           lucky-dog
    State:          Stopped
    IPv4:           --
    Release:        --
    Image hash:     746fd17e2944 (Ubuntu 22.04 LTS)
    Load:           --
    Disk usage:     --
    Memory usage:   --
    Mounts:         --
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    执行结果表明,我电脑上有了2个实例,分别是chanmufeng-ubuntu(运行中)、lucky-dog(停止状态)。

    进入虚拟机,执行命令

    执行multipass shell 实例名 进入实例,如果实例未启动,则会自动启动

    ➜  ~ multipass shell lucky-dog
    Welcome 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:1ea3
    
    
    0 updates can be applied immediately.
    
    
    Last login: Tue Jun 14 13:41:27 2022 from 192.168.64.1
    ubuntu@lucky-dog:~$ ~
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    然后就可以在lucky-dog中自由地玩耍了。

    停止/重启虚拟机

    # 暂停
    ➜  ~ multipass stop lucky-dog
    # 启动
    ➜  ~ multipass start lucky-dog
    
    • 1
    • 2
    • 3
    • 4

    移除实例到“回收站”

    使用如下命令删除实例

    ➜  ~ multipass delete chanmufeng-ubuntu
    
    • 1

    delete命令只是将chanmufeng-ubuntu实例标记为DELETED状态而已,相当于放到了回收站,但是本身依然存在。

    使用list命令看一下

    ➜  ~ multipass list
    Name                    State             IPv4             Image
    chanmufeng-ubuntu       Deleted           --               Not Available
    lucky-dog               Running           192.168.64.2     Ubuntu 22.04 LTS
    
    • 1
    • 2
    • 3
    • 4

    如果后悔了,可以使用recover命令进行撤销

    ➜  ~ multipass recover chanmufeng-ubuntu
    
    • 1

    再次使用list命令看一下

    ➜  ~ multipass list
    Name                    State             IPv4             Image
    chanmufeng-ubuntu       Stopped           --               Not Available
    lucky-dog               Running           192.168.64.2     Ubuntu 22.04 LTS
    
    • 1
    • 2
    • 3
    • 4

    彻底删除实例

    这一步相当于从“回收站”彻底删除,当然了,前提是实例必须已经被放在了“回收站”。

    ➜  ~ multipass delete chanmufeng-ubuntu
    ➜  ~ multipass purge
    ➜  ~ multipass list
    Name                    State             IPv4             Image
    lucky-dog               Running           192.168.64.2     Ubuntu 22.04 LTS
    
    • 1
    • 2
    • 3
    • 4
    • 5

    其他进阶功能

    除了以上基本功能,Multipass还提供其他进阶功能,本文只是提一嘴,更多细节,大家访问官网查看一下文档即可。

    自定义硬件配置

    • 可以自定义CPU核心数、硬盘大小以及内存大小等参数

    • 自定义网卡配置和DNS配置

    快速配置环境

    虚拟机功能给我们带来的好处就是对于实例,我们想建就建,想删就删。

    可是删了之后重新建立,难免很多软件和工具需要重新进行配置,Mutipass提供了--cloud-init对容器进行初始化配置。

    ➜  ~ multipass launch --name ubuntu --cloud-init config.yaml
    
    • 1

    config.yaml 是初始化配置文件,内容如下:

    runcmd:
     - curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
     - sudo apt-get install -y nodejs  
    
    • 1
    • 2
    • 3

    runcmd 可以指定容器首次启动时运行的命令

    搭配VirtualBox

    当然,这个功能不适合M1,但是在其他平台上搭配VirtualBox可以实现和Vagrant同样的效果。

    通过VirtualBoxMultipass虚拟机进行可视化操作。

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

  • 相关阅读:
    Warning: [antd: Switch] `value` is not a valid prop, do you mean `checked`?
    github token个人令牌
    RNN在图像压缩领域的应用-Variable rate image compression with recurrent neural networks
    【算法训练-动态规划 零】动态规划解题框架
    智慧社区管理系统-知识点补充01
    Android:WebView使用常见问题汇总(持续更新)
    Xcode Build Setting之Compiler flags
    css - - - - - 去除图片默认的白色背景(混合模式 mix-blend-mode)
    NLP学习(1)-搭建环境
    Three.js柏林噪音 流动球体
  • 原文地址:https://blog.csdn.net/chanmufeng/article/details/125404184