0
2

Macの仮想化はTartが良かった

Posted at

最初に

Apple Silicon Mac で仮想マシンを使うときといえば、GUI なら UTM や VMWare Fusion、VirtualBuddy, Parallels Desktop が有名です。CUI なら Multipass や OrbStack などがあげられるでしょう。どれも良いものですが、個人的には GUI のアプリケーションはターミナルから起動するのがやや面倒で、CUI のものは GUI のセットアップが面倒でした。

そこで、今回紹介するのが、Tart です。

cirruslabs/tart は Apple Silicon 上で macOS および Linux 仮想マシンを構築、実行、管理するための仮想化ツールセットです。Apple Virtualization Framework によって高速な仮想マシンを利用することができます。(Toolset to build, run and manage macOS and Linux VMs - Tart Virtualization

Tartはcli から仮想マシンの管理を行いますが、仮想マシンを起動すると、GUI が立ち上がります。

調べてみましたが何も分かりませんでした!としてしまいそうなほどに情報がありませんでした。

Tart の存在を教えてくださった豆蔵デベロッパーサイト様に、ここで謝意を述べさせていただきます。 Tart で macOS / Linux の仮想マシンを使う | 豆蔵デベロッパーサイト

*Cirrus Runners では仮想化技術として Tart を用いて CI ランナーを提供していますが、今回は扱いません。

インストール

Homebrew からインストールできます。

brew install cirruslabs/cli/tart

インストールするときは、homebrew/core/tart ではなく、cirruslabs/cli/tart をインストールするようにしましょう。

homebrew-core のほうは 2024/08/14 現在、0.38.0 からアップデートされていません。最新バージョンは 2.17.0≤ となります。

仮想マシンを実行する

ほとんどQuick Start - Tart Virtualization に記載されている通りです。

公式イメージから

macOS

要件は macOS 13.0 以上となります。

Tart がインストール済みのマシンで、GitHub コンテナレジストリからプレーンな macOS Sequoia 15.1 beta2 の公式イメージを取得します。

tart clone ghcr.io/cirruslabs/macos-sequoia-vanilla:15.1-beta-2 sequoia

Vanilla だとサイズはおよそ 25GB 以内です。

イメージのダウンロードが終了すると、マシンの起動が可能になります。

list で確認できます。

$ tart list
Source Name    Disk Size SizeOnDisk State
local  sequoia 50   22   22         stopped

runでVMが実行できます。

tart run sequoia

実行すると新しいウィンドウが開き、仮想マシンの macOS が起動します。かなり起動が早いです。

取得可能な公式イメージはfull list of imageに掲載されています。

ざっくりとした特徴としては、以下の通りです。

  • macos-{sequoia, sonoma, …}-vanilla
    • プレーンな macOS イメージ
  • macos-{sequoia, sonoma, …}-base
    • homebrew がインストール済みの macOS イメージ
  • macos-{sequoia, sonoma, …}-xcode
    • 指定されたバージョンの Xcode と Fullter がインストールされた macOS イメージ
  • macos-runner
    • Xcode が最新バージョンまで 3 つとバージョン管理用の Xcodes ツールがインストールされた macOS イメージ

Linux Distro

tart clone ghcr.io/cirruslabs/ubuntu:latest ubuntu

デスクトップ環境がないので、早いです。 0.9GB だけ

tart run ubuntu

起動するとこんな感じ。

こちらも取得可能な公式イメージはfull list of imagesに掲載されています。
Ubuntu, Debian, Fedora があります。

ログインなど

公式イメージはすべて、

user   : admin
passwd : admin

でログイン可能です。

SSH 接続

tart ip <name>

で、VM の IP アドレスを取得できます。
公式イメージは SSH 接続ができる状態ですので、

ssh admin@$(tart ip <name>)

で、接続可能です。

VM のカスタマイズ

あらかた導入ができたら、仮想マシンのカスタマイズを確認しておきましょう。
ストレージサイズは公式イメージはLinuxだと20GBなので、変更の必要性が高そうです。

tart get <name>

で現在の構成を確認することができ、

tart set <name> [ --option ]

で仮想マシンをカスタマイズすることができます。

設定項目は以下の通りです。

Option Description
cpu CPU のコア数
memory メモリサイズ (メガバイト単位)
display 表示解像度。1200x800 で示す
random-mac 新しいランダム MAC アドレスを作成
random-serial 【macOS のみ】 新しいシリアル番号を生成する
disk path のディスクを VM に接続する
disk-size VM ディスクのサイズを指定したサイズ (GB) に変更

tart-cliの注釈
ディスクのサイズ変更は、ほとんどのクラウド対応 Linux ディストリビューションで使用でき、それ以外のディストロでもgrowpartresize2fsを実行することで機能しますが、macOS の場合は回復パーティションを削除する必要があります。
詳細については、Tart のPackerプラグインのソースコードを参照してください。

tart set ubuntu --disk-size 50 --memory 16384

これで作成済みのUbuntuマシンのディスクサイズを50GBに、メモリを16384MBにすることができます。

ローカルで仮想マシンを構成する

Docker のような感覚で、用意されているOCI互換イメージを利用することもできるのですが、やはり、自分で一から作成したいときもあります。

ローカルのイメージから作成

【macOS】 IPSW ファイル

$ tart create --from-ipsw <location> <name>

これだけです。IPSWから直接OSが作成できるのはうれしいですね。VMWare FusionなんかはISOイメージを作成しないといけなかったので。
パスは、ローカルのファイルパスだけでなく、URL も対応していますので、公式サイトのダウンロードページから直接リンクを渡すことが可能です。

ちなみに、

tart create --from-ipsw=latest <name>

とした場合、対応する IPSW ファイルを自動的に取得してイメージを作成します。
この使い勝手はVirtualBuddyと似ているといえそうです。

インストール後のセットアップ

VM の初回起動後、macOS のインストールプロセスを手動で実行する必要があります。Managing Virtual Machine - Tart Virtualization によると、いくつかするべきことがあるらしいです。

  1. 自動ログインを有効にする。 Users & Groups -> Login Options -> Automatic login
  2. SSH を許可する Sharing -> Remote Login
  3. ロック画面を無効にする。 Preferences -> Lock Screen -> disable "Require Password" after 5
  4. スクリーンセーバを無効にする
  5. ターミナルで sudo visudo を実行し、 %admin ALL=(ALL) ALLadmin ALL=(ALL) NOPASSWD: ALL に変更し、パスワードなしで sudo を許可する。

【Linux】 ISO イメージ

Linux の場合は少し手順が変わります。

tart create --linux <name>

で、Linux VM を作成し


tart run --disk <path/to/os.iso> <name>

でインストールディスクをマウントした状態で起動すると、インストール画面が現れます。

そのあとは、必要に応じてVMのカスタマイズをしてください。

SSHの接続はできるようにしておきましょう。

まとめ

Tart は Apple Silicon Mac 上で高速な仮想マシン環境を提供します。公式サイトによると、GeekBench 5.5.0ではVirtualMacではホストの95%程度のスコアをたたき出しているそうです。

CUI での管理と GUI での操作を両立させた使いやすいツールとなっていますので、手軽にデスクトップ環境を使いたい場合は活用してみてください。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2