Lima: Parallels と VMWare なしで macOS で Linux 仮想機を使うツールの紹介

2023.05.09

最初に

アノテーション メンテナンスチームの shinonome です。

Mac で Linux 環境に触れたい時、一般的な選択肢としては VPS (Cloud) か Parallels や VMWare あたりが普通思い浮かぶのではないかと思います。

今回の記事は掲題通り、macOS で Linux 仮想機を使う簡易ツールのご紹介になります、
ローカルの端末内で完結できる一般的な Type 2 Hypervisor (Parallels/VMWare) より数段軽いツールです。

Lima: Linux virtual machines

Lima は今回の主役です。先に関連リンクをここに貼ります。

Lima (Linux virtual machines) は macOS の中で、好きな Linux distribution を仮想機として立ち上げることができます。
このツールは、インストールしてから、limactl start コマンド一つですぐ VM を立ち上げられます、とても便利です。
Lima は、仮想機とのファイル交換 (mount 経由) やポート転送の機能を備えています。※機能は Windows 側の WSL2 に似ています。

早速入れて使ってみましょう。

インストール

Lima は Homebrew で簡単にインストールできます。
※依存の QEMU もインストールされます。

brew install lima

VM 設定ファイル

用意したテンプレートをそのまま使うことができるし、自分で設定ファイルを組んで使うこともできます。

以下コマンドで、Lima が事前に用意したテンプレートを確認できます。

limactl start --list-templates

もしくは、こちらのパスで直接サンプルファイルを覗くこともできます。

ls /usr/local/share/doc/lima/examples/

設定ファイルの書き方(マニュアル)は、default.yml で参照可能です。各セクションの説明が詳細に記載されています。

VM 立ち上げ

新規作成と既存 VM 起動は同一コマンドです。

limactl start

特に指定しなければ、サンプルの default.yml が使われ、Ubuntu を OS としている、名前が「default」の VM が作成されます。
※最初に出てきたのは対話式の選択肢です、キーボードの矢印キー↑↓で選択できます。

VM 名やテンプレート・自作設定ファイル指定もできますので、詳細な使い方は limactl start --help で確認できます。
※サンプルテンプレートの中に使っている OS イメージは基本 Cloud 向けのものになり、軽量の、インストール作業なしのディスクイメージです。(img / qcow2 / etc.)
※インストール式の ISO を使って OS を準備することは対応していないようです。工夫すれば実現可能なようですが、結構手間がかかります。

作成・起動したら、limactl list で VM 情報が見れます。
※ディスクイメージや設定ファイル及びコンソール (Serial) 出力等は DIR に記載した ~/.lima/xxx に格納していますので、必要であれば確認してください。

コンソールアクセスが必要な場合は、以下内容を ~/.lima/xxx/lima.yaml に追記して再起動してください。

video:
  display: default

VM アクセス

アクセスは基本 ssh 経由で、以下コマンドでできます。(デフォルトの接続先は VM 名 default です。)

lima

※このコマンドは limactl shell default と同等です、詳細は lima --help で確認してください。
ssh コマンドでの接続も可能です、 https://github.com/lima-vm/lima/#limactl-show-ssh を参照してください。
ssh.configv0.15.0 から自動作成になります。
ssh コマンドを使いたいなら、.ssh/config に以下を追記すると便利だと思います。
※当然 ssh 以外にコンソールでのアクセスもできますよ。

# Lima v0.15.0 ~
Include ~/.lima/*/ssh.config

接続できたら、OS を確認しましょう。

uname -o

GNU/Linux

最後に

今回は、macOS 上で簡易の Linux VM を立ち上げれるツール Lima を紹介しました。
macOS で軽量な Linux VM をすぐ使いたい時、是非試してみてください。

本ブログ、お役に立てると光栄です。

おまけに

  • Lima の裏で実は QEMU を使っています。
    • macOS 上の QEMU の加速器 (Accelerator) は Apple の Hypervisor.Framework (hvf) を使っています。
    • Hypervisor.Framework の登場は OS X Yosemite (10.10) (2014 年) です。
  • Lima は QEMU 以外に、Apple の Virtualization.Framework も対応していますが、現在は実験段階 (Experimental) です。(vmType: "vz", Default: vmType: "qemu")
    • Virtualization.Framework の登場は macOS Big Sur (11.0) (2020 年) です。
  • macOS Big Sur (11.0) からカーネル拡張機能(kext)を廃止することによって、Parallels は Parallels Desktop 16 (2020 年) から、VMWare は VMWare Fusion 12 (2020 年) から、macOS Big Sur 以降で、Hypervisor.Framework を使うようにしました。
    • Parallels は Parallels Desktop 12 (2016 年) から Hypervisor.Framework を対応し始めています、ユーザーは自社のか Hypervisor.Framework のかを選択することができます。
    • VMWare は VMWare Fusion 12 から初めて Hypervisor.Framework に対応し始めています。

アノテーション株式会社について

アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。