VMware
この記事は Arch Linux における VMware のインストールについての記事です。VMware に Arch Linux をインストールするのは別の記事になっています。
目次
- 1 インストール
- 2 設定
- 3 アプリケーションを起動する
- 4 Tips and tricks
- 5 トラブルシューティング
- 5.1 /dev/vmmon not found
- 5.2 Kernel headers for version 4.x-xxxx were not found. If you installed them[...]
- 5.3 USB デバイスが認識されない
- 5.4 インストーラーが起動しない
- 5.5 ゲストで VMware Tools がダウンロードできない
- 5.6 VMware にリモートでアクセスしようとすると Incorrect login/password エラー
- 5.7 ALSA 出力の問題
- 5.8 Kernel-based Virtual Machine (KVM) is running
- 5.9 Intel のマイクロコードが古いせいで起動時にセグメンテーション違反が発生する
- 5.10 時刻がおかしくなったり "[...]timeTracker_user.c:234 bugNr=148722" というエラーで VMware が起動しない
- 5.11 システムを再起動した後にゲストのネットワークが使えなくなる
- 5.12 Linux 4.9 でカーネルモジュールのビルドに失敗する
- 5.13 バージョン 12.5.3 でvmplayerが起動できない
- 6 アンインストール
インストール
適切な依存パッケージをインストールしてください:
- fuse2 - vmware-vmblock-fuse 用
- gksu - root 操作用 (メモリ割り当てやライセンス登録など)
- gtkmm - GUI 用
- linux-headers - モジュールコンパイル用
- ncurses5-compat-libsAUR -
--console
インストーラーを動かすのに必要
最新の VMware Workstation Pro または Player をダウンロードしてください (若しくは、可能であれば ベータ バージョン)。
インストールを開始してください:
# sh VMware-<edition>-<version>.<release>.<architecture>.bundle
System service scripts directory
には、 /etc/init.d
を使って下さい (デフォルト)。
設定
カーネルモジュール
VMware Workstation 12.5 はバージョン 4.8 までのカーネルをサポートしています。
systemd サービス
(任意) /etc/init.d/vmware
(start|stop|status|restart
) と /usr/bin/vmware-usbarbitrator
を使って直接サービスを管理するのではなく、.service
ファイルを使用することもできます (AUR の vmware-systemd-servicesAUR から取得することも可能、vmware-patchAUR にも入っています):
/etc/systemd/system/vmware.service
[Unit] Description=VMware daemon Requires=vmware-usbarbitrator.service Before=vmware-usbarbitrator.service After=network.target [Service] ExecStart=/etc/init.d/vmware start ExecStop=/etc/init.d/vmware stop PIDFile=/var/lock/subsys/vmware RemainAfterExit=yes [Install] WantedBy=multi-user.target
/etc/systemd/system/vmware-usbarbitrator.service
[Unit] Description=VMware USB Arbitrator Requires=vmware.service After=vmware.service [Service] ExecStart=/usr/bin/vmware-usbarbitrator ExecStop=/usr/bin/vmware-usbarbitrator --kill RemainAfterExit=yes [Install] WantedBy=multi-user.target
他の Workstation サーバーコンソールから VMware Workstation に接続したい場合、以下のサービスも追加してください:
/etc/systemd/system/vmware-workstation-server.service
[Unit] Description=VMware Workstation Server Requires=vmware.service After=vmware.service [Service] ExecStart=/etc/init.d/vmware-workstation-server start ExecStop=/etc/init.d/vmware-workstation-server stop PIDFile=/var/lock/subsys/vmware-workstation-server RemainAfterExit=yes [Install] WantedBy=multi-user.target
作成したら有効化することでブート時に起動できます。
Workstation Server サービス
vmware-workstation-server.service
はコマンドチェインで wssc-adminTool
を実行しますが、このバイナリファイルの名前は vmware-wssc-adminTool
に変更されています。
サービスが起動するのを防ぐには、以下のようにシンボリックリンクを作成してください:
# ln -s wssc-adminTool /usr/lib/vmware/bin/vmware-wssc-adminTool
アプリケーションを起動する
VMware Workstation Pro を開くには:
$ vmware
VMware Player の場合:
$ vmplayer
Tips and tricks
Workstation Pro ライセンスキーを入力する
ターミナルから
# /usr/lib/vmware/bin/vmware-vmx-debug --new-sn XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
はあなたのライセンスキーに置き換えてください。
GUI から
上記で上手くいかない場合は、次を試すことができます:
# /usr/lib/vmware/bin/vmware-enter-serial
VMware BIOS を展開する
$ objcopy /usr/lib/vmware/bin/vmware-vmx -O binary -j bios440 --set-section-flags bios440=a bios440.rom.Z $ perl -e 'use Compress::Zlib; my $v; read STDIN, $v, '$(stat -c%s "./bios440.rom.Z")'; $v = uncompress($v); print $v;' < bios440.rom.Z > bios440.rom
インストーラーを抽出する
インストーラー .bundle
の中身を確認するには:
$ sh VMware-edition-version.release.architecture.bundle --extract /tmp/vmware-bundle/
改造 BIOS を使う
展開した BIOS に変更を加えるとき、あなたの仮想マシンがその BIOS を使うようにするには BIOS を ~/vmware/<Virtual machine name>
に移動して:
$ mv bios440.rom ~/vmware/<Virtual machine name>/
ファイルの名前を <Virtual machine name>.vmx
ファイルに追記してください:
~/vmware/<Virtual machine name>/<Virtual machine name>.vmx
bios440.filename = "bios440.rom"
Intel と Optimus で 3D グラフィックを有効化
3D アクセラレーションが不安定なグラフィックドライバーはデフォルトでブラックリストに入れられています。Accelerate 3D graphics を有効化すると、ログに以下のように表示されることがあります:
Disabling 3D on this host due to presence of Mesa DRI driver. Set mks.gl.allowBlacklistedDrivers = TRUE to override.
その場合、以下のように設定してください:
~/.vmware/preferences
mks.gl.allowBlacklistedDrivers = TRUE
トラブルシューティング
/dev/vmmon not found
エラーの全文は:
Could not open /dev/vmmon: No such file or directory. Please make sure that the kernel module `vmmon' is loaded.
これは vmmon
VMware サービスが動作していないことを意味しています。#Systemd サービスの systemd サービスを使っている場合は(再)起動してください。
Kernel headers for version 4.x-xxxx were not found. If you installed them[...]
ヘッダーをインストールしてください (linux-headers)。
USB デバイスが認識されない
systemd サービスを使ってサービスを自動的に管理しない場合、毎回手動で root を使って vmware-usbarbitrator
バイナリを起動する必要があります。
起動するには:
# vmware-usbarbitrator
停止するには:
# vmware-usbarbitrator --kill
インストーラーが起動しない
.bundle
を開くとプロンプトに戻ってしまう場合、おそらく VMware インストーラーの古いバージョンまたは壊れたバージョンが存在しています。削除してください (この記事のアンインストールセクションも参照してください):
# rm -r /etc/vmware-installer/
User interface initialization failed
以下のようなエラーが表示される場合もあります:
Extracting VMware Installer...done. No protocol specified No protocol specified User interface initialization failed. Exiting. Check the log for details.
ncurses5-compat-libsAUR をインストールするか、一時的に X に root でアクセスできるようにすることで解決します:
$ xhost + $ sudo ./<vmware filename>.bundle $ xhost -
ゲストで VMware Tools がダウンロードできない
root で vmware
や vmplayer
を実行してみるか、VMware リポジトリ から直接ダウンロードしてください。
"application name / version / build ID / linux / packages/" まで移動して適切な Tools をダウンロードします。
展開するには次を実行:
$ tar -xvf vmware-tools-name-version-buildID.x86_64.component.tar
VMware インストーラーを使ってインストール:
# vmware-installer --install-component=/path/vmware-tools-name-version-buildID.x86_64.component
上記で上手くいかない場合は ncurses5-compat-libsAUR をインストールしてみてください。
VMware にリモートでアクセスしようとすると Incorrect login/password エラー
VMware Workstation には vmware-workstation-server
サービスによって共有 VM をリモートで管理できる機能があります。しかしながら、vmware-authd
サービスの PAM 設定が間違っているために、"incorrect username/password"
エラーで失敗します。修正するには、以下のように /etc/pam.d/vmware-authd
を編集して:
/etc/pam.d/vmware-authd
#%PAM-1.0 auth required pam_unix.so account required pam_unix.so password required pam_permit.so session required pam_unix.so
vmware
の systemd サービスを再起動してください。
これでインストールで作られた証明書を使ってサーバーにアクセスできるはずです。
ALSA 出力の問題
音質や HD 音声出力が有効にできない問題を修正するには、まず以下を実行 [1]:
$ aplay -L
ゲストから 5.1 のサラウンド音声を再生したい場合 surround51:CARD=vendor_name,DEV=num
を、音質に問題がある場合は front:CARD=vendor_name,DEV=num
を確認して、.vmx
に名前を記述してください:
~/vmware/Virtual_machine_name/Virtual_machine_name.vmx
sound.fileName="surround51:CARD=Live,DEV=0" sound.autodetect="FALSE"
OSS エミュレーションを使っている場合、無効化してください。
Kernel-based Virtual Machine (KVM) is running
起動時に KVM
を無効にするために、以下のようなファイルを使うことができます:
/etc/modprobe.d/vmware.conf
blacklist kvm blacklist kvm-amd # For AMD CPUs blacklist kvm-intel # For Intel CPUs
Intel のマイクロコードが古いせいで起動時にセグメンテーション違反が発生する
Intel のマイクロコードが最新でないと起動時に以下のようなセグメンテーション違反が発生することがあります:
/usr/bin/vmware: line 31: 4941 Segmentation fault "$BINDIR"/vmware-modconfig --appname="VMware Workstation" --icon="vmware-workstation"
マイクロコードを参照してアップデートしてください。
時刻がおかしくなったり "[...]timeTracker_user.c:234 bugNr=148722" というエラーで VMware が起動しない
VMware Linux における電源管理機能 (Intel SpeedStep や AMD PowerNow!/Cool'n'Quiet) のサポートが 不完全 で CPU 周波数が変化するのが原因です。2012年3月、linux 3.3-1 のリリースによって、最大周波数の Performance ガバナーは動的な Ondemand によって置き換わりました。ホストの CPU 周波数が変化すると、ゲストのシステムクロックが早すぎたり遅すぎたりするようになり、ゲストが全く起動できなくなることもあります。
この問題を解決するには、全体設定で、ホストで最大 CPU 周波数を指定して、Time Stamp Counter (TSC) を無効化します:
/etc/vmware/config
host.cpukHz = "X" # The maximum speed in KHz, e.g. 3GHz is "3000000". host.noTSC = "TRUE" # Keep the Guest system clock accurate even when ptsc.noTSC = "TRUE" # the time stamp counter (TSC) is slow.
システムを再起動した後にゲストのネットワークが使えなくなる
おそらく vmnet
モジュールがロードされていないのが原因です [2]。自動ロードする方法は #systemd サービスセクションを参照してください。
Linux 4.9 でカーネルモジュールのビルドに失敗する
VMware Workstation Pro 12.5.2 現在、コンパイルを通すにはモジュールのソースに修正が必要です [3]:
# cd /usr/lib/vmware/modules/source # tar xf vmmon.tar # mv vmmon.tar vmmon.old.tar # sed -i 's/uvAddr, numPages, 0, 0/uvAddr, numPages, 0/g' vmmon-only/linux/hostif.c # tar cf vmmon.tar vmmon-only # rm -r vmmon-only
# tar xf vmnet.tar # mv vmnet.tar vmnet.old.tar # sed -i 's/addr, 1, 1, 0/addr, 1, 0/g' vmnet-only/userif.c # tar cf vmnet.tar vmnet-only # rm -r vmnet-only
バージョン 12.5.3 でvmplayerが起動できない
この問題は /usr/lib/vmware/lib/libstdc++.so.6/libstdc++.so.6
で CXXABI_1.3.8
が抜けていることが原因です。
gcc-libs か gcc-libs-multilib がインストールされているのであればライブラリは既にインストールされています。以下のようにファイルを削除することで vmplayer は gcc-libs のライブラリを使うようになります:
# mv /usr/lib/vmware/lib/libstdc++.so.6/libstdc++.so.6 /usr/lib/vmware/lib/libstdc++.so.6/libstdc++.so.6.bak
アンインストール
VMware をアンインストールするには製品名が必要です (vmware-workstation
または vmware-player
)。インストールされている製品を全て表示するには:
$ vmware-installer -l
次のコマンドでアンインストールしてください (--required
で確認をスキップできます):
# vmware-installer -u <product> --required
vmware
サービスを無効にして削除するのも忘れないで下さい:
# rm /etc/systemd/system/vmware.service # rm /etc/systemd/system/vmware-usbarbitrator.service
/usr/lib/modules/<kernel name>/misc/
のモジュールディレクトリにも何か残っていないか確認すると良いでしょう。