月度归档:2018年11月

解决Linux关不了机开机,报错NMI watchdog: BUG: soft lockup – CPU#2 stuck for 22s的bug

问题描述

在安装完Ubuntu或者其他Linux, 关机时会卡死, 循环报错NMI watchdog: BUG: soft lockup - CPU#2 stuck for 22s!, 无法关机. 在本人的测试中, Centos18xx版本和Ubuntu16-18均出现了上述问题, 经过一些尝试后, 成功找到了解决方法.

问题分析

初步排查, 定位在显卡驱动上. 我实在一个老MSI笔记本上安装的Linux, 它自带一个GTX960M的独立显卡, 然而, Linux对NVIDIA的显卡一向支持的很差, 会出现各种奇怪的问题. 这次的原因很可能就是它.

解决方法

再开机显示GRUB2界面的时候, 选中你要进入的那个内核版本, 按e, 在Linux内核命令行(以Linux开头的那一行)末尾添加nouveau.modeset=0.这样可以正常进入系统, 直接修改你的grub文件, 把上述添加的命令写进去, 之后执行grub更新, 这样的问题就应该不会复现.

建议

如果你的电脑/笔记本可以屏蔽独立显卡或者只是用CPU集成显卡, 请屏蔽掉独立显卡并且不要再开启了. 如果你需要Linux的图形界面,可以在开机进入系统后把显卡驱动换成NVIDIA自带的驱动,问题就会解决.台式机或者AMD平台暂未测试.

如何在Ubuntu/Centos上安装Wireguard工具 | how to install Wireguard on Ubuntu/CentOS

需求介绍

在做毕业设计的过程中,需要一台高性能的服务器,如果在阿里云等云服务购买的话成本太高,于是把一台老的MSI笔记本安装了Ubuntu Server 16.04.5. 在开发的过程中,我可能不会和上述服务器在同一个局域网内,所以就需要组建一个VPN网络.
经过查找,现成的符合要求的只有如下选择:

  1. 花生壳以及他们公司的一套产品(收费,不推荐)
  2. FRP
  3. OpenVPN%Softether
  4. Wireguard

Wireguard的优势

  1. 配置简单,仅需要公钥秘钥加密解密即可
  2. 速度性能好,在最新的Linux内核上,可以跑满宽带(100M+CN2双向线路)
  3. 服务器资源占用少(内存少,在跑满100M之后,占用CPU30% E5-26XX, 单核心)

安装,配置方法

Ubuntu

$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update
$ sudo apt-get install wireguard

Centos

$ sudo curl -Lo /etc/yum.repos.d/wireguard.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
$ sudo yum install epel-release
$ sudo yum install wireguard-dkms wireguard-tools

直接执行上述命令,即可成功安装,无需其他操作.wireguard不区分服务器和客户机,只需要开启一个虚拟网卡,就实现了互通.

# ip link add dev wg0 type wireguard
# ip address add dev wg0 192.168.2.1/24
# wg setconf wg0 myconfig.conf

如上为核心命令,公钥和私钥可以通过wg genkey来产生私钥,wg pubkey < privateKey产生公钥.
配置文件如下:

[Interface]
PrivateKey = XXXXX
Address = 10.0.0.1/24 
PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = xxx
DNS = 8.8.8.8
MTU = 1420

[Peer]
PublicKey = XXXXX
AllowedIPs = 10.0.0.2/32 

之后使用wg-quick up/down XXX启动服务,服务器客户端一样.XXX为XXX.conf的前缀.具体文档请看官网https://www.wireguard.com/quickstart/.

存在问题

暂时没有简单易用的GUI客户端.