Vmware--unable to install all modules

本文讲述了在Linux环境下安装VMware时遇到的系统服务脚本路径设置问题,如何因选择非默认路径导致后续模块安装失败,并提供了新建目录迁移脚本和官方文档查阅的解决办法。

问题简述
      在linux下安装VMware-Workstation一般是通过去官网下载相应的linux版本,下载的是一个可执行文件,一般来说,授予该文件执行权限,直接执行就可以安装了,但由于系统配置的原因,有时候会出现这样一个选项需要用户填入:

由于是解决了问题才写的博客,没有截屏
大致内容是让你选择 System service scripts的路径,默认是 /etc/init.d

      重要的来了,如果你使用默认的路径 /etc/init.d没有问题,但如果你选择了另一个路径,比如我的是 /etc/initVM.d,虽然可以安装,但我的script还是被放到了 /etc/init.d 目录下,这时麻烦就出现了,虽然script被放到了 /etc/init.d 目录下,但刚开始我选择的存放路径是另一个,这个信息已经写入到了vmware的主配置文件里,这里就埋下了隐患,后面解释。
      安装好vmware后启动vmware发现它要我们安装一系列 modules,点击安装后发现失败,它让我们查看一个人文件,查看了之后是以下信息:

/etc/initVM.d/vmware 没有哪个文件或目录

      这就是前面说的留下的隐患。

解决办法
      我这里说没有找到 /etc/initVM.d/vmware这个文件,那么我直接新建这个目录,将 /etc/init.d/vmware 复制到 /etc/initVM.d/ 里就好。接下来就可以安装了,安装结束后就可以正常使用Vmware。
      如果这不能解决您的问题,可以看一下我的另一篇文章,提供了另一种大众化解决方法https://mp.youkuaiyun.com/mp_blog/creation/editor/124399888

      最好还是看一下官方安装文档,看看自己是哪一步出了问题。https://wiki.archlinux.org/title/VMware#VMware_bundle

### 解决方案 #### 检查模块是否存在 如果执行 `modprobe vmmon` 时提示未找到模块,可能是模块未正确安装或编译。可以通过以下命令检查模块是否存在于系统中: ```bash ls /lib/modules/$(uname -r)/kernel/drivers/misc/vmware/ ``` 如果目录为空或不存在相关文件,则说明模块未正确安装[^1]。 #### 安装 VMware Tools 确保 VMware Tools 已正确安装。安装完成后,重新编译模块以适配当前内核版本: ```bash sudo vmware-modconfig --console --install-all ``` 此命令会根据当前运行的内核重新配置并编译 `vmmon` 和 `vmnet` 模块。如果安装成功,通常会显示类似以下消息: ``` The configuration of VMware Tools 10.0.5 build-3228253 for Linux for this running kernel completed successfully. ``` [^3] #### 手动加载模块 尝试手动加载模块以验证其可用性: ```bash sudo modprobe vmmon sudo modprobe vmnet ``` 如果加载失败,可能是因为模块未正确编译或内核头文件缺失。此时需要确保已安装正确的内核头文件和开发工具链: ```bash sudo yum groupinstall "Development Tools" sudo yum install kernel-devel-$(uname -r) ``` #### 编译模块 如果模块未正确编译,可以手动进入 VMware 提供的模块源代码目录进行编译: ```bash cd /usr/lib/vmware/modules/source/ tar xf vmmon.tar cd vmmon-only/ make sudo make install ``` 重复上述步骤以编译和安装 `vmnet` 模块[^1]。 #### 签名模块(适用于启用了 Secure Boot 的系统) 如果系统启用了 Secure Boot,可能需要对模块进行签名。以下是具体步骤: 1. 生成自签名证书: ```bash openssl req -new -x509 -newkey rsa:2048 -keyout VMWARE.priv -outform DER -out VMWARE.der -nodes -days 36500 -subj "/CN=VMware/" ``` 2. 签名模块: ```bash sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE.priv ./VMWARE.der $(modinfo -n vmmon) sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE.priv ./VMWARE.der $(modinfo -n vmnet) ``` 3. 导入证书到 MOK 数据库: ```bash sudo mokutil --import VMWARE.der ``` 重启后根据提示完成证书注册[^4]。 #### 验证模块加载状态 最后,验证模块是否成功加载: ```bash lsmod | grep -e vmmon -e vmnet ``` 如果模块已加载,应显示相关信息。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值