CUBE SUGAR CONTAINER

技術系のこと書きます。

Lima で仮想マシンのディスプレイを表示する

Lima 1 の仮想マシンは、デフォルトではディスプレイのない Headless モードで動作する。 とはいえ、作業の都合からディスプレイが欲しくなる場面もある。 そこで、今回は Lima の仮想マシンでディスプレイを表示する方法について書く。

使った環境は次のとおり。

$ sw_vers                                           
ProductName:        macOS
ProductVersion:     14.3.1
BuildVersion:       23D60
$ uname -srm                                   
Darwin 23.3.0 arm64
$ lima --version
limactl version 0.20.1

もくじ

下準備

下準備として Lima と wget をインストールしておく。

$ brew install lima wget

続いて、仮想マシンで利用する OS のイメージファイルをダウンロードしておく。 今回は Ubuntu 22.04 LTS を使った。

$ wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-arm64.img

ディスプレイのある仮想マシンを作る

ダウンロードしたイメージファイルを使って仮想マシンを起動するために Lima の設定ファイルを用意する。 このとき video.display の項目を設定するのがポイント。 デフォルトでは none に設定されるため Headless になる。 ここを default に設定すると、システムで利用できるディスプレイの表示方法を自動で選んでくれる。

$ cat << 'EOF' > jammy.yaml
images:
- location: "jammy-server-cloudimg-arm64.img"
video:
  display: default
EOF

念のため limactl validate コマンドで、設定ファイルの記述を検証しておこう。

$ limactl validate jammy.yaml 
INFO[0000] "jammy.yaml": OK

あとは limactl start コマンドで仮想マシンを起動するだけ。

$ limactl start --tty=false jammy.yaml

すると、次のように仮想マシンのディスプレイが表示される。

Lima で起動した仮想マシンのディスプレイ

めでたしめでたし。