/home/amgsk

Arch LinuxでClaude DesktopのCoworkを動かす

· amgsk
要約
  • Claude DesktopのCoworkが「仮想化が完全にセットアップされていません」と表示されて使えない問題をArch Linuxで解決した
  • QEMU・OVMF・virtiofsdはインストール済みでも、CoworkはDebian系の固定パスしか探さないため検出に失敗する
  • シンボリックリンクを3本張るだけで解決できる

TOC


cowork setup error

Linux向けのClaude Desktopが公開された。 今まではAUR版を使用していたけど、公式に乗り換えた。

しかし、OfficialのClaude Desktopでは、Cowork(セキュアなローカルVM上でClaudeが作業する機能)が有効化とならず、 「仮想化が完全にセットアップされていません。Coworkには QEMU が必要です。‘sudo apt install qemu-system-x86 ovmf virtiofsd’ でインストールしてから、Claude を再起動してください」 という警告が表示されて使えなかった。

QEMUはとっくにインストール済みなのに。

調べたところ原因はCoworkの検出ロジックがDebian系ディストリビューションの固定パスしか見ていないことだった。 Arch Linuxではシンボリックリンクを3本張るだけで解決できたので、その手順をまとめる。

環境

  • OS: Arch Linux (kernel 7.0.14-zen1-1-zen)
  • Claude Desktop: claude-desktop-official-bin 1.17377.0-1 (AUR)
  • qemu-full 11.0.2-1 / edk2-ovmf 202605-1 / virtiofsd 1.13.3-1

原因: CoworkはDebianの固定パスしか探さない

Claude Desktopのapp.asar内にあるCoworkの仮想化チェックを読むと、以下の3条件をすべて満たす必要がある(1つでも欠けると冒頭の警告になる)。

チェック対象Coworkが探すパスArch Linuxでの実際の場所
QEMU本体PATH上のqemu-system-x86_64/usr/bin/qemu-system-x86_64
OVMF
(UEFIファームウェア)
/usr/share/OVMF/OVMF_CODE_4M.fdまたはOVMF_CODE.fd/usr/share/edk2/x64/OVMF_CODE.4m.fd
virtiofsd/usr/libexec/virtiofsdまたは/usr/bin/virtiofsd/usr/lib/virtiofsd

QEMU本体はPATHから探すので問題ないが、OVMFとvirtiofsdはDebian/Ubuntuが配置するパスがハードコードされている。

  • Archのedk2-ovmfは4MBフラッシュイメージをOVMF_CODE.4m.fd(ドット・小文字)という名前で/usr/share/edk2/x64/に置くのに対し、DebianはOVMF_CODE_4M.fd(アンダースコア・大文字)で/usr/share/OVMF/に置く。この命名差だけで検出に失敗する
  • Claude Desktopはvirtiofsdを同梱しているが、同梱版へのフォールバックが働くのはOSがUbuntu 22.xと判定されたときだけ。それ以外のディストリビューションではシステムのvirtiofsdが上記2パスに存在する必要がある

エラーメッセージがsudo apt installを案内しているのも、チェック自体がDebian前提だからである。

このほかに/dev/kvm/dev/vhost-vsockの読み書き権限もチェックされるが、 ユーザーがkvmグループに所属していてvhost_vsockモジュールがロードされていれば通る(後述)。

解決: シンボリックリンクを3本張る

必要なパッケージがインストール済みであることを確認する。

1
pacman -Q qemu-full edk2-ovmf virtiofsd

未インストールなら入れておく(qemu-fullの代わりにqemu-baseでもよい)。

1
sudo pacman -S qemu-full edk2-ovmf virtiofsd

あとはCoworkが探すパスに向けてシンボリックリンクを張るだけ。

1
2
3
sudo ln -s /usr/share/edk2/x64/OVMF_CODE.4m.fd /usr/share/OVMF/OVMF_CODE_4M.fd
sudo ln -s /usr/share/edk2/x64/OVMF_VARS.4m.fd /usr/share/OVMF/OVMF_VARS_4M.fd
sudo ln -s /usr/lib/virtiofsd /usr/bin/virtiofsd

OVMF_VARSのリンクは起動時チェックの対象外だが、CoworkはVM起動時にOVMF_CODEのパス文字列をOVMF_VARSに置換してNVRAMテンプレートとして使うため、 張っておかないと「警告は消えたのにVMが起動しない」という分かりにくい状態になる。

最後にClaude Desktopを完全に終了して再起動する(トレイ常駐も含めてquitする)。 チェック結果は起動中キャッシュされるため、再起動しないと警告が消えない。

KVM権限まわりの補足

symlinkを張っても解決しない場合は、KVMの権限を確認する。

1
2
ls -la /dev/kvm /dev/vhost-vsock
groups
  • /dev/kvmが存在しない場合はBIOS/UEFIで仮想化支援機能(Intel VT-x / AMD-V)を有効にする
  • Permission deniedになる場合はsudo usermod -aG kvm $USERでグループに追加して再ログインする
  • /dev/vhost-vsockが存在しない場合はsudo modprobe vhost_vsockでモジュールをロードする

注意点

作成したシンボリックリンクはpacmanの管理外なので、edk2-ovmfやvirtiofsdのパッケージ更新でファイル配置が変わるとリンク切れして同じ警告が再発する可能性がある。 再発したらリンクを張り直せばよい。

また、Claude Desktop側のアップデートでArchのパスが正式にサポートされれば、この対処自体が不要になるはずである。

EOF