1. 程式人生 > 實用技巧 >Kali Linux升級核心5.8.0後VMware Workstation無法啟動

Kali Linux升級核心5.8.0後VMware Workstation無法啟動

說明:
本文相關內容僅作為學習使用,請勿用於任何商業用途,更不能用於任何違法行為!
本文為原創,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處連結和本宣告。
原文連結:https://www.cnblogs.com/4geek/p/13704833.html

目錄

問題描述

  上週比較閒升級了Kali核心從5.7.0升級到5.8.0,更新完又出現了VMware-workstation無法啟動的情況!點選VMware圖示後無任何響應無任何報錯,本以為是之前更新造作系統導致vmmon-only無法啟動造成。故直接執行之前寫好的指令碼,指令碼內容和具體執行方法可參見上一篇博文:

永久解決Linux更新後Vmware無法開啟提示“kernel module updater”

排查過程

  首先運行了升級指令碼,結果發現指令碼中有報錯資訊:

⚡  ~  ./vmware-update.sh 
Cloning into 'vmware-host-modules'...
remote: Enumerating objects: 349, done.
remote: Counting objects: 100% (349/349), done.
remote: Compressing objects: 100% (239/239), done.
remote: Total 2333 (delta 217), reused 208 (delta 110), pack-reused 1984
Receiving objects: 100% (2333/2333), 1.21 MiB | 804.00 KiB/s, done.
Resolving deltas: 100% (1877/1877), done.
Branch 'workstation-15.5.1' set up to track remote branch 'workstation-15.5.1' from 'origin'.
Switched to a new branch 'workstation-15.5.1'
*-----------------------------------------------------------------------------
* Branch workstation-15.5.1 has been retired on 2020-08-20 and has not been
* receiving any updates since. Please switch to latest 15.5.x version
* available.
*
* Latest kernel version this branch is intended to work with is 5.7.
*-----------------------------------------------------------------------------

  從上面的資訊可以看出,是因為我安裝的VMware Workstion版本為15.5.1,並且在2020-8-20日就停止維護了。最下面一行也說明了15.5.x最後一次更新僅僅支援5.7的核心。得到這些資訊就分析出了無法啟動的原因,接下來就是如何最小變動的情況下升級VMware Workstion。

升級VMware Workstion

  首先前往VMware官網下載最新版本,官方下載地址

  下載下來的是bundle字尾安裝檔案,需要通過chmod +x賦予執行許可權。然後直接在終端中執行即可,執行過程如下:

 ⚡  Soft-linux  ./VMware-Workstation-Full-16.0.0-16894299.x86_64.bundle 
Extracting VMware Installer...done.


[######################################################################] 100%
The system is up to date. 

  這種升級方式需要注意:就版本的VMware無需解除安裝,直接安裝新版本即可。這樣可以保持VMware原有版本相關的配置不變,包括vmnet的配置也都會保留。更新完成之後如果直接開啟會提示vmmon相關服務沒有升級的提醒,這裡忘了截圖遇到這個問題只需要修改我們之前的指令碼並執行即可。指令碼只需要將其中的“VMWARE_VERSION=workstation-15.5.1”修改為”VMWARE_VERSION=workstation-16.0.0“。執行過程如下:

 ⚡  ~  vmware-installer -l
Product Name         Product Version     
==================== ====================
vmware-workstation   16.0.0.16894299 
 ⚡  ~  ./vmware-update.sh 
Cloning into 'vmware-host-modules'...
remote: Enumerating objects: 349, done.
remote: Counting objects: 100% (349/349), done.
remote: Compressing objects: 100% (239/239), done.
remote: Total 2333 (delta 217), reused 208 (delta 110), pack-reused 1984
Receiving objects: 100% (2333/2333), 1.21 MiB | 751.00 KiB/s, done.
Resolving deltas: 100% (1877/1877), done.
Branch 'workstation-16.0.0' set up to track remote branch 'workstation-16.0.0' from 'origin'.
Switched to a new branch 'workstation-16.0.0'
make -C vmmon-only 
make[1]: Entering directory '/tmp/patch-vmware/vmware-host-modules/vmmon-only'
Using kernel build system.
make -C /lib/modules/5.8.0-kali1-amd64/build/include/.. M=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[2]: Entering directory '/usr/src/linux-headers-5.8.0-kali1-amd64'
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/linux/driver.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/linux/hostif.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/apic.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/comport.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/cpuid.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/crosspage.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/memtrack.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/phystrack.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/sharedAreaVmmon.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/statVarsVmmon.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/task.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/vmx86.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/vmcore/moduleloop.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/bootstrap/bootstrap.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/bootstrap/monLoader.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/bootstrap/monLoaderVmmon.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/bootstrap/vmmblob.o
  LD [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/vmmon.o
  MODPOST /tmp/patch-vmware/vmware-host-modules/vmmon-only/Module.symvers
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/vmmon.ko
make[2]: Leaving directory '/usr/src/linux-headers-5.8.0-kali1-amd64'
make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[2]: Entering directory '/tmp/patch-vmware/vmware-host-modules/vmmon-only'
make[2]: 'postbuild' is up to date.
make[2]: Leaving directory '/tmp/patch-vmware/vmware-host-modules/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make[1]: Leaving directory '/tmp/patch-vmware/vmware-host-modules/vmmon-only'
make -C vmnet-only 
make[1]: Entering directory '/tmp/patch-vmware/vmware-host-modules/vmnet-only'
Using kernel build system.
make -C /lib/modules/5.8.0-kali1-amd64/build/include/.. M=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[2]: Entering directory '/usr/src/linux-headers-5.8.0-kali1-amd64'
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/driver.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/hub.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/userif.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/netif.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/bridge.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/procfs.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/smac_compat.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/smac.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/vnetEvent.o
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/vnetUserListener.o
  LD [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/vmnet.o
  MODPOST /tmp/patch-vmware/vmware-host-modules/vmnet-only/Module.symvers
  CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/vmnet.ko
make[2]: Leaving directory '/usr/src/linux-headers-5.8.0-kali1-amd64'
make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[2]: Entering directory '/tmp/patch-vmware/vmware-host-modules/vmnet-only'
make[2]: 'postbuild' is up to date.
make[2]: Leaving directory '/tmp/patch-vmware/vmware-host-modules/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make[1]: Leaving directory '/tmp/patch-vmware/vmware-host-modules/vmnet-only'
install -D -t /lib/modules/5.8.0-kali1-amd64/misc vmmon-only/vmmon.ko vmnet-only/vmnet.ko
strip --strip-debug /lib/modules/5.8.0-kali1-amd64/misc/vmmon.ko /lib/modules/5.8.0-kali1-amd64/misc/vmnet.ko
if test -z ""; then /sbin/depmod -a 5.8.0-kali1-amd64; fi
rm: cannot remove '/usr/lib/vmware/lib/libz.so.1/libz.so.1': No such file or directory
./vmware-update.sh: line 15: /usr/lib/vmware/lib/libz.so.1/libz.so.1: No such file or directory
Stopping VMware services:
   VMware Authentication Daemon                                        done
   Virtual machine monitor                                             done
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

啟用VMware

  上述過程都結束後,新版本的VMware便安裝好了。這時點選VMware圖示,根據提示選擇同意相關license要求,最後輸入許可證金鑰即可完成新版本VMware啟用。