読者です 読者をやめる 読者になる 読者になる

Meblog

このブログ記事は個人の見解であり、所属する組織の公式見解ではありません

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に上書きする。

スクリプト再実行

vmware-install.plを再実行。

あとがき

普段Windowsに寄生するタイプの仮想環境なんて使わないから、ビビりながら使ってたが、こんなところでハマるとは。。あんまり日本語の情報でてこないってことはVMware自体のユーザが少ないってことなのかなあ。みんなVirtualBoxにうつったのか、もしくはクラウドなんかをホームコンピューティングの目的で借りちゃったりしてるのかもしれないな。