Apple Silicon 版の Mac を使っていても、依然として成果物をデプロイする先は ISA が x86-64 (amd64) のマシンであることが多い。 となると、どうしても x86-64 の環境を使って作業をしたい場面が出てくる。 もちろん、IaaS を利用してリモートにマシンを立ち上げれば良いんだけど、簡単な検証なら手元で手軽に済ませたい。 今回は、そんなニーズを埋めてくれるかもしれない Lima を使ってみる。
Lima を使うと、Apple Silicon 版の Mac 上で ISA が x86-64 の Linux 仮想マシンを手軽に立ち上げることができる 1。 ただし、バックエンドは QEMU のソフトウェアエミュレーション (qemu-system-x86_64) なので、ネイティブな環境に比べるとパフォーマンスは大きく劣る。
使った環境は次のとおり。
$ sw_vers ProductName: macOS ProductVersion: 12.2.1 BuildVersion: 21D62 $ uname -srm Darwin 21.3.0 arm64 $ lima --version limactl version 0.8.3
もくじ
下準備
あらかじめ、Homebrew で Lima をインストールする。
$ brew install lima
インストールすると limactl
コマンドが使えるようになる。
$ limactl --version limactl version 0.8.3
仮想マシンを立ち上げる
Lima は YAML 形式の設定ファイルを元に仮想マシンを作成する。 以下のサンプルでは ISA が x86-64 で、ディストリビューションが Ubuntu 20.04 LTS の仮想マシンを定義している。
$ cat << 'EOF' > focal-amd64.yaml arch: "x86_64" images: - location: "https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img" arch: "x86_64" EOF
設定ファイルができたら limactl validate
コマンドで形式が正しいかチェックしておこう。
$ limactl validate focal-amd64.yaml INFO[0000] "focal-amd64.yaml": OK
上記の設定ファイルを元に limactl start
コマンドで仮想マシンを起動する。
--tty=false
オプションは、つけない場合に設定ファイルをエディタで編集した上で起動するようになる。
$ limactl start --tty=false focal-amd64.yaml
上記を実行すると、初回はイメージファイルのダウンロードや仮想マシンの作成とセットアップが走る。 環境にもよるけど、この作業には数分かかるので気長に待つ。
ちなみに設定ファイルの項目やデフォルトの値は以下を参照すると良い。
また、limactl start
コマンドで YAML ファイルではなく単純に仮想マシンの名前を指定した場合にも、上記のデフォルトの設定ファイルをベースに仮想マシンが作られる。
ここでも、--tty=false
をつけなければ、デフォルトの設定ファイルをインタラクティブに編集しながら仮想マシンが定義できる。
現在 (2022-02) のデフォルトのディストリビューションは Ubuntu 21.10 のようだ。
$ limactl start impish
仮想マシンが作成できると limactl list
コマンドに確認できるようになる。
$ limactl list NAME STATUS SSH ARCH CPUS MEMORY DISK DIR focal-amd64 Running 127.0.0.1:50191 x86_64 4 4GiB 100GiB /Users/amedama/.lima/focal-amd64
仮想マシンを操作する
仮想マシンが起動したら limactl shell
コマンドで仮想マシンにログインしてシェルが取れる。
$ limactl shell focal-amd64
ログインできたら uname -r
コマンドで仮想マシンの ISA を確認してみよう。
ちゃんと x86_64
と表示されるはず。
$ uname -m
x86_64
そして、次のとおり仮想マシンが Ubuntu 20.04 LTS であることがわかる。
$ uname -sr Linux 5.4.0-99-generic $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.3 LTS Release: 20.04 Codename: focal
Lima には他にも色々と機能があるけど、とりあえず今回はそんな感じで。
-
反対に、Intel 版の Mac 上で ISA が ARM64 の Linux 仮想マシンを立ち上げることもできる↩