Ubuntu16.04 下共享Windows目录,用虚拟机自带包安装VMwareTools失败解决办法

VMWare workstation自带工具包“VMware Tools/”中的脚本:VMwareTools/vmware-tools-distrib/vmware-install.pl,安装VMwareTools失败,由于版本不匹配报错如下:

make[1]: Entering directory '/usr/src/linux-headers-4.15.0-45-generic'

Makefile:975: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel"
  CC [M]  /tmp/modconfig-CFDksW/vmhgfs-only/message.o
  CC [M]  /tmp/modconfig-CFDksW/vmhgfs-only/dir.o
/tmp/modconfig-CFDksW/vmhgfs-only/dir.c: In function ‘HgfsDirLlseek’:
/tmp/modconfig-CFDksW/vmhgfs-only/dir.c:717:16: error: ‘struct inode’ has no member named ‘i_mutex’
    mtx = &inode->i_mutex;
                ^
scripts/Makefile.build:332: recipe for target '/tmp/modconfig-CFDksW/vmhgfs-only/dir.o' failed
make[2]: *** [/tmp/modconfig-CFDksW/vmhgfs-only/dir.o] Error 1
Makefile:1551: recipe for target '_module_/tmp/modconfig-CFDksW/vmhgfs-only' failed
make[1]: *** [_module_/tmp/modconfig-CFDksW/vmhgfs-only] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.15.0-45-generic'
Makefile:120: recipe for target 'vmhgfs.ko' failed
make: *** [vmhgfs.ko] Error 2
make: Leaving directory '/tmp/modconfig-CFDksW/vmhgfs-only'

虽然有解决方法,但是比较繁琐,因此不采用自带脚本安装旧版本,而是从git库中获取新版本补丁,采用傻瓜式方法执行脚本来安装:

#确保 open-vm-tools没有安装

sudo apt-get remove open-vm-tools

#确保完成更新

sudo apt-get update

#确保安装git

sudo apt-get install git

#获取patch

sudo git clone https://github.com/rasa/vmware-tools-patches.git

#进入patch目录

cd vmware-tools-patches

#下载最新版本(补丁)

sudo ./download-tools.sh latest

#解压缩包

sudo ./untar-and-patch.sh

#运行编译脚本,编译并安装VMware Tools

sudo ./compile.sh

#脚本内容

kangruojin@kangruojin:~/vmware-tools-patches$ cat compile.sh  
#!/usr/bin/env bash

# compile and install VMware Tools

readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"  

if [[ ! -d vmware-tools-distrib ]]; then
  echo $0: Error: Directory not found: vmware-tools-distrib >&2
  exit 3
fi

if hash vmware-uninstall-tools.pl >/dev/null 2>&1; then
  sudo vmware-uninstall-tools.pl
fi

if [[ -n "$1" ]]; then
        VMWARE_INSTALL_OPTIONS="$1"
fi

pushd vmware-tools-distrib >/dev/null

if hash systemctl >/dev/null 2>&1; then
  echo "Creating empty init dirs for backwards compatibility"
  for x in {0..6}; do mkdir -p /etc/init.d/rc${x}.d; done
  sudo cp $SCRIPT_DIR/patches/vmware-tools.service /etc/systemd/system/
  sudo systemctl enable vmware-tools.service

  echo "Added and enabled VMware Tools systemd service"
fi

if sudo ./vmware-install.pl --help 2>&1 | grep -q 'force-install'; then
    VMWARE_INSTALL_OPTIONS="--force-install"
fi

sudo ./vmware-install.pl --default $VMWARE_INSTALL_OPTIONS
sudo ./bin/vmware-config-tools.pl --default

popd >/dev/null


kangruojin@kangruojin:~/vmware-tools-patches$ 

安装完毕,通过(虚拟机-->设置-->选项-->共享文件夹-->总是启用-->添加-->选择路径并设定共享文件夹名称-->下一步-->完成-->确定):

在/mnt/hgfs下便是共享的文件夹/目录:

#未挂载共享目录之前

kangruojin@kangruojin:/$ ls /mnt/hgfs/
ls: 无法访问'/mnt/hgfs/': 输入/输出错误

#挂载共享目录之后

