标签: Multipass

  • Multipass使用cloud-init 启动 Ubuntu 24.04 虚拟机

    使用 Multipass 启动一台基于 Ubuntu 24.04 的虚拟机,并通过 cloud-init.yaml 实现自动化配置。配置内容包括创建用户、禁用 root 和密码登录、启用 SSH 公钥认证,确保系统安全且易于远程管理。只需一条命令即可快速部署完成,非常适合开发和测试场景使用。

    1. 创建 cloud-config.yaml

    生成 SSH 密钥对(或准备好现有公钥):

    ssh-keygen -t ed25519 -C "liqixin@vm"

    公钥会保存在 ~/.ssh/id_ed25519.pub 中。

    创建一个名为 cloud-config.yaml 的文件:

    # cloud-config.yaml
    users:
      - name: liqixin
    sudo: ALL=(ALL) NOPASSWD:ALL
    shell: /bin/bash
    lock_passwd: true
    ssh_authorized_keys:
      - ssh-ed25519 AAAA liqixin@vm
    
    disable_root: true
    ssh_pwauth: false

    请把 ssh-ed25519 AAAA... 替换成你自己的公钥内容(~/.ssh/id_ed25519.pub 里的内容)。

    2. 启动 VM

    在 cloud-config 文件所在目录,运行以下命令:

    multipass launch 24.04 \
      --name liqixin-vm \
      --cpus 1 \
      --memory 1G \
      --disk 10G \
      --cloud-init cloud-config.yaml

    这会:

    • 下载 Ubuntu 24.04(首次执行会下载镜像)
    • 创建名为 liqixin-vm 的虚拟机
    • 启动时自动创建 liqixin 用户,并配置好免密 SSH 登录

    3. 通过 SSH 登录

    Multipass 默认会自动配置主机与 VM 的网络连接,你可以用以下方式连接:

    multipass info liqixin-vm

    输出中找到 IP 地址,例如:

    liqixin-vm:
      ...
      IPv4: 192.168.64.3

    然后用你的私钥直接 SSH 登录:

    ssh -i ~/.ssh/id_ed25519 [email protected]

    首次连接需要确认 fingerprint,之后就可以直接连了。

    4. 清理 / 删除 VM

    如果以后不需要这个 VM,可以这样清理:

    multipass delete liqixin-vm
    multipass purge
  • macOS 卸载Multipass虚拟机

    Multipass 虽然非常轻量,启动虚拟机的速度也很快,但由于不支持导入和导出虚拟机,对于有这类需求的用户来说并不适用。因此我决定卸载它。

    找了很久才找到卸载方法,最后在 GitHub 的 issues 区才找到正确方式,顺利卸载成功!以下是操作步骤:

    卸载步骤

    1. 打开 Terminal
    2. 执行以下命令开始卸载:
    sudo sh "/Library/Application Support/com.canonical.multipass/uninstall.sh"

    输入密码后等待卸载完成即可。