ESXI下Linux虚拟机丢失网卡的解决方法

一天ESXI意外断电重启,发现下面的几台Linux虚拟机丢失网卡,不能通过ssh连接,通过控制台连接上去
发现网卡没有起来,只有一个 lo 的 127.0.0.1 的本地地址
使用

ip addr
查看mac地址, 然后使用命令
vi /etc/udev/rules.d/70-persistent-net.rules 

在打开的文件中查找对应这个mac的网卡名称,再编辑修改

vi /etc/sysconfig/network-script/ifcfg-eth*

对应网卡名称的配置,修改eth名称和rules文件中和mac地址一致的网卡名称对应起来
重新使用命令

service network restart

正常启动网卡,配置的ip恢复使用,可以正常通过ssh连接

Popularity: 6% [?]

Random Posts

    Ubuntu禁用Compiz

    在ESXI上安装了一个Ubuntu16.04,空闲时CPU占用1.2G左右的资源,使用top查看进程,发现是 compiz 这个进程在占用cpu
    网上搜索了一下,发现Compiz是用OpenGL来增强界面显示效果的,虚拟机中不需要这个耗费CPU资源的特性,要将他禁用掉。

    需要先安装另外一个桌面管理器来替代

    sudo apt-get install gnome-session-flashback
    

    安装完后,注销账号重新登录,在登录输入用户名的右侧有一个圆按钮,点这个按钮选择 gnome flashback (Metacity), 输入密码登录系统,出来一个省CPU的简洁界面。
    再次查看空闲时ESXI对这个虚拟机监察到的资源占用情况,只有10MHZ不到的CPU资源消耗,解决问题

    Popularity: 6% [?]

    Random Posts

      gcc链接库碰到错误:std::__cxx11::basic_string, std::allocator > const&)’未定义的引用

      新装了一台ubuntu服务器,将原先centos下的编译环境配置了一份,编译时出现如下错误:

      std::__cxx11::basic_string, std::allocator > const&)’未定义的引用
      

      发现是由于CentOS的gcc版本和ubuntu的gcc版本不一致造成,安装的ubuntu带的gcc5.x版,stl的名称有变化造成

      原因
        gcc5以及以后的版本,将std::string和std::list重写,std::list变为std::__cxx11::list,std::string在c++03库是std::basic_string,而在c++11中变为了std::__cxx11::basic_string。而为了在编译的时候兼容旧版本(链接阶段),可在编译的时候启动_GLIBCXX_USE_CXX11_ABI 宏指定具体链接的库。

      解决方法
      使用_GLIBCXX_USE_CXX11_ABI编译宏
      -D_GLIBCXX_USE_CXX11_ABI=0 // 链接到旧版本,未启用c++11特性,std::string是std::basic_string,如将c++11下的string当作参数传入非c++11库,就会出现error: cannot convert ‘const std::__cxx11::basic_string‘ to ‘const char*’,或者未定义的方法引用(undefined reference)
      -D_GLIBCXX_USE_CXX11_ABI=1 // 链接到新版本

      Popularity: 6% [?]

      Random Posts

        NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver

        安装了cuda驱动的Ubuntu机器重启后,执行nvdia-smi命令提示

        NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver,
        Make sure that the latest NVIDIA driver is installed and running.
        

        网上搜索一阵,发现只要执行如下几句就可以恢复正常

        sudo apt-get install dkms
        sudo dkms install -m nvidia -v 410.79(410.79表示的是驱动版本号)
        

        利用命令 ll /usr/src/ 可查看下面有一个nvidia-410.79文件夹,版本号安装的nvidia驱动而异,比如 nvidia-470.82.00

        发生这样问题的本质是Linux核心被更新了,禁止更新核心就好。

        Popularity: 6% [?]

        Random Posts