说明
本脚本仅作为学习使用,请勿用于任何商业用途。
本文为原创,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明。

  最近更新了Kali后发现一个奇葩的问题,我的虚拟机不能正常使用了。启动后会提示无法正常启动,并有个弹窗提示错误日志在/tmp/vmware-root/vmware-18363.log

于是打开看了看,主要报错信息如下:

 2019-09-12T10:12:22.318+08:00| host-18363| I125: Log for VMware Workstation pid=18363 version=15.1.0 build=build-13591040 option=Release
2019-09-12T10:12:22.318+08:00| host-18363| I125: The process is 64-bit.
2019-09-12T10:12:22.318+08:00| host-18363| I125: Host codepage=UTF-8 encoding=UTF-8
2019-09-12T10:12:22.318+08:00| host-18363| I125: Host is Linux 5.2.0-kali2-amd64 Kali GNU/Linux Rolling
2019-09-12T10:12:22.318+08:00| host-18363| I125: DictionaryLoad: Cannot open file "/usr/lib/vmware/settings": No such file or directory.
2019-09-12T10:12:22.318+08:00| host-18363| I125: [msg.dictionary.load.openFailed] Cannot open file "/usr/lib/vmware/settings": No such file or directory.
2019-09-12T10:12:22.318+08:00| host-18363| I125: PREF Optional preferences file not found at /usr/lib/vmware/settings. Using default values.
2019-09-12T10:12:22.318+08:00| host-18363| I125: DictionaryLoad: Cannot open file "/root/.vmware/config": No such file or directory.
2019-09-12T10:12:22.318+08:00| host-18363| I125: [msg.dictionary.load.openFailed] Cannot open file "/root/.vmware/config": No such file or directory.
2019-09-12T10:12:22.318+08:00| host-18363| I125: PREF Optional preferences file not found at /root/.vmware/config. Using default values.
2019-09-12T10:12:22.351+08:00| host-18363| W115: Logging to /tmp/vmware-root/vmware-18363.log
2019-09-12T10:12:22.383+08:00| host-18363| I125: Obtaining info using the running kernel.
2019-09-12T10:12:22.383+08:00| host-18363| I125: Created new pathsHash.
2019-09-12T10:12:22.383+08:00| host-18363| I125: Setting header path for 5.2.0-kali2-amd64 to "/lib/modules/5.2.0-kali2-amd64/build/include".
2019-09-12T10:12:22.383+08:00| host-18363| I125: Validating path "/lib/modules/5.2.0-kali2-amd64/build/include" for kernel release "5.2.0-kali2-amd64".
2019-09-12T10:12:22.383+08:00| host-18363| I125: Failed to find /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h
2019-09-12T10:12:22.383+08:00| host-18363| I125: /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead.
2019-09-12T10:12:22.383+08:00| host-18363| I125: using /usr/bin/gcc-8 for preprocess check
2019-09-12T10:12:22.387+08:00| host-18363| I125: Preprocessed UTS_RELEASE, got value "5.2.0-kali2-amd64".
2019-09-12T10:12:22.388+08:00| host-18363| I125: The header path "/lib/modules/5.2.0-kali2-amd64/build/include" for the kernel "5.2.0-kali2-amd64" is valid. Whoohoo!
2019-09-12T10:12:22.507+08:00| host-18363| I125: found symbol version file /lib/modules/5.2.0-kali2-amd64/build/Module.symvers
2019-09-12T10:12:22.507+08:00| host-18363| I125: Reading symbol versions from /lib/modules/5.2.0-kali2-amd64/build/Module.symvers.
2019-09-12T10:12:22.521+08:00| host-18363| I125: Read 20774 symbol versions
2019-09-12T10:12:22.521+08:00| host-18363| I125: Reading in info for the vmmon module.
2019-09-12T10:12:22.521+08:00| host-18363| I125: Reading in info for the vmnet module.
2019-09-12T10:12:22.521+08:00| host-18363| I125: Reading in info for the vmci module.
2019-09-12T10:12:22.521+08:00| host-18363| I125: Reading in info for the vsock module.
2019-09-12T10:12:22.521+08:00| host-18363| I125: Setting vsock to depend on vmci.
2019-09-12T10:12:22.521+08:00| host-18363| I125: Invoking modinfo on "vmmon".
2019-09-12T10:12:22.524+08:00| host-18363| I125: "/sbin/modinfo" exited with status 256.
2019-09-12T10:12:22.524+08:00| host-18363| I125: Invoking modinfo on "vmnet".
2019-09-12T10:12:22.525+08:00| host-18363| I125: "/sbin/modinfo" exited with status 0.
2019-09-12T10:12:22.525+08:00| host-18363| I125: Invoking modinfo on "vmci".
2019-09-12T10:12:22.527+08:00| host-18363| I125: "/sbin/modinfo" exited with status 256.
2019-09-12T10:12:22.527+08:00| host-18363| I125: Invoking modinfo on "vsock".
2019-09-12T10:12:22.529+08:00| host-18363| I125: "/sbin/modinfo" exited with status 0.
2019-09-12T10:12:22.538+08:00| host-18363| I125: to be installed: vmmon status: 0
2019-09-12T10:12:22.546+08:00| host-18363| I125: Obtaining info using the running kernel.
2019-09-12T10:12:22.546+08:00| host-18363| I125: Setting header path for 5.2.0-kali2-amd64 to "/lib/modules/5.2.0-kali2-amd64/build/include".
2019-09-12T10:12:22.546+08:00| host-18363| I125: Validating path "/lib/modules/5.2.0-kali2-amd64/build/include" for kernel release "5.2.0-kali2-amd64".
2019-09-12T10:12:22.546+08:00| host-18363| I125: Failed to find /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h
2019-09-12T10:12:22.546+08:00| host-18363| I125: /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead.
2019-09-12T10:12:22.546+08:00| host-18363| I125: using /usr/bin/gcc-8 for preprocess check
2019-09-12T10:12:22.551+08:00| host-18363| I125: Preprocessed UTS_RELEASE, got value "5.2.0-kali2-amd64".
2019-09-12T10:12:22.551+08:00| host-18363| I125: The header path "/lib/modules/5.2.0-kali2-amd64/build/include" for the kernel "5.2.0-kali2-amd64" is valid. Whoohoo!
2019-09-12T10:12:22.669+08:00| host-18363| I125: found symbol version file /lib/modules/5.2.0-kali2-amd64/build/Module.symvers
2019-09-12T10:12:22.669+08:00| host-18363| I125: Reading symbol versions from /lib/modules/5.2.0-kali2-amd64/build/Module.symvers.
2019-09-12T10:12:22.683+08:00| host-18363| I125: Read 20774 symbol versions
2019-09-12T10:12:22.689+08:00| host-18363| I125: Kernel header path retrieved from FileEntry: /lib/modules/5.2.0-kali2-amd64/build/include
2019-09-12T10:12:22.689+08:00| host-18363| I125: Update kernel header path to /lib/modules/5.2.0-kali2-amd64/build/include
2019-09-12T10:12:22.689+08:00| host-18363| I125: Validating path "/lib/modules/5.2.0-kali2-amd64/build/include" for kernel release "5.2.0-kali2-amd64".
2019-09-12T10:12:22.689+08:00| host-18363| I125: Failed to find /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h
2019-09-12T10:12:22.689+08:00| host-18363| I125: /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead.
2019-09-12T10:12:22.689+08:00| host-18363| I125: using /usr/bin/gcc-8 for preprocess check
2019-09-12T10:12:22.694+08:00| host-18363| I125: Preprocessed UTS_RELEASE, got value "5.2.0-kali2-amd64".
2019-09-12T10:12:22.694+08:00| host-18363| I125: The header path "/lib/modules/5.2.0-kali2-amd64/build/include" for the kernel "5.2.0-kali2-amd64" is valid. Whoohoo!
2019-09-12T10:12:22.695+08:00| host-18363| I125: Found compiler at "/usr/bin/gcc"
2019-09-12T10:12:22.697+08:00| host-18363| I125: Got gcc version "9".
2019-09-12T10:12:22.697+08:00| host-18363| I125: GCC major version 9 does not match Kernel GCC major version 8.
2019-09-12T10:12:22.697+08:00| host-18363| I125: Attempting to use a compiler at location "/usr/bin/gcc-8".
2019-09-12T10:12:22.699+08:00| host-18363| I125: Got gcc version "8".
2019-09-12T10:12:22.700+08:00| host-18363| I125: The GCC version matches the kernel GCC minor version like a glove.
2019-09-12T10:12:22.702+08:00| host-18363| I125: Got gcc version "8".
2019-09-12T10:12:22.702+08:00| host-18363| I125: The GCC version matches the kernel GCC minor version like a glove.
2019-09-12T10:12:22.703+08:00| host-18363| I125: Trying to find a suitable PBM set for kernel "5.2.0-kali2-amd64".
2019-09-12T10:12:22.703+08:00| host-18363| I125: No matching PBM set was found for kernel "5.2.0-kali2-amd64".
2019-09-12T10:12:22.703+08:00| host-18363| I125: The GCC version matches the kernel GCC minor version like a glove.
2019-09-12T10:12:22.703+08:00| host-18363| I125: Validating path "/lib/modules/5.2.0-kali2-amd64/build/include" for kernel release "5.2.0-kali2-amd64".
2019-09-12T10:12:22.703+08:00| host-18363| I125: Failed to find /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h
2019-09-12T10:12:22.703+08:00| host-18363| I125: /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead.
2019-09-12T10:12:22.703+08:00| host-18363| I125: using /usr/bin/gcc-8 for preprocess check
2019-09-12T10:12:22.708+08:00| host-18363| I125: Preprocessed UTS_RELEASE, got value "5.2.0-kali2-amd64".
2019-09-12T10:12:22.708+08:00| host-18363| I125: The header path "/lib/modules/5.2.0-kali2-amd64/build/include" for the kernel "5.2.0-kali2-amd64" is valid. Whoohoo!
2019-09-12T10:12:22.708+08:00| host-18363| I125: The GCC version matches the kernel GCC minor version like a glove.
2019-09-12T10:12:22.708+08:00| host-18363| I125: Validating path "/lib/modules/5.2.0-kali2-amd64/build/include" for kernel release "5.2.0-kali2-amd64".
2019-09-12T10:12:22.708+08:00| host-18363| I125: Failed to find /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h
2019-09-12T10:12:22.708+08:00| host-18363| I125: /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead.
2019-09-12T10:12:22.708+08:00| host-18363| I125: using /usr/bin/gcc-8 for preprocess check
2019-09-12T10:12:22.713+08:00| host-18363| I125: Preprocessed UTS_RELEASE, got value "5.2.0-kali2-amd64".
2019-09-12T10:12:22.713+08:00| host-18363| I125: The header path "/lib/modules/5.2.0-kali2-amd64/build/include" for the kernel "5.2.0-kali2-amd64" is valid. Whoohoo!
2019-09-12T10:12:22.713+08:00| host-18363| I125: Using temp dir "/tmp".
2019-09-12T10:12:22.715+08:00| host-18363| I125: Obtaining info using the running kernel.
2019-09-12T10:12:22.715+08:00| host-18363| I125: Setting header path for 5.2.0-kali2-amd64 to "/lib/modules/5.2.0-kali2-amd64/build/include".
2019-09-12T10:12:22.715+08:00| host-18363| I125: Validating path "/lib/modules/5.2.0-kali2-amd64/build/include" for kernel release "5.2.0-kali2-amd64".
2019-09-12T10:12:22.715+08:00| host-18363| I125: Failed to find /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h
2019-09-12T10:12:22.715+08:00| host-18363| I125: /lib/modules/5.2.0-kali2-amd64/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead.
2019-09-12T10:12:22.715+08:00| host-18363| I125: using /usr/bin/gcc-8 for preprocess check
2019-09-12T10:12:22.720+08:00| host-18363| I125: Preprocessed UTS_RELEASE, got value "5.2.0-kali2-amd64".
2019-09-12T10:12:22.720+08:00| host-18363| I125: The header path "/lib/modules/5.2.0-kali2-amd64/build/include" for the kernel "5.2.0-kali2-amd64" is valid. Whoohoo!
2019-09-12T10:12:22.840+08:00| host-18363| I125: found symbol version file /lib/modules/5.2.0-kali2-amd64/build/Module.symvers
2019-09-12T10:12:22.840+08:00| host-18363| I125: Reading symbol versions from /lib/modules/5.2.0-kali2-amd64/build/Module.symvers.
2019-09-12T10:12:22.854+08:00| host-18363| I125: Read 20774 symbol versions
2019-09-12T10:12:22.854+08:00| host-18363| I125: Invoking modinfo on "vmmon".
2019-09-12T10:12:22.856+08:00| host-18363| I125: "/sbin/modinfo" exited with status 256.
2019-09-12T10:12:23.707+08:00| host-18363| I125: Setting destination path for vmmon to "/lib/modules/5.2.0-kali2-amd64/misc/vmmon.ko".
2019-09-12T10:12:23.707+08:00| host-18363| I125: Extracting the vmmon source from "/usr/lib/vmware/modules/source/vmmon.tar".
2019-09-12T10:12:23.720+08:00| host-18363| I125: Successfully extracted the vmmon source.
2019-09-12T10:12:23.720+08:00| host-18363| I125: Building module with command "/usr/bin/make -j8 -C /tmp/modconfig-1sA2Ln/vmmon-only auto-build HEADER_DIR=/lib/modules/5.2.0-kali2-amd64/build/include CC=/usr/bin/gcc-8 IS_GCC_3=no"
2019-09-12T10:12:25.199+08:00| host-18363| W115: Failed to build vmmon. Failed to execute the build command.

  从上面Failed的信息看出,大概问题是vmmon和vmnet这两个模块出问题了。刚开始还以为是头文件出问题了,于是通过apt-get install linux-headers-$(uname -r)进行安装,但是安装后依然爆同样的错误!于是乎一顿google发现原来这是Linux Kernel V4以来,vmware一直没有解决的一个bug!这么大个厂商既然支持linux为何不去更新呢,着实想不通!好在开源社区解决了这个问题,开源社区提供的方法貌似解决了Vmware在所有Linux上比v4更新的所有内核的问题。主要方法是替换vmware-source中相应的vmmon和vmnet文件使其重新构建并正常工作。在这里也希望将该方法分享出来,方便踏进这个坑的伙伴快速爬出来~

  具体方法如下:

  1. 查看自己的vmware版本

    vmware -v
    ⚡ root@F0rGeEk  ~  vmware -v
    VMware Workstation 15.1.0 build-13591040
    ⚡ root@F0rGeEk  ~  uname -a
    Linux F0rGeEk 5.2.0-kali2-amd64 #1 SMP Debian 5.2.9-2kali1 (2019-08-22) x86_64 GNU/Linux
    ⚡ root@F0rGeEk  ~ 
  2. clone社区的补丁文件
    git clone -b workstation-15.1.0 https://github.com/mkubecek/vmware-host-modules.git
    ⚡ root@F0rGeEk  ~  git clone -b workstation-15.1.0 https://github.com/mkubecek/vmware-host-modules.git
    Cloning into 'vmware-host-modules'...
    remote: Enumerating objects: 71, done.
    remote: Counting objects: 100% (71/71), done.
    remote: Compressing objects: 100% (49/49), done.
    remote: Total 1417 (delta 50), reused 33 (delta 22), pack-reused 1346
    Receiving objects: 100% (1417/1417), 839.58 KiB | 8.00 KiB/s, done.
    Resolving deltas: 100% (1128/1128), done.
  3. 替换现有的vmmon和vmnet文件
    tar -cf vmmon.tar vmmon-only
    tar -cf vmnet.tar vmnet-only

    cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/
    ⚡ root@F0rGeEk  ~/vmware-host-modules   workstation-15.1.0  tar -cf vmmon.tar vmmon-only
    ⚡ root@F0rGeEk  ~/vmware-host-modules   workstation-15.1.0  ls
    INSTALL LICENSE Makefile README vmmon-only vmmon.tar vmnet-only
    ⚡ root@F0rGeEk  ~/vmware-host-modules   workstation-15.1.0  tar -cf vmnet.tar vmnet-only
    ⚡ root@F0rGeEk  ~/vmware-host-modules   workstation-15.1.0  cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/
    'vmmon.tar' -> '/usr/lib/vmware/modules/source/vmmon.tar'
    'vmnet.tar' -> '/usr/lib/vmware/modules/source/vmnet.tar'
  4. 重构
    vmware-modconfig --console --install-all
    ⚡ root@F0rGeEk  ~/vmware-host-modules   workstation-15.1.0  vmware-modconfig --console --install-all
    [AppLoader] GLib does not have GSettings support.
    Stopping VMware services:
    VMware Authentication Daemon done
    VM communication interface socket family done
    Virtual machine communication interface done
    Virtual machine monitor done
    Blocking file system done
    make: Entering directory '/tmp/modconfig-kADivb/vmmon-only'
    Using kernel build system.
    /usr/bin/make -C /lib/modules/5.2.0-kali2-amd64/build/include/.. M=$PWD SRCROOT=$PWD/. \
    MODULEBUILDDIR= modules
    make[1]: Entering directory '/usr/src/linux-headers-5.2.0-kali2-amd64'
    CC [M] /tmp/modconfig-kADivb/vmmon-only/linux/driverLog.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/linux/driver.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/linux/hostif.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/common/memtrack.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/common/apic.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/common/vmx86.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/common/cpuid.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/common/task.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/common/phystrack.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/common/comport.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/vmcore/moduleloop.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/bootstrap/monLoaderVmmon.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/bootstrap/monLoader.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/bootstrap/vmmblob.o
    CC [M] /tmp/modconfig-kADivb/vmmon-only/bootstrap/bootstrap.o
    LD [M] /tmp/modconfig-kADivb/vmmon-only/vmmon.o
    Building modules, stage 2.
    MODPOST 1 modules
    CC /tmp/modconfig-kADivb/vmmon-only/vmmon.mod.o
    LD [M] /tmp/modconfig-kADivb/vmmon-only/vmmon.ko
    make[1]: Leaving directory '/usr/src/linux-headers-5.2.0-kali2-amd64'
    /usr/bin/make -C $PWD SRCROOT=$PWD/. \
    MODULEBUILDDIR= postbuild
    make[1]: Entering directory '/tmp/modconfig-kADivb/vmmon-only'
    make[1]: 'postbuild' is up to date.
    make[1]: Leaving directory '/tmp/modconfig-kADivb/vmmon-only'
    cp -f vmmon.ko ./../vmmon.o
    make: Leaving directory '/tmp/modconfig-kADivb/vmmon-only'
    make: Entering directory '/tmp/modconfig-kADivb/vmnet-only'
    Using kernel build system.
    /usr/bin/make -C /lib/modules/5.2.0-kali2-amd64/build/include/.. M=$PWD SRCROOT=$PWD/. \
    MODULEBUILDDIR= modules
    make[1]: Entering directory '/usr/src/linux-headers-5.2.0-kali2-amd64'
    CC [M] /tmp/modconfig-kADivb/vmnet-only/driver.o
    CC [M] /tmp/modconfig-kADivb/vmnet-only/hub.o
    CC [M] /tmp/modconfig-kADivb/vmnet-only/userif.o
    CC [M] /tmp/modconfig-kADivb/vmnet-only/netif.o
    CC [M] /tmp/modconfig-kADivb/vmnet-only/bridge.o
    CC [M] /tmp/modconfig-kADivb/vmnet-only/procfs.o
    CC [M] /tmp/modconfig-kADivb/vmnet-only/smac_compat.o
    CC [M] /tmp/modconfig-kADivb/vmnet-only/smac.o
    CC [M] /tmp/modconfig-kADivb/vmnet-only/vnetEvent.o
    CC [M] /tmp/modconfig-kADivb/vmnet-only/vnetUserListener.o
    LD [M] /tmp/modconfig-kADivb/vmnet-only/vmnet.o
    Building modules, stage 2.
    MODPOST 1 modules
    CC /tmp/modconfig-kADivb/vmnet-only/vmnet.mod.o
    LD [M] /tmp/modconfig-kADivb/vmnet-only/vmnet.ko
    make[1]: Leaving directory '/usr/src/linux-headers-5.2.0-kali2-amd64'
    /usr/bin/make -C $PWD SRCROOT=$PWD/. \
    MODULEBUILDDIR= postbuild
    make[1]: Entering directory '/tmp/modconfig-kADivb/vmnet-only'
    make[1]: 'postbuild' is up to date.
    make[1]: Leaving directory '/tmp/modconfig-kADivb/vmnet-only'
    cp -f vmnet.ko ./../vmnet.o
    make: Leaving directory '/tmp/modconfig-kADivb/vmnet-only'
    Starting VMware services:
    Virtual machine monitor done
    Virtual machine communication interface done
    VM communication interface socket family done
    Blocking file system done
    Virtual ethernet done
    VMware Authentication Daemon done
    Shared Memory Available done

    ok,到这里就大功告成了!单击你的vmware图标见证奇迹吧!

  5.     2019-09-12 14:09:13        By:F0rGeEk 

    最近又升级了kali,发现vmware又打不开了!!!原因和本文类似,为了方便,写了个脚本应对以后内核的更新后vmware无法打开。过程及结果可以移步这篇文章:永久解决Linux更新后Vmware无法打开提示“kernel module updater” 】

