プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

VMware ESXi 4.0 のインストール (番外) UbuntuでのVMware Toolsインストール不具合への対応

UbuntuをゲストOSにして、VMware Tools をインストールした際に発生するコンパイルエラーの解消方法について、以下にまとめておきます。なお、コンパイルエラーの原因は、ソース内で呼んでいるAPI関数の名称が変わったことが原因のようです。

  • ESXi 4.0
  • ゲストOS : Ubuntu 9.04 Desktop 日本語 Remix版

注意:以下の対応方法はソースファイルを修正しています。くれぐれも自己責任でお願いします。

(1) VMware Tools のアンインストール

sudo find / -name vmware-*

のようにすると、vmware-uninstall-tools.pl が見つかると思いますので、これを実行してアンインストールしてください。私の環境ですと、/usr/binにありました。

(2) アップデート

ここでやる必須の作業ではありませんが、念のためにアップデートをしておきます。

sudo apt-get update
sudo apt-get upgrade

なお、コンパイルにはgcc(Cコンパイラ)が必要ですが、このUbuntuでは最初から入っています。また、g++は不要なのでbuil-essentialパッケージはインストールしなくてもかまいません。

なお、いくつかのサイトの記事では、linux-header-xxxxxもinstallするように書かれていたのですが、 手元の環境のパッケージをSynapticで調べたところ、カーネルバージョンと一致するものが入っていたので、これのinstall も行ないませんでした。

(3) vSphere Client側で、Vmware Tools のインストールを選択します。

(4) 以下のコマンドを実行します

su -
cd /tmp
tar zxpf /cdrom/VMwareTools-4.0.0-171294.tar.gz
cd vmware-tools-distrib/lib/modules/source
tar xvf vmhgfs.tar
cd vmhgfs-only

(5) vmhgfs-onlyディレクトリのpage.cファイルを編集します。今回のバージョンですと、pgae.cの867行目にエラーがあったので、viで開いて編集します。編集内容は、

 

page = __grab_cache_page(mapping, index);

の行を下記のように変更します。

page = grab_cache_page_write_begin(mapping, index, flags);

(6) 修正後のファイルを再度tarで固めます。cd ..; tar cvf vmhgfs.tar ./vmhgfs-only など

(7) 展開したディレクトリを削除しておきます。rm -rf vmhgfs-only など

(8) cd ../../../; ./vmware-install.pl

(9) 多分、修正したファイルが使われて正常にコンパイルが完了しているはずです。

ただ、機能が正常かどうかは、この機能そのものがESXiでサポートされていないため、確認できません。このため、本当にこれで正しいかどうかは不明です。

 

(参考にしたサイト)

不具合の対処手順を書いているサイト(英語)

具体的なソースコードの修正方法を示しているサイト(英語)

共有機能の不具合に触れているサイト(日本語)