Windows8にVMWare PlayerつっこんでCentOS 7.2 を入れた話
掲題のとおりなんだけど、うまくいかなくて、無理やり解決させたので、メモ
前座
VMWare Workstation Playerなるものがあって、これをWindows8につっこんで、Cent OS 7.2を入れようとした。んで、割りと途中まではうまくいっていて、Windows側からVMにディレクトリ共有して、マウントしようと思ったら、ハマった。なぜか解決策がなかなか出なかった、
エラー詳細
ディレクトリを共有させるんだけど、要はvmware-install.plを動作させる。以下がまとまっていて、わかりやすい。
VM上のCentOSとホストOS(Windows7)とでファイル共有したメモ - MofuMofuFarm
色々むにゃむにゃ動くんだけど、ここで以下エラー。
/tmp/modconfig-CXZXGV/vmhgfs-only/page.c:1649:23: エラー: 関数 ‘wait_on_bit’ への引数が多すぎます TASK_UNINTERRUPTIBLE); ^ In file included from include/linux/mmzone.h:9:0, from include/linux/gfp.h:5, from include/linux/mm.h:9, from include/linux/pagemap.h:7, from /tmp/modconfig-CXZXGV/vmhgfs-only/page.c:28: include/linux/wait.h:1044:1: 備考: ここで宣言されています wait_on_bit(void *word, int bit, unsigned mode) ^ make[2]: *** [/tmp/modconfig-CXZXGV/vmhgfs-only/page.o] エラー 1
なんかライブラリの生成に失敗しているようだ。
同様のエラーは以下記事でも報告されている。
CentOS 7.3 & VMware Tools でファイル共有機能の不具合 « minor tranquilizer
解決
で、自分は上記記事でなくて、こちらを参考にした。
CentOS 7 安装 vmware-tools-懂客-dongcoder.com
中国語なので、超訳(原文は何言っているかわからないが、試行錯誤した結果)。
ソースを取得する。
以下を解凍する。
vmware-tools-distrib/lib/modules/source/vmhgfs.tar
すると、vmhgfs-onlyを入手できる。
ソース修正
vmhgfs-only/page.cの1639行付近を以下のように修正
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) + #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
保存しておく。
もとの場所にもどす。
vmhgfs-onlyをvmhgfs.tarに固め(ファイル名に注意)、lib/modules/source/vmhgfs.tarに上書きする。
あとがき
普段Windowsに寄生するタイプの仮想環境なんて使わないから、ビビりながら使ってたが、こんなところでハマるとは。。あんまり日本語の情報でてこないってことはVMware自体のユーザが少ないってことなのかなあ。みんなVirtualBoxにうつったのか、もしくはクラウドなんかをホームコンピューティングの目的で借りちゃったりしてるのかもしれないな。