宝马娱乐在线112222 > 网络应用 > Fedora 8下安装vmware tools后一些问题的解决宝马娱乐

原标题:Fedora 8下安装vmware tools后一些问题的解决宝马娱乐

浏览次数:145 时间:2019-10-09

问题描述:当我们用vmware在本地机上,安装一个新的linux操作系统(比较流行的,Fedora8是其中之一)时,怎样使屏幕的分辨率高于800*600?怎样使鼠标在主机和客户机之间平滑地移动?怎样顺利地在二者之间共享文件?

使用VMware10.1搭建CentOS +Tomcat 笔记,vmware10.1centos

本以为装个tomcat很容易,但是没想到还是遇到了很多的问题,特此写下这篇笔记,为其他有需求的同学提供一些参考。

系统环境:Windows7 + VMWare 11.0准备工具:CentOS 7安装iso文件, apache tomcat以及JDK

操作步骤:

 

一、使用VMware安装好CentOS系统

  这一步不作详细叙述了,因为对大多数人来说太简单。

二、设置共享文件夹

  由于在离线状态下安装,所以一些工具需要从宿主机的共享文件夹里复制到虚拟机里来,我采用的是设置共享文件夹的方式,不知道其他同学有没有更好的方式。但就是在设置这个共享文件夹的时候出了很多的问题。

  我在安装系统的时候,系统是默认自动安装好VMtool的,但是不知道是什么原因,在我建立共享文件夹后,在/mnt/hgfs下没有我存好的文件。于是我在网上查找了原因,有网友说是因为gcc版本需要升级,但是我这是离线安装,gcc版本升级实在是不太好办。于是我另想办法,决定重新安装vmtools。在vmware选项里选择重新安装vmtools,然后进行了以下步骤

  1.mount /dev/cdrom /mnt/cdrom将vmtools挂载到cdrom文件夹

  2.将cdrom中的VMTool的tar文件拷贝到本地磁盘,然后用tar -zxf VMTool 进行解压

  3.解压之后运行其中的.pl文件

  4.出现一些需要确认的问题,一路Enter

  5.这时候问题来了,突然提示HgfsWbRequestWait函数里有一个wait_on_bit函数报错,具体的提示内容我没有拷贝下来。然后提示你如果继续请按Enter键,之后安装完毕。看了一下hgfs文件夹,依然空空如也。

  6.用百度搜索了一些解决办法,基本判定是vmtool的源代码文件出了问题。这个文件的位置在之前解压出来的vmware-tools-distrib/lib/modules/source目录下的Page.c文件。

  7.引用CSDN的博主kyolong的文章,链接——http://blog.csdn.net/a39206821/article/details/54313326

  文中提到:

  

通过查看后发现因为centos 7的Linux内核用的3.10版本,在函数 wait_on_bit_io()中有三个参数,而vmtool的代码在内核3.19后才用3个参数的wait_on_bit_io()函数,代码如下

   1639 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
   1640    return wait_on_bit_io(&req->wb_flags,
   1641                          PG_BUSY,
   1642                          TASK_UNINTERRUPTIBLE);
   1643 #elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
   1644    return wait_on_bit(&req->wb_flags,
   1645                       PG_BUSY,
   1646 #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)
   1647                       HgfsWbRequestWaitUninterruptible,
   1648 #endif
   1649                       TASK_UNINTERRUPTIBLE);
   1650 #else

 

个人推测,在其他linux版本中可能也会出现类是的问题,只要看看报错源码,如果是由于#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0),这种判断造成的报错,只要把宏改成当前的版本号,一般都能解决问题.

vmware-tools-distrib/lib/modules/source的目录下有不少tar文件,我是根据报错的提示

“/tmp/modconfig-71euqe/vmhgfs-only/page.c:1649:23: error: too many arguments to function ‘wait_on_bit’” 一个个去解压了找的

解压指令
tar xf vmhgfs.tar

修改目录下的page文件的1639行

   1639 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)

改为如下↓

   1639 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)

解压后修改完成打包指令
tar cf vmhgfs.tar vmhgfs-only

然后执行vmware-install.pl 问题解决

 

我按照这位博主的方法找到了这个文件,发现第1639行并不是文中的代码,而是一串长长的注释。于是我估计是版本的问题,我查了一下我使用的centos以及vmware的版本号,

uname -r 得到centos内核版本是3.10.0-514.e17.x86_64

cat /etc/redhat-release ,系统版本是 CentOS Linux release 7.3.1611 (Core)

Vmware版本是11.0.0 build-2305329

我又根据提示找到这个函数HgfsWbRequestWait

发现其实问题出在这

HgfsWbRequestWait(HgfsWbPage *req) // IN: request of page data to write
{
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
    return wait_on_bit(&req->wb_flags,PG_BUSY,
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)
                                     HgfsWbRequestWaitUninterruptible,
#endif
                                     TASK_UNINTERRUPTIBLE);
