Technical articles
决定使用Linux系统,一条指令就能安装各种环境,配置起来感觉比win10方便的多,
实在是非常适合用来搞开发,然而在下只是一名家境贫寒的学生党,
么有多余的钱买一台新的电脑,手上只有一台华硕的飞行堡垒5代fx80,众所周知,
飞行堡垒装Linux系统是非常不稳的,身边很多的同学,包括一个学长,
他的电脑是上代飞堡,Unbuntu用的好好的,突然显卡驱动就没了,导致笔记本不能外接显示器,
也有同学根本就装不上显卡驱动。。。
所以经过一番思想斗争,就决定还是使用vmware,整一个linux虚拟机。
一开始虚拟机是能正常使用的,然而突然有一天打开电脑,
打开虚拟机,再也无法进入系统,一遍又一遍重启也还是黑屏。
解决问题
等了很久也没有反应,但是挂起时能够看到显示,当时以为虚拟机坏了,还以为要重装系统和环境了,
后来比较幸运的找到了解决办法,需要我们在Windows下的cmd窗口中输入 :
netsh winsock reset
然后重启计算机即可。
但是这是为什么呢?这条指令又是什么意思呢?
netsh winsock reset命令,作用是重置 Winsock 目录。如果一台机器上的Winsock协议配置有问题的话
将会导致网络连接等问题,
就需要用netsh winsock reset命令来重置Winsock目录借以恢复网络。这个命令可以重新初始化网络环境,
以解决由于软件冲突、病毒原因造成的参数错误问题。
netsh是一个能够通过命令行操作几乎所有网络相关设置的接口,比如设置IP,DNS,网卡,无线网络等,Winsock是系统内部目录,
Winsock是Windows网络编程接口,winsock工作在应用层,它提供与底层传输协议无关的高层数据传输编程接口,
reset是对Winsock的重置操作。
当执行完winsock的命令重启计算机后,需要重新配置IP。
网上有一种说法,是因为启动了wegame之后,wegame修改了一些网络的相关参数,导致和vm的配置冲突。
下面是知乎网友的解释:
虚拟机和主机之间的通信,基本上是以 socket 的方式进行通信的(这里的 socket 泛指一切 socket,包括本地的、网络的等等)
某个程序通过 LSP 给系统的 TCP/IP stack 注入了自己的 DLL,如果程序退出时,没有把这个 DLL 收回来,
或者回收失败、没有彻底回收等,
那么这个 DLL 残留的东西影响了整个 TCP/IP stack,而且是永久性的。
每个 socket 收发的数据包是要经过 TCP/IP stack 的,这个 DLL 可能会对这些 socket 的数据包做了些什么操作
(比如修改数据、直接丢弃等等),
然后所以你的虚拟机就黑屏了……