记笔记:用 Multipass 在 Windows 上创建 Ubuntu 虚拟机

由于之前升级失败,导致 Hyper-V 里的 Ubuntu 直接挂掉了。

幸亏是开发机,挂掉就挂掉吧。

于是准备试试 Multipass:https://multipass.run/

这是一个 Ubuntu 自己开发的虚拟机,比用 Hyper-V 从零开始安装系统要简单许多。(文档)

安装 Multipass

需要 Hyper-V,然后直接下载安装即可。

创建虚拟机

使用 Windows 的心终端操作:

启动一台 4 核CPU、8G内存、60G 硬盘的虚拟机:

multipass launch -c 4 -m 8G -d 60G

将虚拟机设置为 primary instance(主实例)

主要是为了操作方便:

multipass set client.primary-name=<custom_name>

也可以在创建的时候直接起名 multipass launch --name primary 即可默认主实例

设置局域网访问

在 Hyper-V 创建虚拟交换机

默认的虚拟机只能在 Windows 上访问,比较麻烦。如果需要在局域网内访问,需要先在 Hyper-V 里创建一个可以访问外部网络的虚拟交换机

并在 Hyper-V 里的 multipass 虚拟机中添加该交换机

设置虚拟机新网卡

通过 Windows 里的终端进入虚拟机:

multipass.exe shell

如未设置 primary 则需要使用 multipass shell <custom_name> 来进入指定实例

编辑 /etc/netplan/50-cloud-init.yaml 文件:

network:
    ethernets:
        eth0:
            dhcp4: true
            dhcp6: true
            match:
                macaddress: 00:00:00:00:00:00
            set-name: eth0

## 已上为默认,不需要修改,可能有不同
## 以下为新添加,根据实际情况
        eth1:
            addresses: [192.168.2.55/24]
            routes:
              - to: default
                via: 192.168.2.1
            nameservers:
              addresses: [192.168.2.1]

## 以下为默认
    version: 2

保存后使用 netplan apply 使网络生效。此时就可以通过局域网 ping 通 IP 了,比如上面的 192.168.2.55,或使用 ipconfig 查看到网络信息了。

设置私钥

别忘记设置你的私钥,以便在局域网中访问。

删除实例

先停止:
multipass stop name

再删除:
multipass delete name

然后清理彻底删除:

multipass purge name


未完待续。

第一步失败

❯ scoop install main/multipass
Installing 'multipass' (1.13.1) [64bit] from 'main' bucket
multipass-1.13.1+win-win64.exe (28.9 MB) [==============================================] 100%
Checking hash of multipass-1.13.1+win-win64.exe ... ok.
Extracting dl.7z ... done.
Running pre_install script...
Linking ~\scoop\apps\multipass\current => ~\scoop\apps\multipass\1.13.1
Creating shim for 'multipass'.
Creating shim for 'multipassd'.
Creating shortcut for Multipass (multipass.gui.exe)
'multipass' (1.13.1) was installed successfully!
Notes
-----
Select hypervisor:
- 'multipass set local.driver=hyperv(default)|virtualbox'
- Enable 'Hyper-V' or install 'Oracle VM VirtualBox' manually.
Daemon Management:
- See 'multipassd --help'

Official documentation: https://multipass.run/docs
❯ multipass launch -c 4 -m 8G -d 60G
launch failed: cannot connect to the multipass socket

重启试试。

一直没懂,这个 Multipass 也好, podman 也罢,跟 docker 有什么区别吗?感觉好像都差不多 :rofl:

重复造的轮子嘛。不过有些适用场景不太一样。

好吧
之前基本就用 docker ,不过自从 debian 12 我安装 docker 之后再开启热点就无法共享网络给手机用了,直接就弃用 docker ,不折腾了 :joy:

还能这样么…不过我没用过 desktop 版本的 Linux 不太了解

debian 11 的时候没这个问题,我升级到 debian 12 之后就这鬼样子了,一开始还以为是我网卡或网络有问题,折腾了好几天,结果我试着一个一个卸载软件,发现只要安装 docker 就无法共享网络,卸载了就又正常了。。。
desktop 版本的 debian ,我最主要是图他干净、没广告吧,反正我主要用的软件, windows 和 linux 平台基本都有,也就只有 microsoft office 这个没办法,就只能勉强用 wps 做下位替代吧,虽然体验不咋地,但勉强能用