■LennyからSqueezeへアップグレード後のvmplayerの修正 ※既知の問題ではあるが、Squeezeにしてから仮想マシンを立ち上げるのは初めてだった。 $ vmrun -T player start ~/vmware/vmsqueeze/vmsqueeze.vmx nogui Error: Unknown error ■原因はSqueezeへのアップグレード時に「linux-headers」を削除のみ行ったことにある。 アップグレード時のログから確認できるのは以下だけだった。 # grep linux upgrade-lenny.script* | grep "image\|headers" upgrade-lenny.script1:linux-image-2.6-amd64 (2.6.32+29) を設定しています ... upgrade-lenny.script1:Found linux image: /boot/vmlinuz-2.6.32-5-amd64 upgrade-lenny.script1:Found linux image: /boot/vmlinuz-2.6.26-2-amd64 ■インストール時に必要なものについては以前にも書いた。 debian squeezeにvmplayer4をインストールする http://d.hatena.ne.jp/labunix/20111106 ■gccはアップグレードされているので、linux-headersを導入 $ gcc --version | head -1 gcc (Debian 4.4.5-8) 4.4.5 $ apt-cache search linux-headers-`uname -r` linux-headers-2.6.32-5-amd64 - Header files for Linux 2.6.32-5-amd64 $ sudo apt-get install linux-headers-`uname -r` $ find /usr/ -name linux-headers-2.6* -type d -print /usr/src/linux-headers-2.6.26-2-common /usr/src/linux-headers-2.6.32-5-amd64 /usr/src/linux-headers-2.6.32-5-common /usr/src/linux-headers-2.6.26-2-amd64 /usr/share/doc/linux-headers-2.6.26-2-common /usr/share/doc/linux-headers-2.6.32-5-amd64 /usr/share/doc/linux-headers-2.6.32-5-common /usr/share/doc/linux-headers-2.6.26-2-amd64 ■「libgtkmm-dev」も無かった。 $ apt-cache search libgtkmm libgtkmm-2.4-dbg - C++ wrappers for GTK+ (debug symbols) libgtkmm-2.4-dev - C++ wrappers for GTK+ (development files) libgtkmm-2.4-1c2a - GTK+ 用 C++ ラッパ (共有ライブラリ) libgtkmm-2.4-doc - GTK+ 用 C++ ラッパ (ドキュメンテーション) $ sudo apt-get install libgtkmm-dev $ dpkg -L libgtkmm-2.4-dev | wc -l 586 ■vmplayerの起動、コンパイル 起動すると、コンパイルが始まる。ついでに4.0.2のアップグレード。 # vmplayer & ■VIXは別途ダウンロード、インストールしたが、vmnetの起動に失敗した。 $ vmware-installer -l Product Name Product Version ==================== ==================== vmware-vix 1.11.1.528992 vmware-player 4.0.2.591240 $ sudo vmware-installer -i VMware-VIX-1.11.2-591240.x86_64 $ vmware-installer -l ==================== ==================== vmware-player 4.0.2.591240 vmware-vix 1.11.2.591240 # /etc/init.d/vmware restart | grep failed Virtual ethernet failed ■インストーラのログからも失敗していることが分かる。 裏で「Unknown Error」となったvmxが動いているままとして、サービスの停止に失敗したようだ。 # grep -i "Error" /var/log/vmware-installer [2011-11-06 23:09:35,791] Ignored execution error: [Errno 2] No such file or directory when running command: [None, 'stoppable'] raise AbortError('Installation was aborted') AbortError: Installation was aborted update-rc.d: error: insserv rejected the script header [2012-04-01 22:10:58,597] Error removing component /tmp/vmis.Rh1K50/install/vmware-installer. # grep -B1 "Errno" /var/log/vmware-installer [2011-11-06 23:09:35,781] Cannot use vmware-app-control to shut down open VMs, defaulting to fallback message. [2011-11-06 23:09:35,791] Ignored execution error: [Errno 2] No such file or directory when running command: [None, 'stoppable'] ■やり直し # vmware-installer -l Product Name Product Version ==================== ==================== vmware-player 4.0.2.591240 vmware-vix 1.11.2.591240 # vmware-installer -u vmware-vix --console # vmware-installer -u vmware-player --console All configuration information is about to be removed. Do you wish to keep your configuration files? [yes]: yes ■GUIでインストール 今度は出来た。 # /bin/sh VMware-Player-4.0.2-591240.x86_64 # /sbin/ifconfig vmnet8 > /dev/null && echo "ok" ok # /bin/sh VMware-VIX-1.11.2-591240.x86_64 # /etc/init.d/vmware-USBArbitrator stop # /etc/init.d/vmware stop # /etc/init.d/vmware start Stopping VMware services: VMware Authentication Daemon done VM communication interface socket family done Virtual machine communication interface done Virtual machine monitor done Blocking file system done Starting VMware services: Virtual machine monitor done Virtual machine communication interface done VM communication interface socket family done Blocking file system done Virtual ethernet done VMware Authentication Daemon done Shared Memory Available done # /etc/init.d/vmware-USBArbitrator start # exit $ ps -ef | grep vmware | cut -c 49- | sed s/"\-lf"/"& \\\\\n "/g /usr/bin/vmnet-dhcpd -s 6 -cf /etc/vmware/vmnet1/dhcpd/dhcpd.conf -lf \ /etc/vmware/vmnet1/dhcpd/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet1.pid vmnet1 /usr/bin/vmnet-natd -s 6 -m /etc/vmware/vmnet8/nat.mac -c /etc/vmware/vmnet8/nat/nat.conf /usr/bin/vmnet-dhcpd -s 6 -cf /etc/vmware/vmnet8/dhcpd/dhcpd.conf -lf \ /etc/vmware/vmnet8/dhcpd/dhcpd.leases -pf /var/run/vmnet-dhcpd-vmnet8.pid vmnet8 /usr/sbin/vmware-authdlauncher /usr/lib/vmware/bin/vmware-unity-helper --daemon /usr/bin/vmware-usbarbitrator grep vmware ■ネットワーク設定 以前にも行っているので、特に問題は無い。 Debian Lenny-amd64版のシステム起動パーティションが壊れた http://d.hatena.ne.jp/labunix/20111020 $ ls -l /usr/lib/vmware/bin/vmware-netcfg lrwxrwxrwx 1 root root 29 2012-04-01 23:10 /usr/lib/vmware/bin/vmware-netcfg -> /usr/lib/vmware/bin/appLoader # /usr/lib/vmware/bin/vmware-netcfg ■仮想マシンのゲストOSを起動する 以前は出なかったエラーが出るようになった。(CentOSでは毎回出ていたが。。。) $ vmrun -T player list Total running VMs: 0 $ vmrun -T player start vmware/vmsqueeze-amd64i/vmsqueeze-amd64i.vmx nogui Xlib: extension "XVideo" missing on display "localhost:10.0". Xlib: extension "XVideo" missing on display "localhost:10.0". ■以下のように対処 「Np protocol specified」が出てるけど、失敗しているわけでは無い。 $ ps -ef | grep gdm | cut -c 49- /usr/sbin/gdm /usr/sbin/gdm /usr/bin/X :0 -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt8 /usr/lib/gdm/gdmgreeter grep gdm $ env DISPLAY=":0" vmrun -T player start vmware/vmsqueeze-amd64i/vmsqueeze-amd64i.vmx nogui && echo "ok" No protocol specified ok $ ps -ef | grep vmx | cut -c 49- | awk '{print $1}' /usr/lib/vmware/bin/vmware-vmx grep ■一応調べてみる。あ、gccのバージョンが違う。 $ find /var/log -type f -exec sudo -u root grep vmware {} \; 2>&1 | \ grep "DISPLAY" | cut -c 49- | sed s/" "/"\n"/g | \ grep bin | sort | uniq '/usr/bin/vmware-modconfig' --gcc='/usr/bin/gcc-4.3' /usr/lib/vmware/bin/vmware-netcfg COMMAND=/bin/sh COMMAND=/usr/bin/env $ sudo env DISPLAY=:0 /etc/init.d/vmware restart $ sudo env DISPLAY=:0 /etc/init.d/vmware-USBArbitrator restart ■あれ、「LSB tag」に対応していなかった。 以下からinitスクリプトにコピペ。 vmwareのinitスクリプト修正for Squeeze http://d.hatena.ne.jp/labunix/20120114 $ sudo insserv -v 2>&1 | grep -i "warn\|error\|crit" insserv: warning: script 'K01vmware' missing LSB tags and overrides insserv: warning: script 'S50vmware-USBArbitrator' missing LSB tags and overrides insserv: warning: script 'vmware' missing LSB tags and overrides insserv: warning: script 'vmware-USBArbitrator' missing LSB tags and overrides $ sudo insserv -v 2>&1 | grep -i "warn\|error\|crit" && echo "ok" ok ■他に特にエラーもないので、しばらく様子見。 もう一台アップグレードではないクリーンインストールのSqueezeがあるので、 gccのバージョンの件も含めて、後日確認することにします。。。 $ sudo env DISPLAY=:0 /etc/init.d/vmware restart $ sudo env DISPLAY=:0 /etc/init.d/vmware-USBArbitrator restart $ env DISPLAY=":0" vmrun -T player start vmware/vmsqueeze-amd64i/vmsqueeze-amd64i.vmx nogui && echo "ok" No protocol specified ok