Multipass 完全指南:轻量级 Ubuntu 虚拟机管理
Multipass 是 Canonical 公司(Ubuntu 背后的公司)推出的一个轻量级虚拟机管理工具。它可以在 Windows、macOS 和 Linux 上快速启动和管理 Ubuntu 虚拟机,特别适合开发环境搭建、本地测试和云环境模拟。
博主博客
第一部分:安装与基础操作
1.1 安装 Multipass
- Windows/macOS:前往 Multipass 官网 下载安装包。
- Linux (Ubuntu/Debian):
sudo snap install multipass
1.2 创建虚拟机
安装完成后,可以通过命令行快速创建虚拟机。
1. 创建默认配置虚拟机:
# 创建名为 focal-vm 的 Ubuntu 20.04 虚拟机
multipass launch 20.04 --name focal-vm
2. 创建自定义配置虚拟机(指定 CPU、内存、磁盘):
# 创建 2核CPU、4G内存、20G硬盘的虚拟机
multipass launch 20.04 -n focal-vm -c 2 -m 4G -d 20G
3. 查看虚拟机状态:
multipass list
输出示例:
Name State IPv4 Image
focal-vm Running 192.168.64.2 Ubuntu 20.04 LTS
1.3 进入与退出虚拟机
- 进入 Shell 终端:
multipass shell focal-vm - 退出虚拟机: 在虚拟机内部输入
exit或按Ctrl + D。
1.4 停止与删除
# 停止虚拟机
multipass stop focal-vm
# 删除虚拟机(逻辑删除,仍占用空间)
multipass delete focal-vm
# 彻底释放空间(需先 delete 后再执行)
multipass purge
第二部分:文件共享与传输
Multipass 提供了两种主要方式来让宿主机和虚拟机之间交换文件:实时挂载 和 文件传输。
2.1 实时文件共享(挂载 Mount)
这是最推荐的方式。挂载后,宿主机和虚拟机可以实时读写同一个文件夹。
1. 挂载本地目录到虚拟机:
# 将宿主机的桌面上的 project 文件夹挂载到虚拟机的 /home/ubuntu/data
multipass mount $HOME/Desktop/project focal-vm:/home/ubuntu/data
2. 高级挂载(解决权限问题):
如果你发现挂载的文件夹在虚拟机内属于 root 用户,导致普通用户无法写入,可以使用 --uid-map 和 --gid-map 映射权限。
# 将宿主机的用户ID(1000)映射为虚拟机内的用户ID(1000)
# 此命令将本地 workspace 挂载,并确保虚拟机内的 ubuntu 用户有读写权限
sudo multipass mount ~/docker/ubuntu/workspace focal-vm:/home/ubuntu/workspace --uid-map 1000:1000 --gid-map 1000:1000
注:在 Linux 宿主机上挂载有时需要 sudo 权限。
3. 卸载挂载:
multipass umount focal-vm
2.2 文件传输(传输 Transfer)
类似于 scp 命令,适合拷贝单个文件或少量文件。
- 宿主机 -> 虚拟机:
multipass transfer local-file.txt focal-vm:/home/ubuntu/ - 虚拟机 -> 宿主机:
multipass transfer focal-vm:/home/ubuntu/remote-file.txt ./local-dir/
2.3 常见注意事项
- 权限问题:挂载的文件如果在虚拟机内显示为
root用户,可以在虚拟机内执行sudo chown -R ubuntu:ubuntu /home/ubuntu/data更改所有者。 - Windows 路径:在 Windows 的 PowerShell 中使用路径时,建议使用正斜杠
/或双反斜杠\\。例如:D:/data或D:\\data。 - 依赖库:如果挂载失败提示需要
sshfs,可以在宿主机和虚拟机中安装:sudo snap install multipass-sshfs
第三部分:图形化界面配置
Multipass 默认只有命令行界面(CLI)。如果你需要图形化界面(GUI),可以通过安装桌面环境并通过远程桌面(RDP)连接来实现。
3.1 安装桌面环境
# 更新软件源并安装 ubuntu-desktop
multipass exec focal-vm -- sudo apt update
multipass exec focal-vm -- sudo apt install -y ubuntu-desktop
注:安装过程可能较慢,且会占用较多磁盘空间。
3.2 安装并配置 XRDP
XRDP 允许你通过 Windows 自带的“远程桌面连接”工具连接到虚拟机。
# 安装 xrdp 服务
multipass exec focal-vm -- sudo apt install -y xrdp
# 启动并设置开机自启
multipass exec focal-vm -- sudo systemctl enable xrdp
multipass exec focal-vm -- sudo systemctl start xrdp
3.3 设置用户密码
默认情况下,虚拟机中的 ubuntu 用户没有设置密码。你需要设置一个密码以便远程登录。
# 设置 ubuntu 用户的密码(输入时不会显示字符)
multipass exec focal-vm -- sudo passwd ubuntu
3.4 连接图形界面
-
获取虚拟机 IP 地址:
multipass list记下
focal-vm对应的 IP 地址(例如192.168.64.2)。 -
使用远程桌面连接:
- Windows:打开自带的“远程桌面连接”应用。
- macOS:在 App Store 下载 “Microsoft Remote Desktop”。
- Linux:使用
Remmina或Vinagre等工具。
-
输入信息:
- 计算机:输入虚拟机的 IP 地址。
- 用户名:
ubuntu - 密码:你在上一步设置的密码。
连接成功后,你将看到 Ubuntu 的图形化桌面。
第四部分:常用命令速查表
| 操作 | 命令示例 |
|---|---|
| 创建虚拟机 | multipass launch 20.04 -n my-vm |
| 列出虚拟机 | multipass list |
| 进入虚拟机 | multipass shell my-vm |
| 执行单条命令 | multipass exec my-vm -- ls -la |
| 挂载目录 | multipass mount /local/path my-vm:/vm/path |
| 取消挂载 | multipass umount my-vm |
| 传输文件 | multipass transfer file.txt my-vm:/home/ubuntu/ |
| 停止虚拟机 | multipass stop my-vm |
| 删除虚拟机 | multipass delete my-vm |
| 彻底清理 | multipass purge |
| 查看详情 | multipass info my-vm |
第五部分:故障排除
-
挂载后无法写入文件
原因:权限不匹配。
解决:进入虚拟机,执行sudo chown -R ubuntu:ubuntu /挂载的路径。 -
图形界面连接黑屏或闪退
原因:XRDP 配置问题或桌面环境未完全安装。
解决:尝试重启 xrdp 服务sudo systemctl restart xrdp,或者确保ubuntu-desktop安装完整。 -
虚拟机无法启动
原因:资源不足(如 Hyper-V 冲突,或磁盘空间不足)。
解决:检查宿主机的虚拟化支持(Windows 需开启 Hyper-V),或使用multipass delete --purge彻底删除后重建。
通过以上步骤,你应该可以熟练地使用 Multipass 来管理轻量级的 Ubuntu 虚拟机了。它是一个非常实用的工具,尤其适合需要快速搭建隔离环境进行开发的场景。
Multipass 完全指南:轻量级 Ubuntu 虚拟机管理
https://blog.uso6.com/archives/multipass-wan-quan-zhi-nan-qing-liang-ji-ubuntu-xu-ni-ji-guan-li
评论