VMware Workstation 10+Centos7(64位)共享文件夾


這一兩天一直在研究VMware Workstation自帶的共享文件夾的功能,期間出了不少問題,在公司搭建的是vm10.0+centos07,在家搭建的是VM 7+centos07...

公司環境搭建:

共享訪問方式:

1.VM10掛載的操作系統和主機系統當做一個局域網,可以通過瀏覽網絡來進行訪問,當然這種方式沒有用VM10自帶的共享文件夾訪問舒暢

2.用VM10的共享功能,

一、vm10.0+centos07

首先,在VM10中選擇安裝

這樣會在centos中安裝一個cdrom,具體的路徑為:/run/media/root/VMware Tools,上面有個VMwareTools-9.6.2-1688356.tar.gz的文件包。,

我們可以先用tar命令進行歸檔

第一步:cp  :/run/media/root/VMware Tools/VMwareTools-9.6.2-1688356.tar.gz  /tmp,把這個文件拷貝到tmp下

第二步:cd  /tmp進入臨時目錄,ls 查看剛才的文件是否在這個目錄下
第三步:tar  zxvf  VMwareTools-5.5.0-18463.tar.gz 解壓這個文件
第四步:cd  vmware-tools-distrib進行vmware-tools-distrib目錄
第五步:./vmware-install.pl 執行這個文件,出現提示就回車
在第五步安裝過程中出現幾個錯誤:
一直回車,出現如下錯誤信息

Searching for GCC...

The path "" is not valid path to the gcc binary.

Would you like to change it? [yes]

提示GCC未安裝.按ctrl+z退出。安裝GCC

yum install gcc gcc-c++ automake make(將編譯環境一次裝好)

GCC安裝完成后,重新第五步安裝。出現如下錯誤信息:

Searching for a valid kernel header path...

The path "" is not valid.

Would you like to change it? [yes]

提示找不到kernel header,在這個錯誤中,花費了不少時間。主要原因是版本的不一致性,剛開始我根據網上的操作

yum install kernel-devel 安裝了kernel-devel(devel是開發的英文前綴),后重復第五步,還是不行。。,后面經過多次找資料才發現版本不統一。

先查找centos的kernel版本:uname -r 版本號為3.10.0-123.el7.x86_64

但我通過命令行查找安裝的kernel-devel 和kernel-headers如下

kernel-devel: 命令:rpm -qa|grep kernel-devel 輸出:kernel-devel-3.10.0-123.13.2.el7.x86_64

kernel-headers:命令:rpm -qa|grep kernel-headers 輸出:kernel-headers-3.10.0-123.13.2.el7.x86_64

具體版本和centos內核的版本有一些出入,如果主版本是相同的,但還是找不到kernel-header.於是我打算安裝和kernel相同的版本

yum install kernel-devel-3.10.0-123.el7.x86_64 安裝完成后繼續第五步,可能找到了,具體提示如下:

path to the kernel headers of the running kernel.

Would you like to change it? [no]

直接回車。一路向下。。。期間我一直敲回車,結果報錯了也不在意。導致沒有成功實現共享。

其實在安裝完成后,無論成功失敗可以通過vmware-config-tools.pl進行查看。我再一次查看,看到了如下信息:

/tmp/modconfig-ygOywn/vmhgfs-only/inode.c: 在函數‘HgfsPermission’中: /tmp/modconfig-ygOywn/vmhgfs-only/./shared/compat_dcache.h:57:38: 錯誤:‘struct dentry’沒有名為‘d_count’的成員 #define compat_d_count(dentry) dentry->d_count ^ /tmp/modconfig-ygOywn/vmhgfs-only/inode.c:1904:23: 附注:in expansion of macro compat_d_count’ int dcount = compat_d_count(dentry);

居然編譯的時候報錯了:只能修改源碼compat_dcacche中的.h文件

[root@localhost ~]# cd /tmp/vmware-tools-distrib/lib/modules/source/

[root@localhost source]# ls

legacy vmblock.tar vmhgfs.tar vmsync.tar vmxnet.tar pvscsi.tar vmci.tar vmmemctl.tar vmxnet3.tar vsock.tar

[root@localhost source]# tar -xf vmhgfs.tar   --解壓vmhgfs.tar,里面有個vmhgfs-only文件夾

[root@localhost source]# ls

legacy vmblock.tar vmhgfs-only vmmemctl.tar vmxnet3.tar vsock.tar pvscsi.tar vmci.tar vmhgfs.tar vmsync.tar vmxnet.tar

[root@localhost source]# cd vmhgfs-only/--進入解壓后目錄

[root@localhost vmhgfs-only]# ls backdoor.c dir.c hgfsTransport.h request.h ........................................

[root@localhost vmhgfs-only]# cd shared/

[root@localhost shared]# vim compat_dcache.h--打開頭文件

#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 11, 0)
#define compat_d_count(dentry) d_count(dentry)
#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)
#define compat_d_count(dentry) dentry->d_count
#else
#define compat_d_count(dentry) atomic_read(&dentry->d_count);
#endif

這里報錯了,不知道為什么這樣,將#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 38)下面的#define改成

#define compat_d_count(dentry) d_count(dentry),就可以了

改完源碼后,重新歸檔:

回到source文件夾

[root@localhost source]# tar -cf vmhgfs.tar vmhgfs-only/

[root@localhost source]# ls

legacy vmblock.tar vmhgfs-only vmmemctl.tar vmxnet3.tar vsock.tar pvscsi.tar vmci.tar vmhgfs.tar vmsync.tar vmxnet.tar [root@localhost source]# rm -rf vmhgfs-only/

[root@localhost source]# ll

總用量 8456

drwxr-xr-x. 1 root root 162 3月 22 2014 legacy

-rw-r--r--. 1 root root 1392640 10月 10 23:02 vmhgfs.tar .........................

[root@localhost source] cd  /tmp/vmware-tools-distrib

 [root@localhost vmware-tools-distrib]# ./vmware-install.p

重新安裝。這下成功了。。。

然后我們設置vmware的共享文件夾:

虛擬機設置->選項,如下:

添加共享文件夾,后。重啟centos

后,我們就能在/mnt/hgfs/下看到共享的文件了

[root@localhost source]# ll /mnt/hgfs/
總用量 0
drwxrwxrwx. 1 root root 0 1月 19 10:24 sharefile

二.VM 7+centos07..

在公司安裝成功后,回家安裝,直接安裝kernel-devel-3.10.0-123.el7.x86_64,安裝成功后,按理說和內核版本已經是一致了

但還是會報

Searching for a valid kernel header path...

The path "" is not valid.

Would you like to change it? [yes]

,后面我直接安裝了最新的kernel-devel

yum install kernel-devel .后這個問題才解決

不清楚為什么內核版本一致了還需要安裝最新版本。就是centos需要兩個版本

kernel-devel-3.10.0-123.el7.x86_64和kernel-devel-3.10.0-123.13.2.el7.x86_64

這個問題解決后,一路向上卻報了很多源碼錯誤,后面聽說網上說VM7不支持一些新的內核。才沒向下研究了。。。。

 VM10下載地址:http://pan.baidu.com/s/1hqf7etu

 centos7下載地址:http://pan.baidu.com/s/1nQMGe

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM