「VMware に Arch Linux をインストール」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
 
(パッケージ「gtkmm」をパッケージ「gtkmm3」に置換)
 
(3人の利用者による、間の10版が非表示)
1行目: 1行目:
 
[[Category:Arch の入手とインストール]]
 
[[Category:Arch の入手とインストール]]
[[Category:仮想化]]
+
[[Category:ハイパーバイザ]]
[[en:Installing Arch Linux in VMware]]
+
[[en:VMware/Installing Arch as a guest]]
[[es:Installing Arch Linux in VMware]]
+
[[es:VMware/Installing Arch as a guest]]
[[nl:Installing Arch Linux in VMware]]
+
[[nl:VMware/Installing Arch as a guest]]
[[zh-CN:Installing Arch Linux in VMware]]
+
[[zh-hans:VMware/Installing Arch as a guest]]
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|VMware}}
 
{{Related|VMware}}
{{Related4|Installing VMWare vCLI}}
+
{{Related|VMWare vCLI のインストール}}
 
{{Related articles end}}
 
{{Related articles end}}
この記事では [http://www.vmware.com/products/player/ Player (Plus)], [http://www.vmware.com/products/fusion/ Fusion], [http://www.vmware.com/products/workstation/ Workstation] などの [[VMware|VMware]] 製品での Arch Linux のインストールを扱います。
+
この記事では [https://www.vmware.com/products/player/ Player (Plus)], [https://www.vmware.com/products/fusion/ Fusion], [https://www.vmware.com/products/workstation/ Workstation] などの [[VMware]] 製品での Arch Linux のインストールを扱います。
   
 
== カーネルドライバー ==
 
== カーネルドライバー ==
16行目: 16行目:
 
*{{ic|vmw_pvscsi}} - VMware の Paravirtual SCSI (PVSCSI) HBA のドライバー。
 
*{{ic|vmw_pvscsi}} - VMware の Paravirtual SCSI (PVSCSI) HBA のドライバー。
 
*{{ic|vmw_vmci}} - Virtual Machine Communication Interface。VMCI 仮想デバイスによるホストと仮想環境のゲスト間での高速通信を有効にします。
 
*{{ic|vmw_vmci}} - Virtual Machine Communication Interface。VMCI 仮想デバイスによるホストと仮想環境のゲスト間での高速通信を有効にします。
*{{ic|vsock}} - Virtual Socket Protocol。TCP/IP ソケットプロトコルと似ていて、仮想マシンとハイパーバイザまたはホスト間での通信ができるようにします。
+
*{{ic|vsock}} - Virtual Socket Protocol。TCP/IP ソケットプロトコルと似ていて、仮想マシンとハイパーバイザまたはホスト間での通信ができるようにします。
 
*{{ic|vmw_vsock_vmci_transport}} - 仮想ソケットの VMCI 転送の実装。
 
*{{ic|vmw_vsock_vmci_transport}} - 仮想ソケットの VMCI 転送の実装。
 
*{{ic|vmwgfx}} - 3D アクセラレーションのためのドライバー。VMware SVGA2 仮想ハードウェアのための KMS 有効済み DRM ドライバーです。
 
*{{ic|vmwgfx}} - 3D アクセラレーションのためのドライバー。VMware SVGA2 仮想ハードウェアのための KMS 有効済み DRM ドライバーです。
 
*{{ic|vmxnet3}} - VMware の vmxnet3 仮想イーサネット NIC のドライバー。
 
*{{ic|vmxnet3}} - VMware の vmxnet3 仮想イーサネット NIC のドライバー。
  +
*{{ic|open-vm-tools}} 10.0 から fuse ベースの hgfs 実装が追加されており、カーネルのバージョン 4.0 からサポートされています。
   
 
==VMware Tools vs Open-VM-Tools==
 
==VMware Tools vs Open-VM-Tools==
   
2007年に、VMware は [http://kb.vmware.com/kb/340 VMware Tools] の大部分を [http://sourceforge.net/projects/open-vm-tools/ Open-VM-Tools] として LGPL でリリースしました。[http://packages.vmware.com/tools/esx/latest/repos/index.html 別途] Arch Linux 用の公式 Tools はありません。
+
2007年に、VMware は [http://kb.vmware.com/kb/340 VMware Tools] の大部分を [https://sourceforge.net/projects/open-vm-tools/ Open-VM-Tools] として LGPL でリリースしました。[http://packages.vmware.com/tools/esx/latest/repos/index.html 別途] Arch Linux 用の公式 Tools はありません。
   
 
当初は VMware Tools が、時間同期などの機能がある、ネットワークやストレージに最適のドライバを提供していました。しかし現在では、ネットワークや scsi アダプターが linux カーネルの一部になったことで、VMware Tools には追加機能や"古い" vmxnet アダプターのサポートだけが求められるようになりました。
 
当初は VMware Tools が、時間同期などの機能がある、ネットワークやストレージに最適のドライバを提供していました。しかし現在では、ネットワークや scsi アダプターが linux カーネルの一部になったことで、VMware Tools には追加機能や"古い" vmxnet アダプターのサポートだけが求められるようになりました。
  +
  +
VMware Tools と Open-VM-Tools のどちらを使う場合でも {{Pkg|xf86-video-vmware}} のインストールが必要です。
   
 
==Open-VM-Tools==
 
==Open-VM-Tools==
34行目: 37行目:
 
*{{ic|vmblock}} - ファイルシステムドライバー。ホストシステムとゲストマシン間のドラッグアンドドロップを有効にします ({{ic|vmware-vmblock-fuse}} ユーティリティが[https://www.mail-archive.com/open-vm-tools-devel@lists.sourceforge.net/msg00213.html 取って代わります])。
 
*{{ic|vmblock}} - ファイルシステムドライバー。ホストシステムとゲストマシン間のドラッグアンドドロップを有効にします ({{ic|vmware-vmblock-fuse}} ユーティリティが[https://www.mail-archive.com/open-vm-tools-devel@lists.sourceforge.net/msg00213.html 取って代わります])。
 
*{{ic|vmci}} - 仮想マシン通信インターフェイス (VMCI)、同じホストでの仮想マシン同士や仮想マシンとホスト間で高いパフォーマンスを発揮するインターフェイス。
 
*{{ic|vmci}} - 仮想マシン通信インターフェイス (VMCI)、同じホストでの仮想マシン同士や仮想マシンとホスト間で高いパフォーマンスを発揮するインターフェイス。
*{{ic|vmhgfs}} - ファイルシステムドライバー。ホストシステムと仮想マシン間のファイル・ディレクトリ共有を有効にします。
+
*{{ic|vmhgfs}} - レガシーなファイルシステムドライバー。ホストシステムと仮想マシン間のファイル・ディレクトリ共有を有効にします。
 
*{{ic|vsock}} - VMCI ソケット。
 
*{{ic|vsock}} - VMCI ソケット。
 
*{{ic|vmsync}} - 実験的なファイルシステム同期ドライバ。バックアップやスナップショットの作成時にファイルシステムの静止を有効にします。
 
*{{ic|vmsync}} - 実験的なファイルシステム同期ドライバ。バックアップやスナップショットの作成時にファイルシステムの静止を有効にします。
49行目: 52行目:
 
*{{ic|vmware-vmblock-fuse}} - FUSE でホストと仮想マシン間のドラッグ&ドロップを有効にするユーティリティ。
 
*{{ic|vmware-vmblock-fuse}} - FUSE でホストと仮想マシン間のドラッグ&ドロップを有効にするユーティリティ。
 
*{{ic|vmware-xferlogs}} - ログやデバッグ情報を仮想マシンのログファイルに記録する。
 
*{{ic|vmware-xferlogs}} - ログやデバッグ情報を仮想マシンのログファイルに記録する。
  +
* {{ic|vmhgfs-fuse}} - vmhgfs 共有フォルダをマウントするユーティリティ。
   
 
===インストール===
 
===インストール===
   
[[公式リポジトリ]]から {{Pkg|open-vm-tools}} を、[[AUR|AUR]] から {{AUR|open-vm-tools-dkms}} を[[Pacman|インストール]]してください。
+
[[公式リポジトリ]]から {{Pkg|open-vm-tools}} を、[[AUR]] から {{AUR|open-vm-tools-dkms}} を[[Pacman|インストール]]してください。
   
 
Open-VM-Tools は {{ic|/etc/arch-release}} からバージョン情報を読み取りますが、空になっています:
 
Open-VM-Tools は {{ic|/etc/arch-release}} からバージョン情報を読み取りますが、空になっています:
   
 
# cat /proc/version > /etc/arch-release
 
# cat /proc/version > /etc/arch-release
  +
  +
==== マルチユーザーターゲット ====
  +
{{ic|multi-user.target}} で起動する場合、以下の手順に従って下さい。{{ic|graphical.target}} で起動する場合は {{ic|graphical.target}} の方のセクションを見て下さい。
   
 
{{ic|vmtoolsd}} サービスを起動し、必要ならばブート時にそれを有効にしてください:
 
{{ic|vmtoolsd}} サービスを起動し、必要ならばブート時にそれを有効にしてください:
64行目: 71行目:
   
 
{{Note|1={{ic|vmtoolsd}} にはバグが存在し、サービスが正しくシャットダウンせずに60秒間ハングします。対処方法は[https://bbs.archlinux.org/viewtopic.php?pid=1206006#p1206006 フォーラム]にあります。}}
 
{{Note|1={{ic|vmtoolsd}} にはバグが存在し、サービスが正しくシャットダウンせずに60秒間ハングします。対処方法は[https://bbs.archlinux.org/viewtopic.php?pid=1206006#p1206006 フォーラム]にあります。}}
  +
  +
==== グラフィカルターゲット ====
  +
グラフィカル環境を起動する場合、以下の手順に従って VMware ツールを有効化してください。
  +
  +
{{ic|vmware-vmblock-fuse.service}} Systemd サービスを有効化してください。
  +
  +
{{AUR|open-vm-tools-dkms}} をインストールした場合は {{ic|dkms.service}} Systemd サービスを有効化してください。カーネルのアップデート後に自動的にカーネルモジュールがリコンパイルされます。
  +
  +
上記の設定で上手く動作しない場合は {{Pkg|gtkmm3}} をインストールしてみてください。
  +
  +
=== ウィンドウのリサイズで解像度を更新 ===
  +
X の中から {{ic|/usr/bin/vmware-user-suid-wrapper}} を [https://bbs.archlinux.org/viewtopic.php?pid=1081629#p1081629 起動] してください。
   
 
==公式 VMware Tools ==
 
==公式 VMware Tools ==
80行目: 99行目:
   
 
インストーラを正しく動作させるために偽の init ディレクトリを作成:
 
インストーラを正しく動作させるために偽の init ディレクトリを作成:
# for x in {0..6}; do mkdir -p /etc/init.d/rc$x.d; done
+
# for x in {0..6}; do mkdir -p /etc/init.d/rc${x}.d; done
   
 
インストーラをマウント:
 
インストーラをマウント:
95行目: 114行目:
 
* VMNEXT 3 仮想ネットワークカード
 
* VMNEXT 3 仮想ネットワークカード
 
* "Warning: This script could not find mkinitrd or update-initramfs and cannot remake the initrd file!"
 
* "Warning: This script could not find mkinitrd or update-initramfs and cannot remake the initrd file!"
  +
* Fuse components not found on the system.
  +
  +
{{ic|vmware-vmblock-fuse}} systemd サービスを有効化:
  +
# abs community/open-vm-tools
  +
# cp /var/abs/community/open-vm-tools/vmware-* /usr/lib/systemd/system
  +
# systemctl enable vmware-vmblock-fuse.service
   
 
仮想マシンを再起動:
 
仮想マシンを再起動:
110行目: 135行目:
 
{{Note|仮想マシンで Xorg を使うには、最低でも 32MB の VGA メモリが必要です。}}
 
{{Note|仮想マシンで Xorg を使うには、最低でも 32MB の VGA メモリが必要です。}}
   
依存パッケージをインストールしてください: {{Pkg|xf86-input-vmmouse}}, {{Pkg|xf86-video-vmware}}, {{Pkg|mesa-dri}}。
+
依存パッケージをインストールしてください: {{Pkg|xf86-input-vmmouse}}, {{Pkg|xf86-video-vmware}}, {{Pkg|mesa}}。
   
 
{{ic|graphical target}} で起動している場合ほとんど完了です。{{ic|/etc/xdg/autostart/vmware-user.desktop}} が実行されて、仮想マシンでする必要があることはほぼセットアップされます。
 
{{ic|graphical target}} で起動している場合ほとんど完了です。{{ic|/etc/xdg/autostart/vmware-user.desktop}} が実行されて、仮想マシンでする必要があることはほぼセットアップされます。
117行目: 142行目:
 
# systemctl enable vmtoolsd
 
# systemctl enable vmtoolsd
   
  +
さらに、ドライバーをロードする権限を与えて下さい:
== Tips and tricks ==
 
  +
{{hc|head=/etc/X11/Xwrapper.config|output=
  +
needs_root_rights=yes
  +
}}
  +
  +
== ヒントとテクニック ==
  +
  +
=== {{ic|vmhgfs-fuse}} ユーティリティによる共有フォルダ ===
  +
  +
{{Note|この機能は VMware Workstation と Fusion かつ {{ic|open-vm-tools}} v.10.x とカーネル 4.x 以上でしか使えません。}}
  +
  +
''Edit virtual machine settings > Options > Shared Folders > Always enabled'' を選択して新しい共有を作成してファイルを共有してください。
  +
  +
vmware-hgfsclient コマンドを実行することで共有フォルダが確認できます:
  +
  +
$ vmware-hgfsclient
  +
  +
確認できたらフォルダをマウントします:
  +
  +
# mkdir <shared folders root directory>
  +
# vmhgfs-fuse -o allow_other -o auto_unmount .host:/''<shared_folder>'' ''<shared folders root directory>''
  +
  +
他の {{ic|vmhgfs-fuse}} のマウントオプションは {{ic|-h}} フラグを使えば確認できます:
  +
  +
# vmhgfs-fuse -h
  +
  +
===== fstab =====
  +
  +
共有のルールを追加:
  +
  +
{{hc|/etc/fstab|
  +
.host:/''<shared_folder>'' ''/home/user1/shares'' fuse.vmhgfs-fuse defaults 0 0
  +
}}
  +
  +
共有フォルダを作成・マウント:
  +
  +
# mkdir /home/user1/shares
  +
# mount /home/user1/shares
  +
  +
===== Systemd =====
  +
  +
以下の {{ic|.service}} を作成してください:
  +
  +
{{hc|head=/etc/systemd/system/''<shared folders root directory>''-''<shared_folder>''.service|output=
  +
[Unit]
  +
Description=Load VMware shared folders
  +
Requires=vmware-vmblock-fuse.service
  +
After=vmware-vmblock-fuse.service
  +
ConditionPathExists=.host:/''<shared_folder>''
  +
ConditionVirtualization=vmware
  +
  +
[Service]
  +
Type=oneshot
  +
RemainAfterExit=yes
  +
ExecStart=
  +
ExecStart=/usr/bin/vmhgfs-fuse -o allow_other -o auto_unmount .host:/''<shared_folder>'' ''<shared folders root directory>''
  +
  +
[Install]
  +
WantedBy=multi-user.target
  +
}}
  +
  +
{{ic|''<shared folders root directory>''}} フォルダが存在することを確認してください。フォルダが存在しない場合は作成する必要があります:
  +
  +
# mkdir -p ''<shared folders root directory>''
  +
  +
{{ic|<shared folders root directory>-<shared_folder>.service}} マウントターゲットを[[有効化]]してください。
  +
  +
全ての共有フォルダを自動的にマウントしたい場合は ''<shared_folder>'' は省いてください。
   
=== ホストとの共有フォルダ ===
+
=== vmhgfs モジュールによるレガシーな共有フォルダ ===
   
 
{{Note|この機能は VMware Workstation と Fusion でだけ使えます。}}
 
{{Note|この機能は VMware Workstation と Fusion でだけ使えます。}}
187行目: 279行目:
   
 
3D アクセラレーションを有効にするには ''Edit virtual machine settings'' -> ''Hardware'' -> ''Display'' から ''Accelerate 3D graphics'' のチェックボックスを有効にしてください
 
3D アクセラレーションを有効にするには ''Edit virtual machine settings'' -> ''Hardware'' -> ''Display'' から ''Accelerate 3D graphics'' のチェックボックスを有効にしてください
  +
  +
==== OpenGL と GLSL のサポート ====
  +
  +
新しいカーネルモジュールで OpenGL と GLSL をアップデートすることで、Arch によるバージョンを上書きすることが可能です。
  +
  +
執筆時点で、OpenGL 3.3 と GLSL 3.30 がサポートされています。詳しくは https://bbs.archlinux.org/viewtopic.php?id=202713 を見て下さい。
   
 
===時刻同期===
 
===時刻同期===
229行目: 327行目:
 
*入力にラグが発生する
 
*入力にラグが発生する
 
*アプリケーションによってクリックが認識されない
 
*アプリケーションによってクリックが認識されない
  +
*仮想マシンに入ったり出たりするときにマウスカーソルが飛ぶ
  +
*マウスの位置がゲスト VM のときの場所に飛ぶ
   
  +
{{Pkg|xf86-input-vmmouse}} パッケージを[[pacman#パッケージの削除|削除]]してみてください。マウスとキーボードの入力は {{Pkg|xf86-input-vmmouse}} と {{Pkg|xf86-input-libinput}} だけで扱えます。
VMware は自動的にゲーム用にマウスを最適化します。問題が発生した場合、最適化を無効にするのを推奨します: ''Edit > Preferences > Input > Optimize mouse for games: Never''
 
   
  +
以下の設定を {{ic|.vmx}} 設定ファイルに追加してみてください ([https://forums.mageia.org/en/viewtopic.php?f=7&t=7977 Mouse position jumps to where it left the guest VM]):
また、{{ic|10-evdev.conf}} で {{ic|catchall}} イベントを [http://www.spinics.net/lists/xorg/msg53932.html 無効] にする必要もあるかもしれません:
 
  +
{{hc|~/vmware/''<Virtual Machine name>''/''<Virtual Machine name>''.vmx|2=
  +
mouse.vusb.enable = "TRUE"
  +
mouse.vusb.useBasicMouse = "FALSE"
  +
usb.generic.allowHID = "TRUE"}}
  +
  +
VMware は自動的にゲーム用にマウスを最適化します。問題が発生した場合、最適化を無効にするのを推奨します: ''Edit > Preferences > Input > Optimize mouse for games: Never''。
  +
  +
また、{{ic|60-libinput.conf}} で {{ic|catchall}} イベントを [https://www.spinics.net/lists/xorg/msg53932.html 無効] にする必要もあるかもしれません:
   
{{hc|/etc/X11/xorg.conf.d/10-evdev.conf|
+
{{hc|/usr/share/X11/xorg.conf.d/60-libinput.conf|
 
#Section "InputClass"
 
#Section "InputClass"
# Identifier "evdev pointer catchall"
+
# Identifier "libinput pointer catchall"
 
# MatchIsPointer "on"
 
# MatchIsPointer "on"
 
# MatchDevicePath "/dev/input/event*"
 
# MatchDevicePath "/dev/input/event*"
# Driver "evdev"
+
# Driver "libinput"
 
#EndSection
 
#EndSection
 
}}
 
}}
294行目: 402行目:
 
CLUTTER_PAINT=disable-clipped-redraws:disable-culling
 
CLUTTER_PAINT=disable-clipped-redraws:disable-culling
 
}}
 
}}
  +
  +
=== ドラッグアンドドロップとコピーアンドペースト ===
  +
  +
ドラッグアンドドロップ (コピーアンドペースト) 機能を使うには {{Pkg|open-vm-tools}} と {{Pkg|gtkmm3}} パッケージをインストールする必要があります。
  +
  +
ログイン時に {{ic|/etc/xdg/autostart/vmware-user.desktop}} によって ''vmware-user-suid-wrapper'' を起動しようとしても、''gtkmm'' との関係によって失敗することがあります。{{Bug|43159}} を見て下さい。
  +
  +
=== Workstation 11 で共有 VM として実行するときの問題 ===
  +
  +
Workstation 11 には Arch ゲストを共有 VM として動作させゲストで vmtoolsd が実行しているときに vmware-hostd がクラッシュするというバグが存在しています。バグを回避するための open-vm-tools のパッチが [https://github.com/vmware/open-vm-tools/issues/31 こちら] にあります。
  +
  +
=== システムのアップグレード後に共有フォルダがマウントされない ===
  +
  +
{{Pkg|open-vm-tools}} にのみ発生する問題です。vmhgfs モジュールは AUR の {{AUR|open-vm-tools-dkms}} に入っているため、{{ic|pacman -Syu}} コマンドで自動的にアップデートされることはありません。システムのアップグレードをする前に手動で {{AUR|open-vm-tools-dkms}} をアップデートするようにしてください。
  +
  +
マウントされなくなったら、共有ファイルシステムの自動マウントを削除して、アップグレードをしてから {{ic|mkinitcpio -p linux}} を実行する必要があります。

2020年9月21日 (月) 12:48時点における最新版

関連記事

この記事では Player (Plus), Fusion, Workstation などの VMware 製品での Arch Linux のインストールを扱います。

カーネルドライバー

  • vmw_balloon - 物理メモリ管理ドライバー。物理ページを回収して膨らむ"バルーン"のように働き、ゲストのページを予約して無効にすることでホストマシンのページを開放して他のゲストに割り当てられるようにします。縮小させることでゲストが使用できる物理メモリを増やすことも可能です。開放された仮想マシンのメモリはゲストを終了することなくホストで再利用することができます。
  • vmw_pvscsi - VMware の Paravirtual SCSI (PVSCSI) HBA のドライバー。
  • vmw_vmci - Virtual Machine Communication Interface。VMCI 仮想デバイスによるホストと仮想環境のゲスト間での高速通信を有効にします。
  • vsock - Virtual Socket Protocol。TCP/IP ソケットプロトコルと似ていて、仮想マシンとハイパーバイザまたはホスト間での通信ができるようにします。
  • vmw_vsock_vmci_transport - 仮想ソケットの VMCI 転送の実装。
  • vmwgfx - 3D アクセラレーションのためのドライバー。VMware SVGA2 仮想ハードウェアのための KMS 有効済み DRM ドライバーです。
  • vmxnet3 - VMware の vmxnet3 仮想イーサネット NIC のドライバー。
  • open-vm-tools 10.0 から fuse ベースの hgfs 実装が追加されており、カーネルのバージョン 4.0 からサポートされています。

VMware Tools vs Open-VM-Tools

2007年に、VMware は VMware Tools の大部分を Open-VM-Tools として LGPL でリリースしました。別途 Arch Linux 用の公式 Tools はありません。

当初は VMware Tools が、時間同期などの機能がある、ネットワークやストレージに最適のドライバを提供していました。しかし現在では、ネットワークや scsi アダプターが linux カーネルの一部になったことで、VMware Tools には追加機能や"古い" vmxnet アダプターのサポートだけが求められるようになりました。

VMware Tools と Open-VM-Tools のどちらを使う場合でも xf86-video-vmware のインストールが必要です。

Open-VM-Tools

モジュール

open-vm-tools-dkmsAUR パッケージには以下のモジュールが含まれています:

  • vmblock - ファイルシステムドライバー。ホストシステムとゲストマシン間のドラッグアンドドロップを有効にします (vmware-vmblock-fuse ユーティリティが取って代わります)。
  • vmci - 仮想マシン通信インターフェイス (VMCI)、同じホストでの仮想マシン同士や仮想マシンとホスト間で高いパフォーマンスを発揮するインターフェイス。
  • vmhgfs - レガシーなファイルシステムドライバー。ホストシステムと仮想マシン間のファイル・ディレクトリ共有を有効にします。
  • vsock - VMCI ソケット。
  • vmsync - 実験的なファイルシステム同期ドライバ。バックアップやスナップショットの作成時にファイルシステムの静止を有効にします。
  • vmxnet - 古い VMXNET ネットワークアダプター用のドライバ。

ユーティリティ

open-vm-tools パッケージには以下のユーティリティが含まれています:

  • vmtoolsd - 仮想マシンの状態レポートに反応するサービス。
  • vmware-checkvm - 仮想マシン上でプログラムが起動しているか確認するツール。
  • vmware-toolbox-cmd - 統計などのホストの仮想マシン情報を取得するツール。
  • vmware-user-suid-wrapper - ホストと仮想マシン間でクリップボード共有(コピーペースト)を有効にするツール。
  • vmware-vmblock-fuse - FUSE でホストと仮想マシン間のドラッグ&ドロップを有効にするユーティリティ。
  • vmware-xferlogs - ログやデバッグ情報を仮想マシンのログファイルに記録する。
  • vmhgfs-fuse - vmhgfs 共有フォルダをマウントするユーティリティ。

インストール

公式リポジトリから open-vm-tools を、AUR から open-vm-tools-dkmsAURインストールしてください。

Open-VM-Tools は /etc/arch-release からバージョン情報を読み取りますが、空になっています:

# cat /proc/version > /etc/arch-release

マルチユーザーターゲット

multi-user.target で起動する場合、以下の手順に従って下さい。graphical.target で起動する場合は graphical.target の方のセクションを見て下さい。

vmtoolsd サービスを起動し、必要ならばブート時にそれを有効にしてください:

# systemctl start vmtoolsd
# systemctl enable vmtoolsd
ノート: vmtoolsd にはバグが存在し、サービスが正しくシャットダウンせずに60秒間ハングします。対処方法はフォーラムにあります。

グラフィカルターゲット

グラフィカル環境を起動する場合、以下の手順に従って VMware ツールを有効化してください。

vmware-vmblock-fuse.service Systemd サービスを有効化してください。

open-vm-tools-dkmsAUR をインストールした場合は dkms.service Systemd サービスを有効化してください。カーネルのアップデート後に自動的にカーネルモジュールがリコンパイルされます。

上記の設定で上手く動作しない場合は gtkmm3 をインストールしてみてください。

ウィンドウのリサイズで解像度を更新

X の中から /usr/bin/vmware-user-suid-wrapper起動 してください。

公式 VMware Tools

モジュール

  • vmblock - ファイルシステムドライバー。ホストシステムとゲストマシン間のドラッグアンドドロップを有効にします (vmware-vmblock-fuse ユーティリティが取って代わります)。
  • vmci - ホストとゲスト間のハイパフォーマンス通信インターフェイス。
  • vmmon - 仮想マシンモニター。
  • vmnet - ネットワークドライバー。
  • vsock - VMCI ソケット。

インストール (ゲストから)

依存パッケージをインストールしてください: base-devel (ビルド用), net-tools (インストーラが使用する ifconfig 用), linux-headers (カーネルヘッダー)。

インストーラを正しく動作させるために偽の init ディレクトリを作成:

# for x in {0..6}; do mkdir -p /etc/init.d/rc${x}.d; done

インストーラをマウント:

# mount /dev/cdrom /mnt

(/root などに) 展開:

# tar xf /mnt/VMwareTools*.tar.gz -C /root

起動:

# perl /root/vmware-tools-distrib/vmware-install.pl

以下のビルドエラーは無視しても大丈夫です:

  • VMNEXT 3 仮想ネットワークカード
  • "Warning: This script could not find mkinitrd or update-initramfs and cannot remake the initrd file!"
  • Fuse components not found on the system.

vmware-vmblock-fuse systemd サービスを有効化:

# abs community/open-vm-tools
# cp /var/abs/community/open-vm-tools/vmware-* /usr/lib/systemd/system
# systemctl enable vmware-vmblock-fuse.service

仮想マシンを再起動:

# systemctl reboot

ログインして VMware Tools を起動:

# /etc/init.d/rc6.d/K99vmware-tools start
ヒント: GitHub にこの作業を自動化するプロジェクトが存在します。

Xorg の設定

ノート: 仮想マシンで Xorg を使うには、最低でも 32MB の VGA メモリが必要です。

依存パッケージをインストールしてください: xf86-input-vmmouse, xf86-video-vmware, mesa

graphical target で起動している場合ほとんど完了です。/etc/xdg/autostart/vmware-user.desktop が実行されて、仮想マシンでする必要があることはほぼセットアップされます。

しかしながら、multi-user.target で起動している場合、または通常とは異なるセットアップ (例: マルチモニタ) を使っている場合、vmtoolsd.service を有効にする必要があります:

# systemctl enable vmtoolsd

さらに、ドライバーをロードする権限を与えて下さい:

/etc/X11/Xwrapper.config
needs_root_rights=yes

ヒントとテクニック

vmhgfs-fuse ユーティリティによる共有フォルダ

ノート: この機能は VMware Workstation と Fusion かつ open-vm-tools v.10.x とカーネル 4.x 以上でしか使えません。

Edit virtual machine settings > Options > Shared Folders > Always enabled を選択して新しい共有を作成してファイルを共有してください。

vmware-hgfsclient コマンドを実行することで共有フォルダが確認できます:

$ vmware-hgfsclient

確認できたらフォルダをマウントします:

# mkdir <shared folders root directory>
# vmhgfs-fuse -o allow_other -o auto_unmount .host:/<shared_folder> <shared folders root directory>

他の vmhgfs-fuse のマウントオプションは -h フラグを使えば確認できます:

# vmhgfs-fuse -h
fstab

共有のルールを追加:

/etc/fstab
.host:/<shared_folder> /home/user1/shares fuse.vmhgfs-fuse defaults 0 0

共有フォルダを作成・マウント:

# mkdir /home/user1/shares
# mount /home/user1/shares
Systemd

以下の .service を作成してください:

/etc/systemd/system/<shared folders root directory>-<shared_folder>.service
[Unit]
Description=Load VMware shared folders
Requires=vmware-vmblock-fuse.service
After=vmware-vmblock-fuse.service
ConditionPathExists=.host:/<shared_folder>
ConditionVirtualization=vmware

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=
ExecStart=/usr/bin/vmhgfs-fuse -o allow_other -o auto_unmount .host:/<shared_folder> <shared folders root directory>

[Install]
WantedBy=multi-user.target

<shared folders root directory> フォルダが存在することを確認してください。フォルダが存在しない場合は作成する必要があります:

# mkdir -p <shared folders root directory>

<shared folders root directory>-<shared_folder>.service マウントターゲットを有効化してください。

全ての共有フォルダを自動的にマウントしたい場合は <shared_folder> は省いてください。

vmhgfs モジュールによるレガシーな共有フォルダ

ノート: この機能は VMware Workstation と Fusion でだけ使えます。

Edit virtual machine settings > Options > Shared Folders > Always enabled を選択して新しい共有を作成してください。

vmware-hgfsclient コマンドを実行することで共有フォルダを確認できるはずです:

$ vmware-hgfsclient

/etc/fstab に共有フォルダのルールを追加してください:

/etc/fstab
.host:/<shared_folder> /home/user1/shares vmhgfs defaults 0 0

共有フォルダを作成・マウント:

# mkdir /home/user1/shares
# mount /home/user1/shares

一時的にマウントすることも可能です:

# mount -t vmhgfs .host:/<shared_folder> /home/user1/shares
ノート: フォルダをマウントする前に vmhgfs モジュールを Linux カーネルに追加していない場合 "Error: cannot mount filesystem: No such device" と表示されます。modprobe vmhgfs コマンドを実行することで一時的に解決することができますが、ブート時に自動的にロードされるようにするには、mkinitcpio.conf に vmhgfs モジュールを追加する必要があります。

起動時に共有フォルダを有効にする

共有フォルダを動かすには vmhgfs ドライバがロードされていなければなりません。以下の .service を作成してください:

/etc/systemd/system/mnt-hgfs.mount
[Unit]
Description=Load VMware shared folders
ConditionPathExists=.host:/<shared_folder>
ConditionVirtualization=vmware

[Mount]
What=.host:/<shared_folder>
Where=/home/user1/shares
Type=vmhgfs
Options=defaults,noatime

[Install]
WantedBy=multi-user.target
/etc/systemd/system/mnt-hgfs.automount
[Unit]
Description=Load VMware shared folders
ConditionPathExists=.host:/<shared_folder>
ConditionVirtualization=vmware

[Automount]
Where=/home/user1/shares

[Install]
WantedBy=multi-user.target

マウントターゲットを有効にしてください:

# systemctl enable mnt-hgfs.automount

mlocate DB の剪定

mlocate を使うとき、locate DB で共有ディレクトリをインデックスするのは意味がありません。除去するディレクトリを /etc/updatedbPRUNEPATHS に追加してください。

3D アクセラレーション

3D アクセラレーションを有効にするには Edit virtual machine settings -> Hardware -> Display から Accelerate 3D graphics のチェックボックスを有効にしてください

OpenGL と GLSL のサポート

新しいカーネルモジュールで OpenGL と GLSL をアップデートすることで、Arch によるバージョンを上書きすることが可能です。

執筆時点で、OpenGL 3.3 と GLSL 3.30 がサポートされています。詳しくは https://bbs.archlinux.org/viewtopic.php?id=202713 を見て下さい。

時刻同期

仮想マシンで時刻同期を設定することは重要です。複数の仮想マシンによって CPU が共有されることにより、物理的なホストに比べて仮想マシンでは時刻の変動が発生しやすいためです。

時刻同期を設定する方法は2つあります: ホストマシンをソースにするか外部のサーバをソースにするかです。

時刻のソースとしてホストマシンを使う

時刻ソースとしてホストを使うには:

# vmware-toolbox-cmd timesync enable

ホストマシンがスリープから復帰した後にゲストの時計を同期させるには:

# hwclock --hctosys --localtime

時刻のソースとして外部サーバを使う

NTP を見て下さい。

準仮想化 SCSI アダプター

VMware Paravirtual SCSI (PVSCSI) アダプター はオーバーヘッドが少なく大きなパフォーマンスブーストを得られる VMware ESXi のストレージアダプタです。

次の手順に従って下さい: /etc/mkinitcpio.conf ファイルを開き MODULES 行に以下を追加する:

MODULES=(...vmw_pvscsi...)

その後、次のコマンドを実行:

# mkinitcpio -p linux

仮想マシンをシャットダウンして scsi アダプタータイプを変更してください: VMware Paravirtual。警告が表示されても無視してかまいません。

トラブルシューティング

マウスの問題

マウスに関する以下の問題が発生することがあります:

  • カーソルをウィンドウに載せた時に自動グラブ機能が動作しない
  • 入力にラグが発生する
  • アプリケーションによってクリックが認識されない
  • 仮想マシンに入ったり出たりするときにマウスカーソルが飛ぶ
  • マウスの位置がゲスト VM のときの場所に飛ぶ

xf86-input-vmmouse パッケージを削除してみてください。マウスとキーボードの入力は xf86-input-vmmousexf86-input-libinput だけで扱えます。

以下の設定を .vmx 設定ファイルに追加してみてください (Mouse position jumps to where it left the guest VM):

~/vmware/<Virtual Machine name>/<Virtual Machine name>.vmx
mouse.vusb.enable = "TRUE"
mouse.vusb.useBasicMouse = "FALSE"
usb.generic.allowHID = "TRUE"

VMware は自動的にゲーム用にマウスを最適化します。問題が発生した場合、最適化を無効にするのを推奨します: Edit > Preferences > Input > Optimize mouse for games: Never

また、60-libinput.confcatchall イベントを 無効 にする必要もあるかもしれません:

/usr/share/X11/xorg.conf.d/60-libinput.conf
#Section "InputClass"
#        Identifier "libinput pointer catchall"
#        MatchIsPointer "on"
#        MatchDevicePath "/dev/input/event*"
#        Driver "libinput"
#EndSection

ボタンが機能しない

デフォルトで動作しない場合、mouse.vusb.useBasicMouse = "FALSE".vmx に追加することで全てのマウスボタンが動作するはずです。

~/vmware/<Virtual Machine name>/<Virtual Machine name>.vmx
mouse.vusb.useBasicMouse = "FALSE"

ブートの問題

起動時間が遅い

VMWare のメモリ hot-add 機能が有効になっていると以下のエラーが起こることがあります。

  • add_memory failed
  • acpi_memory_enable_device() error

mem.hotadd = "FALSE".vmx に設定することでメモリ hot-add 機能を無効にできます。

~/vmware/<Virtual Machine name>/<Virtual Machine name>.vmx
mem.hotadd = "FALSE"

シャットダウンや再起動がハングアップする

vmtoolsd サービスのタイムアウトを変更してください (デフォルトは90秒)。

/etc/systemd/system/vmtoolsd.service.d/timeout.conf
[Service]
TimeoutStopSec=1

自動スケールの問題

システムサービスを有効にしても解像度が変更されず引き伸ばされる場合、mkinitcpio.conf にモジュールを追加する必要があります。

/etc/mkinitcpio.conf
MODULES="vsock vmw_vsock_vmci_transport vmw_balloon vmw_vmci vmwgfx"

忘れずに次を実行してください:

# mkinitcpio -p linux

GNOME3 のレンダリング問題

UI の一部が Clutter (検索、ドックなど) で消えないという再描写問題を修正するには、以下を編集する必要があります:

/etc/environment
CLUTTER_PAINT=disable-clipped-redraws:disable-culling

ドラッグアンドドロップとコピーアンドペースト

ドラッグアンドドロップ (コピーアンドペースト) 機能を使うには open-vm-toolsgtkmm3 パッケージをインストールする必要があります。

ログイン時に /etc/xdg/autostart/vmware-user.desktop によって vmware-user-suid-wrapper を起動しようとしても、gtkmm との関係によって失敗することがあります。FS#43159 を見て下さい。

Workstation 11 で共有 VM として実行するときの問題

Workstation 11 には Arch ゲストを共有 VM として動作させゲストで vmtoolsd が実行しているときに vmware-hostd がクラッシュするというバグが存在しています。バグを回避するための open-vm-tools のパッチが こちら にあります。

システムのアップグレード後に共有フォルダがマウントされない

open-vm-tools にのみ発生する問題です。vmhgfs モジュールは AUR の open-vm-tools-dkmsAUR に入っているため、pacman -Syu コマンドで自動的にアップデートされることはありません。システムのアップグレードをする前に手動で open-vm-tools-dkmsAUR をアップデートするようにしてください。

マウントされなくなったら、共有ファイルシステムの自動マウントを削除して、アップグレードをしてから mkinitcpio -p linux を実行する必要があります。