VMware

提供: ArchWiki
2014年7月8日 (火) 23:41時点におけるKusakata (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

テンプレート:Related articles start (日本語)

  • VMware に Arch Linux をインストール
  • VirtualBox
  • KVM
  • QEMU
  • Xen
  • 既存のインストールを仮想マシンに移動する
  • この記事は Arch Linux における VMware のインストールについての記事です。VMware に Arch Linux をインストールするのは別の記事になっています。

    ノート: この記事では最新のメジャーな VMware バージョン、VMware Workstation 10 と VMware Player (Plus) 6 だけをサポートしています。

    インストール

    1. 適切な依存パッケージをインストールしてください:

    • fuse - vmware-vmblock-fuse サービスが vmblock モジュールよりも優先されるので、カーネルで fuse を無効にしない限りビルドされません
    • gtkmm - GUI 用
    • linux-headers - モジュールコンパイル用

    2. 最新の VMware Workstation または VMware Player (Plus) をダウンロードしてください (若しくは、可能であればベータバージョン)。

    3. インストールを開始してください (--eulas-agreed で EULA をスキップできます):

    # sh VMware-<edition>-<version>.<release>.<architecture>.bundle --eulas-agreed
    
    ヒント: その他の有用なフラグ:
    • --console - コンソール UI を使います。
    • -I, --ignore-errors - 致命的なエラーを無視します。

    4. System service scripts directory には、 /etc/init.d を使って下さい (デフォルト)。

    ノート: インストール中に "No rc*.d style init script directories" というエラーが表示されますが、Arch は systemd に移行しているので、無視してかまいません。
    ヒント: 後でターミナルからモジュールを(再)ビルドするには、次のコマンドを使って下さい:
    # vmware-modconfig --console --install-all
    

    設定

    ヒント: このセクションで行うことを自動化する vmware-patchAUR というパッケージが AUR には存在します (古い VMware バージョンもサポートしています)。

    VMware モジュールパッチとインストール

    VMware Workstation 10.0.3 と Player (Plus) 6.0.3 は 3.13 までのカーネルをサポートしています。

    3.14 カーネル

    3.14 カーネルでは vmcivsock モジュールのビルドは失敗します

    パッチ(ワーニングフィックスも含まれています)は ここ から入手できます:

    $ curl http://pastie.org/pastes/9090538/download -o /tmp/vmware-3.14.patch
    

    モジュールのソースを展開する:

    $ cd /usr/lib/vmware/modules/source
    # for i in vmci vmmon vmnet vsock; do tar -xf $i.tar; done
    

    パッチを適用する:

    # patch -p0 -i /tmp/vmware-3.14.patch
    

    アーカイブを再作成する:

    # for i in *-only; do tar -cf ${i/-only}.tar $i; done
    

    残ったゴミを削除する:

    # rm -r *-only
    

    モジュールを再生成する:

    # vmware-modconfig --console --install-all
    
    ノート: Tar複数の操作 をサポートしていないため、for ループを使っています。

    3.15 カーネル

    3.15 カーネルでは vsock モジュールに追加の パッチ が必要です:

    $ curl http://pastie.org/pastes/9311773/download -o /tmp/vmware-vsock-3.15.patch
    

    モジュールのソースを展開する:

    $ cd /usr/lib/vmware/modules/source
    # tar -xf vsock.tar
    

    パッチを適用する:

    # patch -p0 -i /tmp/vmware-vsock-3.15.patch
    

    アーカイブを再作成する:

    # tar -cf vsock.tar vsock-only
    

    残ったゴミを削除する:

    # rm -r vsock-only
    

    モジュールを再生成する:

    # vmware-modconfig --console --install-all
    

    init.d スクリプト

    5. Virtual machine communication interface (vmci) と VM communication interface socket family (vsock) サービスは、メインの init.d スクリプトがカーネル内のドライバーの包含を上手く扱えないために、起動時に失敗することが知られています

    VMware のドライバーを指定することで修正できます:

    # sed -i 's/mod=$(vmwareRealModName $vmci $vmci_alias)/mod=vmci/' /etc/init.d/vmware
    # sed -i 's/mod=$(vmwareRealModName $vsock $vsock_alias)/mod=vsock/' /etc/init.d/vmware
    

    Systemd サービス

    6. (任意) # /etc/init.d/vmware {start|stop|status|restart} を使うかわりにサービスを直接管理するために .service ファイルを作成することができます (または ファイル):

    /etc/systemd/system/vmware.service
    [Unit]
    Description=VMware daemon
    
    [Service]
    ExecStart=/etc/init.d/vmware start
    ExecStop=/etc/init.d/vmware stop
    PIDFile=/var/lock/subsys/vmware
    TimeoutSec=0
    RemainAfterExit=yes
    
    [Install]
    WantedBy=multi-user.target

    作成したら、次を実行して起動時に有効にすることが可能です:

    # systemctl enable vmware
    

    アプリケーションを起動する

    VMware Workstation を開くには:

    $ vmware
    

    VMware Player (Plus) の場合:

    $ vmplayer
    

    Tips and tricks

    Workstation ライセンスキーを入力する

    ターミナルから

    # /usr/lib/vmware/bin/vmware-vmx-debug --new-sn XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
    

    XXXXX-XXXXX-XXXXX-XXXXX-XXXXX はあなたのライセンスキーに置き換えてください。

    ノート: The -debug binary informs the user of an incorrect license.

    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
    

    改造 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"

    DKMS を使ってモジュールを管理する

    Dynamic Kernel Module Support (DKMS) を使って Workstation のモジュールを管理することができ、カーネルを変更する度に vmware-modconfig を再実行するのを避けることができます。以下の例ではカスタムした Makefile を使って vmware-modconfig によりモジュールをコンパイル・インストールします。その後モジュールはカーネルツリーから削除されます。

    準備

    まず公式リポジトリから dkms をインストールしてください。

    それから Makefiledkms.conf のソースディレクトリを作成してください:

    # mkdir /usr/src/vmware-modules-10/
    

    ビルド設定

    git を使うか下の方法でファイルを取得してください。

    1) Git を使う
    $ cd /tmp
    $ git clone git://github.com/bawaaaaah/dkms-workstation.git
    $ sed -i 's/9/10/' dkms-workstation/dkms.conf
    # cp dkms-workstation/Makefile dkms-workstation/dkms.conf /usr/src/vmware-modules-10/
    
    2) 手動設定

    dkms.conf にはモジュールの名前とコンパイル・インストールの手順を記述します。AUTOINSTALL="yes" で自動的に毎回モジュールが再コンパイル・インストールされるようになります:

    /usr/src/vmware-modules-10/dkms.conf
    PACKAGE_NAME="vmware-modules"
    PACKAGE_VERSION="10"
    
    MAKE[0]="make all"
    CLEAN="make clean"
    
    BUILT_MODULE_NAME[0]="vmmon"
    BUILT_MODULE_LOCATION[0]="modules"
    
    BUILT_MODULE_NAME[1]="vmnet"
    BUILT_MODULE_LOCATION[1]="modules"
    
    BUILT_MODULE_NAME[2]="vmblock"
    BUILT_MODULE_LOCATION[2]="modules"
    
    BUILT_MODULE_NAME[3]="vmci"
    BUILT_MODULE_LOCATION[3]="modules"
    
    BUILT_MODULE_NAME[4]="vsock"
    BUILT_MODULE_LOCATION[4]="modules"
    
    DEST_MODULE_LOCATION[0]="/extra/vmware"
    DEST_MODULE_LOCATION[1]="/extra/vmware"
    DEST_MODULE_LOCATION[2]="/extra/vmware"
    DEST_MODULE_LOCATION[3]="/extra/vmware"
    DEST_MODULE_LOCATION[4]="/extra/vmware"
    
    AUTOINSTALL="yes"

    そして Makefile:

    /usr/src/vmware-modules-10/Makefile
    KERNEL := $(KERNELRELEASE)
    HEADERS := /usr/lib/modules/$(KERNEL)/build/include
    GCC := $(shell vmware-modconfig --console --get-gcc)
    DEST := /lib/modules/$(KERNEL)/vmware
    
    TARGETS := vmmon vmnet vmblock vmci vsock
    
    LOCAL_MODULES := $(addsuffix .ko, $(TARGETS))
    
    all: $(LOCAL_MODULES)
    	mkdir -p modules/
    	mv *.ko modules/
    	rm -rf $(DEST)
    	depmod
    
    $(HEADERS)/linux/version.h:
    	ln -s $(HEADERS)/generated/uapi/linux/version.h $(HEADERS)/linux/version.h
    
    %.ko: $(HEADERS)/linux/version.h
    	vmware-modconfig --console --build-mod -k $(KERNEL) $* $(GCC) $(HEADERS) vmware/
    	cp -f $(DEST)/$@ .
    
    clean: rm -rf modules/

    インストール

    モジュールは次のコマンドでインストールできます:

    # dkms install vmware-modules/10 -k $(uname -r)
    

    トラブルシューティング

    /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 サービスが動作していないことを意味しています。手順6にある systemd サービスを使っている場合は(再)起動してください。

    Kernel headers for version 3.x-xxxx were not found. If you installed them[...]

    ヘッダーをインストールしてください (linux-headers)。

    ノート: Upgrading the kernel and the headers will require you to boot to the new kernel to match the version of the headers. This is a relatively common error.

    USB デバイスが認識されない

    ヒント: vmware-patchAUR でも対処できます。

    VMware サービスが動作していると (systemd のサービスは手順6を見て下さい)、インストールで vmware-USBArbitrator スクリプトが消失します。フォーラムへのこの投稿を見て手動で追加してください。

    また、手動で VMware バンドルを展開して <destination folder>/vmware-usbarbitrator/etc/init.d/ から /etc/init.d/vmware-USBArbitrator スクリプトをコピーすることも可能です:

    $ sh VMware-<edition>-<version>.<release>.<architecture>.bundle --extract /tmp/vmware-bundle/
    # cp /tmp/vmware-bundle/vmware-usbarbitrator/etc/init.d/vmware-USBArbitrator /etc/init.d/
    

    インストーラーが起動しない

    .bundle を開くとプロンプトに戻ってしまう場合、おそらく VMware インストーラーの古いバージョンまたは壊れたバージョンが存在しています。削除してください (この記事のアンインストールセクションも参照してください):

    # rm -r /etc/vmware-installer/
    

    VMware にリモートでアクセスしようとすると Incorrect login/password エラー

    VMware Workstation 10 には 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
    

    vmwaresystemd サービスを再起動してください。

    これでインストールで作られた証明書を使ってサーバーにアクセスできるはずです。

    ノート: 仮想マシンを起動するために libxslt が必要になるかもしれません。

    ALSA 出力の問題

    以下は Bankim Bhavsar の wiki に記述されている、手動で VMware .vmxALSA 出力デバイスを設定する方法です。品質の問題を解決したり、適切な HD オーディオ出力を有効にするのに役立ちます:

    1. Run aplay -L
    2. If interested in playing 5.1 surround sound from the guest, look for surround51:CARD=<vendor-name>,DEV=<num>. If experiencing quality issues, look for a line starting with front:.
    3. Open the <Virtual machine name>.vmx config file of the VM in a text editor, located under ~/vmware/<Virtual machine name>/, and edit the sound.fileName field, e.g.: sound.fileName="surround51:CARD=Live,DEV=0". Ensure that it also reads 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
    

    "[...]timeTracker_user.c:234 bugNr=148722" というエラーで VMware が起動しない

    The solution for this issue is taken from [1]. You have to specify the correct maximum host CPU speed in your global configuration file, /etc/vmware/config. If this file exists, edit it with a text editor, adding the lines described below. The file may not exist. If it does not exist, create it as a plain text file.

    Add the following lines to your global configuration file:

     host.cpukHz = "X" where "X" equals the maximum speed in KHz of your host machine.  That is, its speed in MHz times 1000 or its speed in GHz times 1000000.  A 3GHz machine would be 3000000.
     host.noTSC = TRUE
     ptsc.noTSC = TRUE
    

    アンインストール

    VMware をアンインストールするには製品名が必要です (vmware-workstation または vmware-player)。インストールされている製品を全て表示するには:

    $ vmware-installer -l
    

    次のコマンドでアンインストールしてください (--required で確認をスキップできます):

    # vmware-installer -u <product> --required
    

    vmware サービスを無効にして削除するのも忘れないで下さい:

    # systemctl disable vmware
    # rm /etc/systemd/system/vmware.service
    

    You may also want to have a look at the module directories in /usr/lib/modules/<kernel name>/misc/ for any leftovers.