1. 程式人生 > >Ubuntu16.04安裝vmware出現"Cannot open /dev/vmmon: No such file or directory" 的解決方法(不disable secure boot)

Ubuntu16.04安裝vmware出現"Cannot open /dev/vmmon: No such file or directory" 的解決方法(不disable secure boot)

今天同事在ubuntu16.04下安裝vmware後,想安裝win10的系統,結果報錯:Cannot open /dev/vmmon: No such file or directory,Please make sure that the kernel module `vmmon' is loaded這個錯誤大概是說vmmonitor和vmnet這倆模組沒有經過簽名認證,可能是不安全的,所以在安裝vmware的時候,出於安全的考慮,無法built.

從網上搜到的一些解決方案,大部分都是說要啟動bios後修改scure boot,將之修改為disable,同事照做之後,無法進入ubuntu.

後面我搜索了一下,發現在不修改bios的情況下,也有可能修復這個錯誤.(網址:

https://kb.vmware.com/s/article/2146460,但是這個網頁裡面有一些是錯誤的).現在把我們修復的過程貼出來:

1. 使用openssl生成rsa2048公鑰對,將來用於對 vmmon 和 vmnet模組進行簽名:

$openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"

這裡MOK 是你生成的公鑰對的名字,可以修改,會生成倆檔案,MOK.der和MOK.priv,釋出者為"/CN=VMware/"

2. 簽名:

$sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)

$sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)

或者

$sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)

$sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)

3. 將公鑰MOK.der匯入到MOK列表:

$sudo mokutil --import MOK.der

然後輸入兩次密碼,記住這個密碼(在重啟後的mok enrollemnt裡面還會用到)

4. 重啟

等待一段時間,進入MOK management控制檯,選擇"mok enrollment"選項,然後yes,然後reboot,等待一段時間後,進入ubuntu頁面,啟動vmware,一切正常.

如果還是不行,則對kernel下的vmmon和vmnet簽名:

$ sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)

$ sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)