这些天装虚拟机踩过的那些坑

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38696651/article/details/78948328
这几天在安装虚拟机,遇到了各种各样的问题,想了想还是记录下来吧,以免后面遇到了类似的问题自己却不记得。

1.虚拟机访问PC机的文件的常见方式是文件共享,通过虚拟机->设置->选项->共享文件夹可以设置文件共享。但是我的选项按钮却是灰色的选不了。上网查了一下要安装VMware Tools。于是我按照如下步骤安装:

cd /media/caoj/VMware\ Tools/
cp VMwareTools-9.6.1-1378637.tar.gz /tmp
tar -xzvf VMwareTools-9.6.1-1378637.tar.gz
cd vmware-tools-distrib/
./vmware-install.pl

安装过程中报错了,但是我没有管它什么错误,一路回车下去,设置了共享文件夹,然后重启虚拟机。结果进入到虚拟机下面的共享文件夹(cd /mnt/hgfs/)里面什么文件也没有。按照网上的资料,先sudo apt-get install open-vm-dkms,然后sudo mount -t vmhgfs .host:/ /mnt/hgfs,还是没有什么用。这个时候我想可能是刚才安装的时候的报错引起的。于是翻看了报错的信息。

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c: Infunction ‘HgfsPackDirOpenRequest’:

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c:417:26:error: ‘struct file’ has no member named ‘f_dentry’

                      file->f_dentry) < 0) {

                          ^

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c: Infunction ‘HgfsDirLlseek’:

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c:707:32:error: ‘struct file’ has no member named ‘f_dentry’

   struct dentry *dentry = file->f_dentry;

                               ^

In file included from/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c:39:0:

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c: Infunction ‘HgfsReaddirNextEntry’:

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c:993:31:error: ‘struct file’ has no member named ‘f_dentry’

   si = HGFS_SB_TO_COMMON(file->f_dentry->d_inode->i_sb);

                               ^

/tmp/modconfig-VTzwHO/vmhgfs-only/module.h:89:62:note: in definition of macro ‘HGFS_SB_TO_COMMON’

 #define HGFS_SB_TO_COMMON(sb)             ((HgfsSuperInfo *)(sb)->s_fs_info)

                                                              ^

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c:1082:26:error: ‘struct file’ has no member named ‘f_dentry’

         *entryIno = file->f_dentry->d_inode->i_ino;

                         ^

In file included from/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c:30:0:

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c:1088:44:error: ‘struct file’ has no member named ‘f_dentry’

         *entryIno = compat_parent_ino(file->f_dentry);

                                            ^

/tmp/modconfig-VTzwHO/vmhgfs-only/./shared/compat_fs.h:120:46:note: in definition of macro ‘compat_parent_ino’

 #define compat_parent_ino(dentry) parent_ino(dentry)

                                              ^

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c:1093:52:error: ‘struct file’ has no member named ‘f_dentry’

     *entryIno = HgfsGetFileInode(&entryAttrs,file->f_dentry->d_inode->i_sb);

                                                    ^

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c: Infunction ‘HgfsDoReaddir’:

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c:1173:13:error: ‘struct file’ has no member named ‘f_dentry’

      !(file->f_dentry) ||

             ^

/tmp/modconfig-VTzwHO/vmhgfs-only/dir.c:1174:13:error: ‘struct file’ has no member named ‘f_dentry’

      !(file->f_dentry->d_inode)) {

             ^

make[2]: ***[/tmp/modconfig-VTzwHO/vmhgfs-only/dir.o] Error 1

make[1]: ***[_module_/tmp/modconfig-VTzwHO/vmhgfs-only] Error 2

make[1]: Leaving directory`/usr/src/linux-headers-3.19.0-25-generic'

make: *** [vmhgfs.ko] Error 2

make: Leaving directory`/tmp/modconfig-VTzwHO/vmhgfs-only'

如上面所示,安装过程中报了一堆的错误。于是又在网上搜资料,按照别人的资料想把错误一个一个改过来,发现改完了一编译还是有一堆其他地方的错误。这下我只能放弃这个办法了。
后面我就上github找找相关的资料,一搜果然有关于VMware Tools的资料。按照那个项目的要求先下载源码然后安装,果然ubuntu下面的文件共享功能就弄好了。下面是具体的步骤:

sudo git clone https://github.com/rasa/vmware-tools-patches.git
cd vmware-tools-patches/
sudo ./patched-open-vm-tools.sh 
reboot

2.开始在ubuntu下访问U盘里的资料,插上U盘,右键点击虚拟机右下角的那个灰色的U盘图标,连上虚拟机,好像没有什么反应。过了半天才弹出了一个“虚拟机USB设备连接失败,驱动程序错误”的提示,于是又去百度。百度了一下可能的原因是:VMware USB Arbitration Service服务没有启动。于是我查看了一下自己的电脑的服务,这个服务已经开启了,并不是这个原因。提示说的是驱动问题,于是再去百度。有资料说如果虚拟机下的USB设备安装成功的话,在我的电脑->设备管理器->通用串行总线控制器下面会有一个VMware USB Device的驱动显示,我看了看,我的下面还真没有这个驱动的存在。
于是我安装了驱动人生这个软件,重新检测了一下外设驱动,直接自动下载安装了VMware USB Device这个驱动。再进去虚拟机就能正常检测到USB设备了。

3.我在公司的电脑上安装了虚拟机和ubuntu系统,用SecureCRT远程登录公司的服务器查看和编译代码。但是公司的服务器上的很多软件的版本低,有的软件也没有。在操作vim的时候觉得鼠标很不好用,光标不能随着鼠标的点击而移动,于是设置.vimrc文件,设置 set mouse=a,光标倒是可以正常移动了,但是鼠标的粘贴复制功能也没有了,那就用快捷键吧。
于是"vmap <C-c> "+y", imap <C-v> <Esc>"+p, 发现系统剪切板的粘贴复制功能没有。“+”代表一个寄存器,粘贴复制就是读写这个寄存器。用:reg命令查看,我的vim没有这个寄存器,是vim版本的问题。但是公司的服务器又不允许我随便更新或者安装软件,所以就通过读写文件的方式来实现,如下所示:

vmap <C-c> :w! ~/copy.txt<CR>
nmap <C-v> :r ~/copy.txt<CR>

猜你喜欢

转载自blog.csdn.net/weixin_38696651/article/details/78948328