【Kali】永久解決Linux更新后Vmware無法打開提示“kernel module updater”


說明
本腳本僅作為學習使用,請勿用於任何商業用途。
本文為原創,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://www.cnblogs.com/4geek/p/12187463.html

 

  今天更新操作系統,更新完又出現了VMware-workstation無法啟動的情況!啟動后和上次一樣提示kernel module updater,然后點擊install提示在安裝vmnetvmmon 然而一會就有個失敗的日志提示,打開看和上次的差不多。內容和具體原因可參見上一篇博文:https://www.cnblogs.com/4geek/p/11511592.html

  這次不想再像上次那樣一步一步的去重新編譯再替換,所以在想有沒有什么辦法可以在每次更新系統后出現同樣問題時一鍵就能順利打開VMware workstation呢?於是乎又是一頓google操作最終找見了方法。在這里記錄下來,依然是為了方便踩入坑的你!

[Toc]

  A【參考文獻】

  翻了很多“文獻”,很多社區都有被牆,這里就拿vmware官方的為列吧:https://communities.vmware.com/thread/609330

  B【創建腳本】

 

 1 ⚡ root@F0rGeEk  ~  touch vmware-update.sh
 2 ⚡ root@F0rGeEk  ~  vi vmware-update.sh
 3 #!/bin/bash  4 VMWARE_VERSION=workstation-15.5.1
 5 TMP_FOLDER=/tmp/patch-vmware  6 rm -fdr $TMP_FOLDER  7 mkdir -p $TMP_FOLDER  8 cd $TMP_FOLDER  9 git clone https://github.com/mkubecek/vmware-host-modules.git
