Multipass 安装与基本使用

目录

  • [一. 简介](#一. 简介)
  • [二. 安装](#二. 安装)
  • [三. 使用](#三. 使用)
    • [3.1 启动](#3.1 启动)
    • [3.2 查看](#3.2 查看)
    • [3.3 创建实例](#3.3 创建实例)
    • [3.4 登录实例](#3.4 登录实例)
    • [3.5 其他实例操作](#3.5 其他实例操作)
      • [3.5.1 挂载](#3.5.1 挂载)
      • [3.5.2 解除挂载](#3.5.2 解除挂载)

一. 简介

Multipass 是 Canonical(Ubuntu 的开发公司)推出的一款轻量级 Linux 虚拟机管理工具。该工具可以让使用者不需要手动安装操作系统、配置虚拟硬盘和网络,就能快速获得一台可以使用的 Ubuntu Linux 机器。注意,只能安装ubuntu,无法安装其他发行版的Linux。

🔷Multipass 最主要的用途是快速创建独立的 Ubuntu 环境。

用途 说明
Linux 学习 学习 Ubuntu、Linux 命令和 Shell
软件开发 搭建 Python、Java、Node.js 开发环境
服务部署 部署 Nginx、MySQL、Redis、Docker 等
自动化测试 创建多个 Ubuntu 环境进行测试
网络实验 测试 SSH、网络配置、防火墙等
临时实验环境 不需要时删除虚拟机,释放资源

🔷从 Multipass 1.17 开始,Windows 默认使用 HCS(Host Compute System)驱动,而不是原来的 Hyper-V 驱动。

项目 HCS Hyper-V
英文全称 Host Compute System Hyper-V
技术基础 Windows 原生计算与虚拟化 API Hyper-V 虚拟化平台
Multipass 1.17 默认驱动 可手动切换为Hyper-V驱动
Windows Home 支持 不支持传统 Hyper-V 管理平台
Windows Pro 支持 支持

二. 安装

🔷下载系统默认存储在C:\ProgramData\Multipass中,C盘空间有限的话,可以在安装之前配置环境变量,指定实例的存储位置。

powershell 复制代码
[System.Environment]::SetEnvironmentVariable('MULTIPASS_STORAGE', 'D:\VM_PC\Multipass', 'Machine')

🔷官网下载安装包:https://canonical.com/multipass/install

  • 目前的版本是:1.17.0
  • 默认驱动是:hcs
powershell 复制代码
PS [PC] Desktop $ multipass version
multipass   1.17.0+win
multipassd  1.17.0+win
PS [PC] Desktop $
PS [PC] Desktop $ multipass get local.driver
hcs
PS [PC] Desktop $

三. 使用

3.1 启动

  • Multipass依赖于如下图所示的服务,默认开机启动。
  • 如果不想开机自启的话,可将启动类型设置为手动,然后使用管理员权限执行Start-Service multipass
  • 查看服务的状态:Get-Service multipass
  • 服务启动之后,Multipass 的 GUI 界面也可以使用了。

3.2 查看

  • 查看可用的版本
powershell 复制代码
PS [PC] Desktop $ multipass find
Image             Aliases                     Version          Description
22.04             jammy                       20261106         Ubuntu 22.04 LTS
24.04             noble                       20261017         Ubuntu 24.04 LTS
26.04             resolute,lts,ubuntu         20261016         Ubuntu 26.04 LTS
26.10             stonking                    20261105         Ubuntu 26.10
core:core16                                   current          Ubuntu Core 16
core:core18                                   current          Ubuntu Core 18
core:core20                                   current          Ubuntu Core 20
core:core22                                   current          Ubuntu Core 22
core:core24                                   current          Ubuntu Core 24
core:core26                                   current          Ubuntu Core 26
debian            trixie                      20261001         Debian 13
fedora                                        20260422         Fedora 44
PS [PC] Desktop 
  • 查看目前的实例列表
powershell 复制代码
PS [PC] Desktop $ multipass list
Name                    State             IPv4             Image               Zone
multipass-vm-01         Running           10.97.0.22       Ubuntu 24.04 LTS    zone1
PS [PC] Desktop $
  • 查看实例的信息
powershell 复制代码
PS [PC] Desktop $ multipass info multipass-vm-01
Name:           multipass-vm-01
State:          Running
Zone:           zone1
Snapshots:      0
IPv4:           10.97.0.22
Release:        Ubuntu 24.04.5 LTS
Image hash:     04e8f2461a16 (Ubuntu 24.04 LTS)
CPU(s):         4
Load:           0.00 0.00 0.00
Disk usage:     2.0GiB out of 48.4GiB
Memory usage:   416.0MiB out of 5.8GiB
Mounts:         --
PS [PC] Desktop $

3.3 创建实例

  • 创建:4核CPU、8G内存、50G磁盘,基于Ubuntu 24.04 的实例
powershell 复制代码
multipass launch 24.04 --name multipass-vm-01 --cpus 4 --memory 8G --disk 50G
  • 通过配置文件创建实例
powershell 复制代码
multipass launch 24.04 `
    --name multipass-vm-02 `
    --cpus 4 `
    --memory 8G `
    --disk 50G `
    --cloud-init ./init.yaml
powershell 复制代码
############### ./init.yaml ###############
# 默认用户
users:
  - default

# 安装软件包
packages:
  - nginx

# 执行初始化命令
runcmd:
  - systemctl enable nginx
  - systemctl start nginx
  • 通过克隆的方式创建实例
powershell 复制代码
# 被克隆的实例必须先停止
multipass stop multipass-vm-01
# 依据 vm-01 克隆 vm-02
multipass clone multipass-vm-01 --name multipass-vm-02

3.4 登录实例

powershell 复制代码
multipass shell multipass-vm-01

👌默认的用户是ubuntu,但是没有密码,可以通过passwd名称设置密码

bash 复制代码
sudo passwd ubuntu

3.5 其他实例操作

  • 不进入交互式终端,直接执行命令
powershell 复制代码
PS [PC] Desktop $ multipass exec multipass-vm-02 -- ip -4 addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet 10.97.0.226/24 metric 100 brd 10.97.0.255 scope global dynamic eth0
       valid_lft 85874sec preferred_lft 85874sec
PS [PC] Desktop $
  • 启动,关机,暂停
powershell 复制代码
multipass start multipass-vm-01
multipass stop multipass-vm-01
multipass suspend multipass-vm-01
  • 添加删除标记,永久删除
powershell 复制代码
# 为实例添加删除标记(并不会真的删除实例)
multipass delete multipass-vm-01
# 清除被标记删除标记的实例(会删除实例)
multipass purge

3.5.1 挂载

🔷Multipass 在 Windows 上出于安全考虑,默认可能禁用特权挂载功能。需要先修改 local.privileged-mounts 配置,再执行挂载。

powershell 复制代码
# 默认情况下为false
PS [PC] Desktop $ multipass get local.privileged-mounts
false
PS [PC] Desktop $
  • 启动挂载功能
powershell 复制代码
PS [PC] Desktop $ multipass set local.privileged-mounts=true
PS [PC] Desktop $
PS [PC] Desktop $ multipass get local.privileged-mounts
true
PS [PC] Desktop $
  • 挂载windows磁盘到虚拟机实例中
powershell 复制代码
# sudo snap install multipass-sshfs
multipass mount "D:\My_Project\PythonStudy" multipass-vm-02:/home/ubuntu/PythonStudy

3.5.2 解除挂载

powershell 复制代码
multipass umount multipass-vm-02
  • 确定挂载被解除
powershell 复制代码
PS [PC] Desktop $ multipass info multipass-vm-02
Name:           multipass-vm-02
State:          Running
Zone:           zone1
Snapshots:      0
IPv4:           10.97.0.226
Release:        Ubuntu 24.04.5 LTS
Image hash:     04e8f2461a16 (Ubuntu 24.04 LTS)
CPU(s):         4
Load:           0.00 0.05 0.05
Disk usage:     2.0GiB out of 48.4GiB
Memory usage:   450.2MiB out of 5.8GiB
Mounts:         --
PS [PC] Desktop $
相关推荐
大牙Adela1 年前
在Mac上通过Multipass虚拟机中的Ubuntu系统使用Graphviz工具
c语言·qt·ubuntu·macos·multipass·graphviz
一荤配一素3 年前
【Mac M2 pro】Linux虚拟机轻装上阵—multipass 尝试
ubuntu·multipass·mac m2
程序员鱼丸3 年前
无法在 macOS Ventura 上启动 Multipass
macos·虚拟机·multipass