Arch LinuxのKernelを上げると、
open-vm-tools、open-vm-tools-modulesが
エラーで起動しなくなってしまいました。
Kernel・・・3.2.8-1-ARCH
open-vm-tools・・・2011.12.20-2
open-vm-tools-modules・・・2011.12.20-3
#uname -r 3.2.8-1-ARCH #pacman -Ss open-vm-tools community/open-vm-tools 2011.12.20-2 [installed] The Open Virtual Machine Tools (open-vm-tools) are the open source implementation of VMware Tools. community/open-vm-tools-modules 2011.12.20-3 [installed] kernel modules for the open source implementation of VMware Tools
とりあえず、再インストールして起動してみます。
# packman -Syu open-vm-tools open-vm-tools-modules # # /etc/rc.d/open-vm-tools restart :: Stopping Open Virtual Machine Tools [FAIL] :: Starting Open Virtual Machine Tools [BUSY] ERROR: could not insert 'vmsync': Exec format error [FAIL] # # dmesg [ 130.338033] vmblock: disagrees about version of symbol module_layout [ 2141.388555] vmci: disagrees about version of symbol module_layout [ 2225.845851] vmsync: disagrees about version of symbol module_layout [ 2526.868850] vmblock: disagrees about version of symbol module_layout
モジュールか起動スクリプトがオカシイみたいですね。
モジュール単体を読み込んでみます。
# insmod /lib/modules/extramodules-3.2-ARCH/vmhgfs.ko.gz Error: could not insert module vmhgfs.ko.gz: Unknown symbol in module # # insmod /lib/modules/extramodules-3.2-ARCH/vmci.ko.gz Error: could not insert module vmci.ko.gz: Unknown symbol in module # # insmod /lib/modules/extramodules-3.2-ARCH/vmsync.ko.gz Error: could not insert module vmsync.ko.gz: Unknown symbol in module
ダメポですwどうやら、Open-vm-tools-modulesの再コンパイルが必要?
面倒なのでABSで再コンパイルします。
1)ABSで再コンパイル
ABSを使えるようにします
# pacman -Syu abs base-devel # vim /etc/abs.conf REPOS=(core extra community !testing !community-testing !staging !community-staging !gnome-unstable !kde-unstable)
「community」が必要です。
ソースファイルの同期をします。
# abs # ls /var/abs/ community core extra local README
準備完了。
ここからはユーザで行います。
$ mkdir -p ~/abs $ cp -r /var/abs/community/open-vm-tools-modules/ ~/abs/ $ cd ~/abs/open-vm-tools-modules/
依存関係でKernel-header等必要なので「-s」をつけて自動解決させます。
それなりに時間がかかります。
$ makepkg -s ==> Making package: open-vm-tools-modules 2011.12.20-1 (Thu Mar 1 16:43:44 JST 2012) ==> Checking runtime dependencies... ==> Checking buildtime dependencies... ==> Missing Dependencies: ==> Tidying install... -> Purging unwanted files... -> Compressing man and info pages... -> Stripping unneeded symbols from binaries and libraries... ==> Creating package... -> Generating .PKGINFO file... -> Compressing package... ==> Finished making: open-vm-tools-modules-2011.12.20-3-x86_64.pkg.tar.xz (Thu Mar 1 16:45:12 JST 2012)
無事出来上がりました。
インストールしてみましょう。
#pacman -U open-vm-tools-modules-2011.12.20-3-x86_64.pkg.tar.xz loading packages... warning: open-vm-tools-modules-2011.12.20-3 is up to date -- reinstalling resolving dependencies... looking for inter-conflicts... Targets (1): open-vm-tools-modules-2011.12.20-3 Total Installed Size: 0.16 MiB Net Upgrade Size: 0.02 MiB Proceed with installation? [Y/n] y (1/1) checking package integrity [###############################] 100% (1/1) loading package files [###############################] 100% (1/1) checking for file conflicts [###############################] 100% (1/1) checking available disk space [###############################] 100% (1/1) upgrading open-vm-tools-modules [###############################] 100%
微妙に容量が違います。。。
2)「vmblock」エラー対策
このまま起動すると、、、
#/etc/rc.d/open-vm-tools start :: Stopping Open Virtual Machine Tools [FAIL] :: Starting Open Virtual Machine Tools [FAIL]
とエラーしてしまいます
CUIの場合は「no」にしておきます。
「vmblock」でエラーを吐いてしまいます。
#vi /etc/conf.d/open-vm-tools # Enable support for Drag'n'Drop VM_DRAG_AND_DROP="no"
(GUIでは「yes」でもいいのかしら。。。)
2)「vmhgfs」エラー対策
どうやら、フォルダ共有で使われる「vmhgfs」が使えない?みたいです。
#/etc/rc.d/open-vm-tools start :: Starting Open Virtual Machine Tools [BUSY] ERROR: could not insert 'vmhgfs': Invalid argument [FAIL]
起動スクリプトから「vmhgfs」を削除
・36行目
for m in vmhgfs vmsync; do
↓
for m in vmsync; do
・63行目
for m in vmhgfs vmsync vmci; do
↓
for m in vmsync vmci; do
下記にように編集しましょう
#vi /etc/conf.d/open-vm-tools 36 for m in vmsync; do 37 VMMOD=`grep -w $m /proc/modules` 38 [ -z "$VMMOD" ] && \ 39 { modprobe $m 40 if [ $? -gt 0 ]; then 41 stat_fail 42 exit 1 43 fi; } 63 for m in vmsync vmci; do 64 VMMOD=`grep -w $m /proc/modules` 65 [ ! -z "$VMMOD" ] && rmmod $m 66 if [ $? -gt 0 ]; then 67 stat_fail 68 exit 4 69 fi 70 done
さて起動してみましょう
#/etc/rc.d/open-vm-tools start :: Starting Open Virtual Machine Tools [DONE]
起動出来ました。
ESXi上でゲストOSのIPアドレス等が取得できていることを確認します。
3)停止、再起動時のエラー対策
しかし停止、再起動すると
#/etc/rc.d/open-vm-tools stop :: Stopping Open Virtual Machine Tools [DONE] # #/etc/rc.d/open-vm-tools restart :: Stopping Open Virtual Machine Tools [FAIL] :: Starting Open Virtual Machine Tools [DONE]
と、エラーしてしまいます。
起動スクリプトに「vmci」を追加
・36行目
for m in vmsync; do
↓
for m in vmsync vmci; do
下記にように編集しましょう
#vi /etc/conf.d/open-vm-tools 36 for m in vmci vmsync; do 37 VMMOD=`grep -w $m /proc/modules` 38 [ -z "$VMMOD" ] && \ 39 { modprobe $m 40 if [ $? -gt 0 ]; then 41 stat_fail 42 exit 1 43 fi; }
見てわかるように、63行目の停止時にはrmmod vmciしてるけど、
36行目の起動時にはmodprobe vmciしてないのが原因です。
再度、再起動させてみます。
#/etc/rc.d/open-vm-tools restart :: Stopping Open Virtual Machine Tools [FAIL] :: Starting Open Virtual Machine Tools [DONE] #/etc/rc.d/open-vm-tools restart :: Stopping Open Virtual Machine Tools [DONE] :: Starting Open Virtual Machine Tools [DONE]
一回目で「FAIL」しているのは、「vmci」が読み込まれていないのに
rmmodしているためです。
これでうまく動かすことが出来ました。
さすがに再コンパイルしなきゃならんとは
思わなかった。。。。
[tegaki]時間かかりました。。w[/tegaki]