Kali Linux更新5.2.9后 Vmware Workstation无法正常启动的更多相关文章

  1. Kali Linux更新后无法启动解决了

    Kali Linux更新后无法启动解决了   1月3日,Kali Linux从上游Debian引入systemd组件的升级版本240-2.一旦更新该版本,就可能造成系统无法启动,直接进入(initra ...

  2. 分享Kali Linux 2016.2第45周VMware虚拟机

    分享Kali Linux 2016.2第45周VMware虚拟机本虚拟机使用Kali Linux 2016.2第45周镜像安装而成.有兴趣的同学,可以下载使用.(1)该虚拟机支持VMware 9.10 ...

  3. Kali Linux 更新源

    1.  Kali Linux更新源 更换更新源,命令行中执行一下命令 /etc/apt/sources.list 2 替换sources.list里面的内容 可以使用以下三个源(使用一个即可) #ka ...

  4. Kali Linux 更新源 操作完整版教程

    一.查看kali系统的更新源地址文件 命令: vim /etc/apt/sources.list 上面这是kali官方的更新源: 拓展知识: 一个完整的源包括:deb 和 deb-src:上图源地址是 ...

  5. Kali Linux更新和配置

    1.用vim打开 /etc/apt/source.list root@kali:~# vim /etc/apt/sources.list #中科大 deb http://mirrors.ustc.ed ...

  6. kali linux 更新问题

    1.使用一次更新和升级软件替换 apt-get install && apt -y full -upgrade 之后使用 reboot重启    系统,重启之后 再次使用命令   ap ...

  7. Windows 10 更新后VMware Workstation pro无法运行 (无需卸载原版本VM)

    问题 描述:当前Windows版本是win10-1903,VMware版本比较老旧是VMware Workstation Pro 15.0.4:国庆节后微软推送了一个新的更新补丁,10月10日更新之后 ...

  8. kali linux 更新软件源,安装中文输入法,修复Linux与windows引导菜单解决windows引导丢失

    1. 更新软件源打开sources.list文件,进行添加更新源:leafpad /etc/apt/sources.list 2. 添加软件源#官方源 deb http://http.kali.org ...

  9. 2017年Kali Linux更新源

    终端输入: leafpad /etc/apt/sources.list 打开更新源配置文件,将下面的更新源复制到原内容的前面: #163网易 Kali源 deb http://mirrors.163. ...

随机推荐

  1. 取出List<Map<String,Object>>里面Map的key:value值

    1.取出Map其中一个属性的值 Map map = new HashMap(); map.put("key1", "value1"); map.put(&quo ...

  2. MySQL全同步复制基于GR集群架构实现(Centos7)

    目录 一. 理论概述 概述 二. 部署 向组加入新节点 测试 三.总结 一. 理论概述 概述 本案例操作的是针对于MySQL的复制类型中的全同步复制,对几种复制类型简单总结下: 异步复制:MySQL默 ...

  3. CentOS7数据库架构之NFS+heartbeat+DRBD(亲测,详解)

    目录 参考文档 理论概述 DRBD 架构 NFS 架构部署 部署DRBD 部署heartbeat 部署NFS及配合heartbeat nfs切记要挂载到别的机器上不要为了省事,省机器 参考文档 htt ...

  4. 关于operator void* 操作符

    在<大规模C++程序设计>这本书中谈到了迭代器模式. 他提供了这样的一个迭代器的例子     这个for循环中判断终止的写法,有点意思,做一下记录. 这个地方的本质是这样的:C++ 编译器 ...

  5. [ 转载 ] Java基础二

    前言 关于赢在面试的Java题系列基本收集整理完成了,所有题目都是经过精心挑选的,很基础又考验求职者的基本功,应该说被面试到的几率很大.这里整理挑选出来供大家面试前拿来看一看,所有题目整理自网络,有一 ...

  6. [转载]npm 与 package.json 快速入门教程

    npm 与 package.json 快速入门教程 2017-08-02 19:16:20 拭心 阅读数 78648更多 分类专栏: 学学前端   版权声明:本文为博主原创文章,遵循CC 4.0 BY ...

  7. IP选项处理

    1:引言 I P输入函数(i p i n t r)将在验证分组格式(检验和,长度等)之后,确定分组 是否到达目的地之前,对选项进行处理.这表明,分组所遇到的每个路由器以及最终的目的主机都要对分组的选项 ...

  8. Boostnote跨平台 Markdown 编辑器

    Boostnote 0.11.6 发布了,Boostnote 是一个 Markdown 编辑器,可用于 Mac.Windows.Linux.Android 和 iOS 平台. 新版特性 Dev: 更新 ...

  9. Shiro 中的 SecurityUtils(转)

    在 Shiro 中 SecurityUtils 是一个抽象类.并且没有任何子类.在其中声明了一个静态属性,三个静态方法. 静态属性 securityManager private static Sec ...

  10. 【基础算法-树状数组】入门-C++

    目录 基本定义 如何理解树状数组 主要操作 @ 基本定义 树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构. ...