安装Multipass
Multipass是 Canonical 出的轻量虚拟机管理工具,可以在命令行里快速拉起 Ubuntu 虚拟机,不用像 VMware 那样手动挂镜像装系统,一条命令就能开出一台干净的环境。这里记录一下安装和平时常用的命令。
Ubuntu 上直接用 snap 安装:
snap install multipass
安装完确认一下版本:
multipass version
能正常输出multipass和multipassd两个版本号就说明装好了。
查找可用镜像
创建虚拟机之前可以先看看有哪些镜像可以用:
multipass find
会列出可用的 Ubuntu 版本,比如22.04、24.04,还有对应的别名(如jammy、noble、lts)。创建的时候写版本号或者别名都可以。
创建虚拟机
multipass launch 22.04 -n codeserver -c 8 -m 8G -d 100G
参数含义:
22.04是镜像版本,不写的话默认用最新的 LTS-n codeserver指定虚拟机名字,后面所有操作都靠这个名字-c 8分配 8 核 CPU-m 8G分配 8G 内存-d 100G磁盘 100G
第一次创建会先下载镜像,之后再开新机器就很快了。需要注意磁盘和内存创建后再调整比较麻烦,建议一开始就按需求给够。这里的磁盘是按需占用的,写 100G 不代表立刻占掉宿主机 100G 空间。
查看和进入虚拟机
列出所有虚拟机,可以看到名字、状态和 IP:
multipass list
查看某台机器的详细信息,包括 CPU、内存、磁盘用量:
multipass info codeserver
进入虚拟机的 shell:
multipass shell codeserver
进去之后默认是ubuntu用户,有免密 sudo 权限。退出直接exit就回到宿主机了。
不进 shell 直接在虚拟机里执行命令也可以:
multipass exec codeserver -- ls -la
--后面接要执行的命令,适合写脚本的时候用。
启动、停止、重启
multipass stop codeserver
multipass start codeserver
multipass restart codeserver
不用的时候 stop 掉可以把内存释放出来,数据不会丢,下次 start 接着用。还有一个suspend是挂起,恢复比冷启动快一些:
multipass suspend codeserver
宿主机和虚拟机之间传文件
单个文件用transfer:
multipass transfer ./test.txt codeserver:/home/ubuntu/test.txt
multipass transfer codeserver:/home/ubuntu/test.txt ./test.txt
如果要长期共享目录,用mount把宿主机目录挂进去更方便:
multipass mount /opt/project codeserver:/home/ubuntu/project
取消挂载:
multipass umount codeserver:/home/ubuntu/project
删除虚拟机
multipass delete codeserver
需要注意delete只是把虚拟机标记为已删除,multipass list里还能看到,状态是Deleted,这时候还可以用recover恢复:
multipass recover codeserver
确定不要了就执行清理,磁盘空间才会真正释放:
multipass purge
purge之后就找不回来了,执行前最好先list确认一下删除列表里没有还想留的机器。
其他配置
Multipass 本身有一些全局配置,用get查看、set修改。比如后端虚拟化驱动,Linux 上默认是 QEMU,也可以换成 LXD:
multipass get local.driver
multipass set local.driver=lxd
所有可配置的键可以列出来看:
multipass get --keys