Ubuntu 安裝 VMware Workstation Pro

安装

  1. 下载依赖:

    # Ubuntu 22.04 及以前
    sudo apt install libaio1
    
    # Ubuntu 24.04 及以后
    sudo apt install libaio1t64
    sudo ln -s /usr/lib/x86_64-linux-gnu/libaio.so.1t64 /usr/lib/x86_64-linux-gnu/libaio.so.1
    
  2. 打开博通产品页面 BroadCom VMware Workstation Pro,下载 VMware Workstation Pro for Personal Use (For Linux) x.x.x

  3. 在下载目录下,运行如下命令:

    sudo ./VMware-Workstation-*.bundle
    

卸载

sudo vmware-installer --uninstall-product vmware-workstation

参考:

Troubleshooting

安装时 Python 报错

UnicodeEncodeError: 'ascii' codec can't encode character '\u2018' in position 1059: ordinal not in range(128)

解决方法:

  1. 下载补丁包(第三方):

    wget https://github.com/mkubecek/vmware-host-modules/archive/workstation-{version}.tar.gz
    

    {version} 变量根据你的 VMware Workstation Pro 版本来确定。在 Branches 处查看所有可用补丁包。

  2. 安装补丁包:

    tar -xzf workstation-*.tar.gz
    cd vmware-host-modules-workstation-*
    tar -cf vmmon.tar vmmon-only
    tar -cf vmnet.tar vmnet-only
    sudo cp vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/  # 安装补丁包
    sudo vmware-modconfig --console --install-all                # 重新编译 VMware 模块
    
  3. 检查安装补丁包时的输出。如果看到:

    Starting VMware services:
       Virtual machine monitor                                            failed
       Virtual machine communication interface                             done
       VM communication interface socket family                            done
       Virtual ethernet                                                   failed
       VMware Authentication Daemon                                        done
    Unable to start services
    

    注意到 Virtual machine monitorVirtual ethernet 的启动状态是 failed,这有可能是启用了 BIOS 的安全启动(Secure Boot)功能导致的。在安全启动模式中,只有经过签名的模块才能被加载到内核中。我们可以通过创建机主密钥(Machine Owner Key, MOK),并使用机主密钥对模块签名的方式来允许指定模块加载到内核中。关于 Secure BootMOK 的详细介绍可以查看这篇回答:What exactly is MOK in Linux for? | Stack Exchange

    1. 生成密钥对:

      openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"
      
    2. 将公钥导入 BIOS MOK 列表:

      sudo mokutil --import MOK.der
      

      设置一个简单的密码。

    3. 重启并在 BIOS 中注册密钥:

      sudo systemctl reboot
      

      在 BIOS 界面选择 Enroll MOK 以注册 MOK。

    4. 编译 VMware 模块:

      sudo vmware-modconfig --console --install-all
      
    5. 用密钥对模块签名:

      sudo kmodsign sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)
      sudo kmodsign sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)
      
    6. 加载模块:

      sudo depmod -a                 # 处理和更新内核模块的依赖关系
      sudo modprobe vmmon            # 加载内核模块 vmmon
      sudo modprobe vmnet            # 加载内核模块 vmnet
      sudo systemctl restart vmware  # 重启 VMware 服务
      
    7. 检查模块是否已加载:

      sudo lsmod | egrep '(vmmon|vmnet)'  # 此时应该能够看到 vmmon 和 vmnet
      

参考:

posted @ 2024-08-25 22:21  Undefined443  阅读(596)  评论(0)    收藏  举报