ph033378 发表于 2018-6-3 11:04:06

VMware CentOS 7 安装 VMware Tools(修复不能与主机共享文件的错误) 与 控制台分辨率设置

  在 VMware 中最小化安装完 CentOS 7, 正常安装 VMware Tools, 发现在设置主机共享目录的时候提示”无法更新运行时文件夹共享状态:在客户机操作系统内装载共享文件夹文件系统时出错” , 找了很久终于搞定.
系统环境
  VMware Workstation Pro 12.5.2
CentOS 7.3 minimal
修复 bug 安装 VMware Tools
  如按菜单上的 “安装 VMware Tools” 安装到最后会看到几处错误提示, 都是有关 “wait_on_bit” 的, 最终结果就是 vmhgfs 组件编译出错, 不能共享文件夹.
  1
  2
  warning: passing argument 3 of ‘wait_on_bit’ ...
  error: too many arguments to function ‘wait_on_bit’ ...
  要解决这个问题需要修改 hgfs 相关的源码.
  启动虚拟机, 以 root 用户登录
  安装必备软件
  1
  yum install perl gcc kernel-headers kernel-devel
  先安装 open-vm-tools
  1
  2
  #此 vm tools 提供除了与主机文件共享外的其他功能
  yum install open-vm-tools
  创建光盘挂载点
  1
  mkdir /mnt/cdrom
  点击 vm 菜单上的 虚拟机->安装 VMware Tools 项, 将 VMware Tools 光盘载入光驱.
  挂载光盘到刚创建的目录
  1
  mount /dev/cdrom /mnt/cdrom
  进入挂载后的目录, 找到 VMwareTools-xxxx.tar.gz 文件, 将它解压到其他目录, 我这里解压到 /root 下
  1
  2
  cd /mnt/cdrom
  tar zxf VM*.gz -C /root
  修改 hgfs 源码
  1
  2
  3
  4
  5
  6
  7
  #进入源码目录
  cd /root/vmware-tools-distrib/lib/modules/source
  #解压 hgfs 源码
  tar xf vmhgfs.tar
  cd vmhgfs-only
  #编辑 page.c 文件, 如果没有安装 nano 用 yum 安装
  nano page.c
  按 Ctrl + w 打开搜索框, 输入以下内容, 按回车搜索.
  1
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
  多次 Ctrl + w 查找, 直到找到包含以下内容的代码
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  int
  HgfsWbRequestWait(HgfsWbPage *req)
  {
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
      return wait_on_bit_io(&req->wb_flags,
                          PG_BUSY,
                          TASK_UNINTERRUPTIBLE);
  #elif 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_queue,
                 !test_bit(PG_BUSY,&req->wb_flags));
      return 0;
  #endif
  }
  将 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) 中的 3, 19, 0 替换为 3, 10, 0
  1
  #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
  保存退出
  1
  2
  3
  cd ..
  #将改好的代码重新打包
  tar cf vmhgfs.tar vmhgfs-only
  开始安装
  1
  2
  cd /root/vmware*
  ./vmware-install.pl
  一路回车,直到安装完毕.
  重启系统
  1
  reboot
  设置共享文件夹, 之后再次重启系统, 共享目录就生效了
  1
  2
  reboot
  ls /mnt/hgfs
修改控制台分辨率
  刚安装的系统 分辨率非常小, 不方便操作, 这里修改分辨率为 1152 * 864 32位色.
  CentOS 7 使用 grub2 启动, 修改分辨率的参数放在 /etc/default/grub 文件中
  1
  nano /etc/default/grub
  在 GRUB_CMDLINE_LINUX=”xxxx” 项最后插入 vga=0x342 (分辨率为 1152*864*32)
  1
  GRUB_CMDLINE_LINUX="xxxx vga=0x342"
  保存退出
  令配置生效
  1
  grub2-mkconfig -o /root/grub2/grub.cfg
  重启系统就能看到分辨率变化了.
  1
  reboot
  如果想查看所有支持的分辨率, 可将0x342改为ask, 当系统启动时会列出所有分辨率供选择.
  记住要改的分辨率对应的三位数编码再按上面的方法改 /etc/default/grub 就可以了.
  
页: [1]
查看完整版本: VMware CentOS 7 安装 VMware Tools(修复不能与主机共享文件的错误) 与 控制台分辨率设置