10 cd $TMP_FOLDER/vmware-host-modules 11 git checkout $VMWARE_VERSION 12 git fetch 13 make
14 sudo make install
15 sudo rm /usr/lib/vmware/lib/libz.so.1/libz.so.1
16 sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /usr/lib/vmware/lib/libz.so.1/libz.so.1
17 sudo /etc/init.d/vmware restart 18 :wq

  腳本可以直接前往Gitee下載:為極客而生(https://gitee.com/forgeek/VMware_update.git)

  其中“VMWARE_VERSION=workstation-15.5.1”,這里的版本號可以通過vmware-installer -l來查看。如果您的版本和我的不一樣,是必須要修改以下腳本中的版本號。

1  ⚡ root@F0rGeEk  ~  vmware-installer -l 2 Product Name Product Version 3 ==================== ====================
4 vmware-workstation   15.5.1.15018445     
5  ⚡ root@F0rGeEk  ~  

  C【執行腳本】

 1 ⚡ root@F0rGeEk  ~  bash vmware-update.sh
 2 Cloning into 'vmware-host-modules'...
 3 remote: Enumerating objects: 23, done.
 4 remote: Counting objects: 100% (23/23), done.
 5 remote: Compressing objects: 100% (23/23), done.
 6 remote: Total 1701 (delta 19), reused 1 (delta 0), pack-reused 1678
 7 Receiving objects: 100% (1701/1701), 887.90 KiB | 17.00 KiB/s, done.
 8 Resolving deltas: 100% (1401/1401), done.
 9 Branch 'workstation-15.5.1' set up to track remote branch 'workstation-15.5.1' from 'origin'.
10 Switched to a new branch 'workstation-15.5.1'
11 fatal: unable to access 'https://github.com/mkubecek/vmware-host-modules.git/': GnuTLS recv error (-54): Error in the pull function.
12 make -C vmmon-only 
13 make[1]: Entering directory '/tmp/patch-vmware/vmware-host-modules/vmmon-only'
14 Using kernel build system.
15 make -C /lib/modules/5.4.0-kali2-amd64/build/include/.. M=$PWD SRCROOT=$PWD/. \
16   MODULEBUILDDIR= modules
17 make[2]: Entering directory '/usr/src/linux-headers-5.4.0-kali2-amd64'
18   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/linux/driverLog.o
19   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/linux/driver.o
20   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/linux/hostif.o
21   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/memtrack.o
22   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/apic.o
23   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/statVarsVmmon.o
24   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/vmx86.o
25   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/sharedAreaVmmon.o
26   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/cpuid.o
27   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/task.o
28   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/comport.o
29   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/common/phystrack.o
30   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/vmcore/moduleloop.o
31   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/bootstrap/monLoaderVmmon.o
32   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/bootstrap/monLoader.o
33   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/bootstrap/vmmblob.o
34   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/bootstrap/bootstrap.o
35   LD [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/vmmon.o
36   Building modules, stage 2.
37   MODPOST 1 modules
38   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/vmmon.mod.o
39   LD [M]  /tmp/patch-vmware/vmware-host-modules/vmmon-only/vmmon.ko
40 make[2]: Leaving directory '/usr/src/linux-headers-5.4.0-kali2-amd64'
41 make -C $PWD SRCROOT=$PWD/. \
42   MODULEBUILDDIR= postbuild
43 make[2]: Entering directory '/tmp/patch-vmware/vmware-host-modules/vmmon-only'
44 make[2]: 'postbuild' is up to date.
45 make[2]: Leaving directory '/tmp/patch-vmware/vmware-host-modules/vmmon-only'
46 cp -f vmmon.ko ./../vmmon.o
47 make[1]: Leaving directory '/tmp/patch-vmware/vmware-host-modules/vmmon-only'
48 make -C vmnet-only 
49 make[1]: Entering directory '/tmp/patch-vmware/vmware-host-modules/vmnet-only'
50 Using kernel build system.
51 make -C /lib/modules/5.4.0-kali2-amd64/build/include/.. M=$PWD SRCROOT=$PWD/. \
52   MODULEBUILDDIR= modules
53 make[2]: Entering directory '/usr/src/linux-headers-5.4.0-kali2-amd64'
54   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/driver.o
55   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/hub.o
56   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/userif.o
57   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/netif.o
58   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/bridge.o
59   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/procfs.o
60   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/smac_compat.o
61   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/smac.o
62   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/vnetEvent.o
63   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/vnetUserListener.o
64   LD [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/vmnet.o
65   Building modules, stage 2.
66   MODPOST 1 modules
67   CC [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/vmnet.mod.o
68   LD [M]  /tmp/patch-vmware/vmware-host-modules/vmnet-only/vmnet.ko
69 make[2]: Leaving directory '/usr/src/linux-headers-5.4.0-kali2-amd64'
70 make -C $PWD SRCROOT=$PWD/. \
71   MODULEBUILDDIR= postbuild
72 make[2]: Entering directory '/tmp/patch-vmware/vmware-host-modules/vmnet-only'
73 make[2]: 'postbuild' is up to date.
74 make[2]: Leaving directory '/tmp/patch-vmware/vmware-host-modules/vmnet-only'
75 cp -f vmnet.ko ./../vmnet.o
76 make[1]: Leaving directory '/tmp/patch-vmware/vmware-host-modules/vmnet-only'
77 install -D -t /lib/modules/5.4.0-kali2-amd64/misc vmmon-only/vmmon.ko vmnet-only/vmnet.ko
78 strip --strip-debug /lib/modules/5.4.0-kali2-amd64/misc/vmmon.ko /lib/modules/5.4.0-kali2-amd64/misc/vmnet.ko
79 if test -z ""; then /sbin/depmod -a 5.4.0-kali2-amd64; fi
80 rm: cannot remove '/usr/lib/vmware/lib/libz.so.1/libz.so.1': No such file or directory
81 vmware-update.sh: line 15: /usr/lib/vmware/lib/libz.so.1/libz.so.1: No such file or directory
82 Stopping VMware services:
83    VMware Authentication Daemon                                        done
84    VM communication interface socket family                            done
85    Virtual machine communication interface                             done
86    Virtual machine monitor                                             done
87    Blocking file system                                                done
88 Starting VMware services:
89    Virtual machine monitor                                             done
90    Virtual machine communication interface                             done
91    VM communication interface socket family                            done
92    Blocking file system                                                done
93    Virtual ethernet                                                    done
94    VMware Authentication Daemon                                        done
95    Shared Memory Available                                             done

  D【驗證】

 

  最后就是見證奇跡了!以后只要更新系統出現類似問題,只需要重新運行一下這個腳本就可以很方便的解決這個問題了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM