內容目錄

ref: Multipass installation guide for ARM PC(Mac/RaspberryPi)

為什麼要 multipass?

macOS本身是 posix 相容的作業系統,terminal的 shell 操作也是繼承自 BSD Unix 系統,brew 如同 debian 的 apt,那麼,為什麼還要 multipass?
由於現在許多的開發環境都需要在 ubuntu下,在大部分的情況下,輕量級的 multipass 就足以應付,不需要再去安裝 VirtualBox /QEMU/ Parallels等大型的虛擬機環境來運行。需要桌面環境的話在虛擬系統下裝個 RDP服務,就能工作的很好,對系統的佔用也沒有大型虛擬機那麼多。
Apple現在的Mac的CPU都改用 ARM環境了,ubuntu也已支持。暫時可以用ARM的ubuntu版本,不必損耗CPU性能虛擬運行 x86環境。

前置作業:安裝 Homebrew

  1. 下載安裝 script:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. 設置 brew 的 PATH:
    (echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/cyue/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
  3. 安裝個檢測工具試試是否OK:
    brew install btop

用 homebrew 安裝 Multipass

  1. homebrew已提供 multipass套件,直接 install:

    brew install --cask multipass
  2. 可选的安装:(图形界面)

    brew install --cask microsoft-remote-desktop

主要配置

  1. 用 multipass launch 建立一個名叫 u22的,12GB RAM,80G 空間,8 核的 ubuntu 22.04 (別名 jammy)的實例:
    multipass launch -n u22 -m 12G -d 80G -c 8 22.04
    • multipass 命令中,若沒指定實例名 -n XXX, 默認用 ‘primary’ 實例。
    • 22.04 可以用 ubuntu的別名 “jammy” 取代。
    • multipass 提供了多個版本/用途的輕量虛擬機環境,可以用 “multipass list” 查看目前提供了哪些。

multipass 命令簡單入門:

在 host 的終端呼叫 實例,執行其中命令。

  • list : 查看已創建的實例。

    multipass list
  • shell (或 sh): 登入實例的 shell 終端,與一般終端同。輸入 ‘exit’ 退出實例終端。

    multipass shell u22
  • exec host -- : 在實例 (u22) 主機運行 (--之後的) 命令,
    uname -a

    multipass exec u22 -- uname -a

    我們可以在 ~/zprofile中添加 x22 alias 來呼叫 u22 執行任務:

echo 'alias x22="multipass exec u22 --"' >> .zprofile

這樣 在一般指令前加上 ‘u22′ 就可以指定到u22實例中運行。

  • launch : 建立並啟動實例。–help看所有的選項。

    multipass launch -n u22 -m 12G -d 80G -c 8 22.04

–name, -n, 指出虚拟机实例的名称, 默认为primary

–memory, -m, 虚拟机所用的物理内存, 默认为1GB

–disk, -d, 磁盘大小, 默认为5GB

–cpus, -c, 使用的CPU核数, 默认为1

用 multipass find 可以找出所有支持的 ubuntu 版本

Image Aliases Version Description
18.04 bionic 20220523 Ubuntu 18.04 LTS
20.04 focal,lts 20220505 Ubuntu 20.04 LTS
21.10 impish 20220309 Ubuntu 21.10
22.04 jammy 20220506 Ubuntu 22.04 LTS
anbox-cloud-appliance latest Anbox Cloud Appliance
charm-dev latest A development and testing environment for charmers
docker latest A Docker environment with Portainer and related tools
minikube latest minikube is local Kubernetes

微調虛擬機

ref: https://multipass.run/docs/modify-an-instance

可以調整虛擬機資源配置。注意 disk size 只允許調高。

multipass stop u22
multipass set local.u22.cpus=8
multipass set local.u22.disk=130G
multipass set local.u22.memory=12G

圖形界面 ( with RDP)

部分開發或應用需要使用實例的 GUI, 為此我們為實例安裝 XRDP遠端桌面服務, host端裝微軟 RDP client連接。

client (u22) 終端執行:

  • 為 account (ubuntu)設置密碼

    sudo passwd ubuntu
  • 安裝 XRDP桌面服務

    sudo apt update
    sudo apt install ubuntu-desktop xrdp

host (macOS) 終端執行:

  • 安裝 微軟的 RDP client app
    # install RDP client app on macOS through brew
    brew install microsoft-remote-desktop
  • 查看虛擬機IP,此例是 192.168.64.4
    # view the client IP
    multipass info u22 | grep IPv4
    IPv4:           192.168.64.4

    微軟 RDP 連接的主機IP設置成 192.168.64.4, 加上用戶密碼名後,即可連上 u22的 GUI。

最後修改日期: 2024 年 8 月 21 日

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。