ubuntu 24.04 下安装 vmware (workstation-17.6.3)详解
在 Ubuntu 24.04 上安装 VMware Workstation 时,建议选择与系统兼容的最新版本。以下是步骤:
1. 确认系统架构
首先,检查系统架构:
bash
uname -m
通常为 x86_64
。
2. 下载 VMware Workstation
访问 VMware 官网获取最新版本:
-
VMware Workstation Pro
-
VMware Workstation Player
3. 安装依赖
安装必要的依赖包:
bash
sudo apt update sudo apt install build-essential linux-headers-$(uname -r)
4. 安装 VMware
下载完成后,赋予执行权限并安装:
bash
chmod +x VMware-Workstation-Full-*.bundle sudo ./VMware-Workstation-Full-*.bundle
5. 启动 VMware
安装完成后,通过以下命令启动:
bash
vmware
如果创建虚拟机后出现找不到 vmmon vmnet的错误是因为 这两个模块没有被正确加载,服务没有启动, 此时需要手动加载并启动,通过以下命令加载启动
bash
sudo modprobe vmmon
sudo modprobe vmnet
sudo /etc/init.d/vmware start
此时,如果出现出现 modprobe: ERROR: could not insert 'vmmon': Key was rejected by service的错误,可使用
bash
sudo dmesg | tail
查看最后的log若为
Loading of unsigned module is rejected
方法 1:禁用 Secure Boot
禁用 Secure Boot 是最直接的解决方案,但会降低系统的安全性。
-
重启系统并进入 BIOS/UEFI 设置界面。
-
通常在启动时按下
F2
、F10
、Del
或Esc
键(具体键位取决于主板厂商)。
-
-
找到 Secure Boot 选项,将其设置为 Disabled。
-
保存设置并退出 BIOS/UEFI。
-
重启系统后,重新加载
vmmon
模块:bash
-
sudo modprobe vmmon
方法 2:为 VMware 模块签名
如果你不想禁用 Secure Boot,可以为 VMware 的内核模块签名。
步骤 1:生成签名密钥
-
创建一个用于签名的密钥对:
bash
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"
-
将生成的密钥导入系统:
bash
sudo mokutil --import MOK.der
设置一个密码(用于后续确认导入)。
步骤 2:重启并注册密钥
-
重启系统。
-
在启动过程中,系统会进入 MOK Manager 界面。
-
选择 Enroll MOK,然后按照提示导入密钥。
-
输入之前设置的密码,完成密钥注册。
步骤 3:签名 VMware 模块
确保 MOK.priv
和 MOK.der
文件未损坏。
如果文件损坏,重新生成密钥:
bash
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"
确保 sign-file
工具存在且可执行。检查路径:bash
ls /usr/src/linux-headers-$(uname -r)/scripts/sign-file
如果不存在,安装内核头文件:
bash
sudo apt install linux-headers-$(uname -r)
确保使用完整的签名命令,包括正确的模块路径。
查找模块路径:bash
modinfo -n vmmon
输出示例:
/lib/modules/6.x.x/misc/vmmon.ko
签名命令示例:
bash
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 /path/to/MOK.priv /path/to/MOK.der /lib/modules/$(uname -r)/misc/vmmon.ko
签名完成后,验证模块是否已签名:
检查模块签名
bash
modinfo /lib/modules/$(uname -r)/misc/vmmon.ko | grep sig_
-
找到 VMware 模块的路径:
bash
find /lib/modules/$(uname -r) -name vmmon.ko
通常路径为
/lib/modules/$(uname -r)/misc/vmmon.ko
。 -
使用生成的密钥为模块签名:(注意使用下面命令确保
MOK.priv
和MOK.der
文件在当前目录下,或者提供正确的路径)bash
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 MOK.priv MOK.der $(modinfo -n vmmon)
-
重新加载模块:
bash
sudo modprobe vmmon
sudo modprobe vmnet
sudo /etc/init.d/vmware start
成功应出现
Starting VMware services:
Virtual machine monitor done
Virtual machine communication interface done
VM communication interface socket family done
Virtual ethernet done
VMware Authentication Daemon done
Shared Memory Available done#### 如果出现错误At main.c:167: - SSL error:FFFFFFFF80000002:system library::No such file or directory: ../crypto/bio/bss_file.c:67 - SSL error:10000080:BIO routines::no such file: ../crypto/bio/bss_file.c:75 sign-file: MOK.priv以下是可能的原因和解决方法: 1 检查密钥文件路径 确保
MOK.priv
和MOK.der
文件在当前目录下,或者提供正确的路径。 如果文件不在当前目录,使用绝对路径: bash sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 /path/to/MOK.priv /path/to/MOK.der $(modinfo -n vmmon) 检查密钥文件权限确保MOK.priv
文件具有正确的权限,允许当前用户读取。 检查权限: bash ls -l MOK.priv 输出应类似于: -rw------- 1 user user 1704 Oct 10 12:34 MOK.priv如果权限不足,修改权限: bash chmod 600 MOK.priv -
检查
MOK.priv
文件内容:bash
复制
cat MOK.priv
输出应显示有效的 PEM 格式密钥。
-
检查
MOK.der
文件内容:bash
openssl x509 -inform DER -in MOK.der -text -noout
输出应显示有效的证书信息。