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 monitor 和 Virtual ethernet 的启动状态是 failed,这有可能是启用了 BIOS 的安全启动(Secure Boot)功能导致的。在安全启动模式中,只有经过签名的模块才能被加载到内核中。我们可以通过创建机主密钥(Machine Owner Key, MOK),并使用机主密钥对模块签名的方式来允许指定模块加载到内核中。关于 Secure Boot 和 MOK 的详细介绍可以查看这篇回答: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  阅读(877)  评论(0)    收藏  举报