关键字 使用multipass用做开发机器 使用multipass用做开发机器代替windows
先说结论:建议使用virtualbox来替代multipass。 at 20250120
警告:我的电脑是联想小新pro14,去控制面板中查看hypver-v开启的,又执行"Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL"并重启后电脑蓝屏,还好能进入安全模式,在安全模式打开cmd执行bcdedit /set hypervisorlaunchtype off后解决了蓝屏问题。
但执行multipass launch创建虚拟机时就报错,说让重启电脑,重启后还是报同样的错,就去multipass的数据目录中看到了multipassd.conf,将里面的local.driver=hyperv 修改成了local.driver=virtualbox(参考官方文档),并重启multipass服务,就可以了。
但还是建议使用virtualbox来替代multipass,因为不知道会有什么奇葩问题,还是低耦合起来比较好。
official site: Multipass orchestrates virtual Ubuntu instances
安装时选virtualbox。
安装完成后打开命令行输入multipass
# 查看Ubuntu镜像
multipass find
# 查看启动的参数
multipass help launch
# 启动一个虚拟机,2c2G 30G,系统是ubuntu22.04 使用桥接网络 配置目录映射
multipass launch -n vm-dev -c 2 -m 2G -d 30G --bridged --mount d:/your/local/path:/hello 22.04
# 进入虚拟机
multipass shell 虚拟机名字
# 外部操作虚拟机
multipass exec 虚拟机名字 命令
# 虚拟机修改密码(默认没有密码,进入虚拟机后修改)
sudo passwd ubuntu
sudo passwd root
# 传输文件
multipass transfer 主机文件 容器名:容器目录
multipass transfer hello.txt vm01:/home/ubuntu/
# 启动实例
multipass start vm01
# 停止实例
multipass stop vm01
# 删除实例(删除后,还会存在)
multipass delete vm01
# 释放实例(彻底删除)
multipass purge vm01
# 创建SNAPSHOT
multipass help snapshot
创建快照只需一条简单的命令:multipass snapshot <instance-name> <snapshot-name>。恢复快照也同样简单,使用multipass restore <instance-name> <snapshot-name>即可。
我的目前最佳实践
用户名使用ubuntu,密码可以简单些123456。
将home目录同步到物理机中。
# my develop vm
# <name> 就是网口的名称 比如 以太网,但是最好重命名为英文,比如lan1
# multipass set local.bridged-network=<name>
multipass set local.bridged-network=wlan
# 启用文件夹映射 https://canonical.com/multipass/docs/privileged-mounts
multipass set local.privileged-mounts=on
# 启动一个虚拟机实例(无桌面)
multipass launch -n vm-dev -c 4 -m 8G -d 40G --bridged --mount d:/ws/Multipass-vm-dev-ununtu-home:/home/ubuntu/workspace 24.10
# 如果上步映射失败,就执行这个
multipass mount d:/ws/Multipass-vm-dev-ununtu-home vm-dev:/home/ubuntu/workspace
# 修改密码,输入两次123456
sudo passwd ubuntu
# 安装桌面程序
sudo apt-get update
sudo apt-get install ubuntu-desktop xrdp -y
调整multipass的数据目录
如果已经安装了multipass,需要更改 数据目录,则按照下面步骤进行:
以管理身份运行powershell,输入命令Stop-Service Multipass
将mutipass 原来的数据存储目录(如果是默认的目录,Windows下为:C:\ProgramData\Multipass )中的内容复制到新的目录(D:\ws\Multipass-Data)下
以管理身份运行powershell,输入命令:Set-ItemProperty -Path "HKLM:System\CurrentControlSet\Control\Session Manager\Environment" -Name MULTIPASS_STORAGE -Value "D:\ws\Multipass-Data"
以管理身份运行powershell,输入命令以重启服务Start-Service Multipass
最后编辑:admin 更新时间:2025-09-19 10:08