#else
    wait_event(req->wb_quque,
                    !test_bit(PG_BUSY, &req->wb_flags));
    return 0;
#endif
}

在第1619行,我把

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
    return wait_on_bit(&req->wb_flags,PG_BUSY,
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)
                                     HgfsWbRequestWaitUninterruptible,
#endif

改成了

#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 13)
    return wait_on_bit(&req->wb_flags,PG_BUSY,
                      HgfsWbRequestWaitUninterruptibl

             TASK_UNINTERRUPTIBLE);

是的,我把这个大于3.17.0的版本判断去掉了。因为我实在不理解为什么还要设置版本上限。

OK,打包压缩包,重新安装vmtool,没有再出现这个提示,再看看/mnt/hgfs文件夹,发现里面已经有内容了。至此,用vmware共享文件夹终于完成。




三、安装tomcat
  整体上这一步还是比较简单的,但还是遇到了一个意外的问题。
  1.安装jdk1.8
  Centos7默认自带openjdk,但是大家还是习惯性地使用oracle的jdk,所以我去官网下载了最新的jdk版本,进行安装。通过共享文件夹拷贝到本地磁盘,解压、修改文件名,一切都是这么流畅和自然。
  2.配置环境变量
  由于之前将jdk的文件都放在了usr/local/java路径下,所以我的配置方式如下:
  使用vim /etc/profile
  在末尾加入如下代码
  

JAVA_HOME=/usr/local/java
JRE_HOME=/usr/local/java/jre
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH

 

  之后保存文件,输入java -version 显示出了版本号,如果版本号没有变化试着重启一下系统就可以了。
  这个过程十分简单,但是之前不记得看了哪位仁兄写的配置代码修改了profile文件,结果配置错误导致所用系统自带的命令都无法运行,提示command not found
  查看了这位仁兄的文章,有了一个自救的办法
  误改profile文件command not found 自救方法
  输入
  export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
  后,命令就可以正常运行了,这时候赶快把profile改回来就可以了

 

http://www.bkjia.com/Javabc/1190172.htmlwww.bkjia.comtruehttp://www.bkjia.com/Javabc/1190172.htmlTechArticle使用VMware10.1搭建CentOS +Tomcat 笔记,vmware10.1centos 本以为装个tomcat很容易,但是没想到还是遇到了很多的问题,特此写下这篇笔记,为其他有...

答 案:安装vmware tools
二次问题:为什么很多人说即使安装了vmware tools,还是不能解决分辨率和共享文件的问题?
原理分析:究其原因,是vmware tools没有真正的安装成功。

  1. 我不推荐用rpm格式包直接安装,或者命令行,rpm -ivh vmware-tools.xxxx.rpm安装。原因是,安装时,并不提示具体的出错信息。

2.建议用源码安装包来安装。即使出错,我们还可以修改源码来进行重新编译。

源码安装步骤:

  1. 先解压vmware tools压缩包到某一目录下,比如:/opt/下,最后得到的目录为:/opt/vmware-tools-distrib

  2. 进入解压目录的 lib/modules/source下,分别解压 vmblock.tar 和 vmhgfs.tar 两个压缩包,解压后得到两个文件夹:vmblock-only, vmhgfs-only

  3. 先修改vmblock包源文件,进入 vmblock-only/linux下,修改两个文件:
    a. os.h文件,第79行,找到kmem_cache_create()函数定义,去掉其最后一个参数,只留5个参数(其定义见linux/slab.h)
    b. filesystem.c文件,第125行,去掉kmem_cache_create函数最后一个参数,并去掉前面一个参数后的逗号。

  4. 再修改vmhgfs包源文件,进入 vmhgfs-only下,修改如下两个文件:
    a. file.c文件,注释掉从第99行,#ifdef VMW_SENDFILE_NODE 开始到第101行的 .sendfile 定义。继续注释掉第1011行,result = generic_file_sendfile()函数调用。
    b. filesystem.c文件,去掉第693,704行kmem_cache_create函数的最后一个参数,并删除前一参数后的逗号.

  5. 保存上述两个包中修改的文件,若不能保存,可以先save as, 然后将原始文件删除掉,再改名回原始文件名即可。并且,将两个文件夹重新打包成 vmblock.tar 和 vmhgfs.tar。

6. 打开一terminal窗口,在先前的解压目录下如:/opt/vmware-tools-distrib/下,输入:./vmware_install.pl 开始安装。

  1. 一路按yes安装,但是到提示说系统的头(header files)文件位置时,输入以下路径:
    /usr/src/kernels/2.6.23.1-42.fc8-i686/include

本文由宝马娱乐在线112222发布于网络应用,转载请注明出处:Fedora 8下安装vmware tools后一些问题的解决宝马娱乐

关键词:

上一篇:在ubuntu7.10中使用上帝之眼-Google地球(组图)

下一篇:没有了