kangruojin@kangruojin:/$ ls /mnt/hgfs/
workspace

kangruojin@kangruojin:/$ 

kangruojin@kangruojin:~$ cd /mnt/hgfs/workspace/
kangruojin@kangruojin:/mnt/hgfs/workspace$ ll
总用量 53
drwxrwxrwx 1 root root  4096 10月 20 15:52 ./
dr-xr-xr-x 1 root root  4192 3月  29 22:29 ../
drwxrwxrwx 1 root root  4096 9月  13  2018 linux-2.6.24/
drwxrwxrwx 1 root root  4096 9月  13  2018 pgp262ii/
drwxrwxrwx 1 root root  4096 9月  14  2018 sdk-xgs-robo-5.6.1/
drwxrwxrwx 1 root root  4096 9月  13  2018 SourceCode/
drwxrwxrwx 1 root root 28672 7月  20  2018 wireshark-2.6.2-source-code/
kangruojin@kangruojin:/mnt/hgfs/workspace$ 

参考Blog:ubuntu 客户机安装VMware tools时出现编译错误,无法与主机共享文件

后来觉得把要共享给Ubuntu的S3C2440,放在原来的H:/workspace/S3C2440/下再共享,不太安全,结构也不太清晰,所以在Windows上创建了一个VHD,将该VHD拆了几个盘(O、P、Q)再把S3C2440放在O盘下,进行共享;之后再在Linux中用户根目录下,执行"ln /mnt/hgfs/O/S3C2440/ -s workspace"为挂载的目标目录在默认用户根目录下创建一个软链接,便于访问:

### 回答1: active: failed (result: start-limit) 的意思是服务启动失败,原因是启动次数达到了限制。这通常是由于服务配置错误或依赖项问题导致的。需要检查服务的配置和依赖项,解决问题后重新启动服务。 ### 回答2: 这是一个系统错误,通常会在尝试启动服务或应用程序时出现。它的字面意思是:活动:失败(结果:启动限制)。消息中的“active”指的是正在尝试启动的服务或应用程序,“failed”指的是启动失败,“result: start-limit”则意味着启动尝试的次数达到了系统设定的限制。 这个错误可能由多种原因引起,其中括: 1. 配置错误:这可能是最常见的原因之一。如果服务或应用程序的配置文件出现问题,系统将无法正确启动。 2. 端口冲突:如果多个服务或应用程序尝试在同一端口上监听连接,就会发生端口冲突。这会导致某些服务或应用程序无法启动。 3. 资源限制:如果系统资源(如内存、磁盘空间等)不足,某些服务或应用程序可能会无法启动。 要解决这个错误,需要查找并排除问题的根本原因。通常最好的方法是查看相关的日志文件,以了解更多的细节,并尝试确定错误的确切来源。如果出现问题,可以尝试重新配置服务或应用程序、解决端口冲突、增加系统资源等。 ### 回答3: active: failed (result: start-limit) 是一个在Linux系统中常见的错误消息。它的意思是某个服务或应用程序启动失败,原因是超出了系统设置的最大启动次数限制。 在Linux系统中,启动一个服务或应用程序,会通过systemd进行管理。当一个服务或应用程序的启动失败,systemd会将其状态标记为active: failed,并尝试重新启动该服务或应用程序。 如果同一服务或应用程序在短时间内启动失败多次,systemd会认为该服务或应用程序出现了问题,并将其状态标记为start-limit,表示已达到最大启动次数限制,不再允许尝试启动。 为了解决这个问题,我们可以通过以下几个步骤来检查和修复服务或应用程序的启动问题: 1. 查看日志文件,找到启动失败的原因,一般可以在/var/log目录下找到相关日志文件。 2. 根据日志文件中的错误信息,尝试修复启动问题,例如修改配置文件,更新依赖关系等等。 3. 在系统的systemd配置文件中,修改最大启动次数限制,使得系统可以尝试更多次的启动,以便处理启动问题。 总之,active: failed (result: start-limit)错误消息意味着系统已经尝试多次启动同一服务或应用程序,但是都失败了,这时候我们需要通过查看日志文件,找到启动失败的原因,并尝试修复它。同时,适当调整系统的启动次数限制,可以提高系统的可靠性和稳定性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值