2020年5月

devtoolset是个好东西,解决了我使用CentOS多年要自行更新gcc工具链的困扰。

然而我为什么使用了多年才知道= =

使用这条命令启用包含有devtoolset的软件源:

sudo yum install centos-release-scl
sudo yum-config-manager --enable rhel-server-rhscl-7-rpms

然后快乐sudo yum install devtoolset-*即可。

横杠后的数字,可选的有7、8和9。根据测试,分别对应的是GCC的7、8和9三个大版本。

然后是启用:

scl enable devtoolset-8 bash

其中8bash可以分别替换为需要的devtoolset的版本,以及要使用的命令行的可执行文件,就可以实现一般的配置方法了。此时再看gcc -v,主版本和devtoolset的版本一致。

当我实验室的好兄弟告诉我,那台插满了GPU和硬盘的Inspur NF5288服务器家目录炸了的时候,我的内心是拒绝的= =

起初的表现形式是这样的:在家目录下输入ls,直接提示Input/Output error,没有任何商量的余地。
后来重启了一下之后,情况更加混乱了:由于为了合理规划高速/低俗空间,系统装在了RAID 1的SSD中,而家目录则挂在了RAID 5的HDD上。这导致我们的系统启动正常,但是出现了奇怪的IO错误,推测是fstab试图挂载家目录的时候出了问题,结果顺手把系统给崩了。(emm忘记截图了,总是就是要求用户输入root密码修复系统或者Ctrl+D跳过步骤一类的提示,也不知道我是忘记root密码了还是系统出问题了)

然后就开始推测:可能是分区坏了?
遂插入Ubuntu系统安装盘(为啥不是CentOS?因为手头只有Nvidia的安装盘了),准备fsck修复磁盘。然而操作后发现,同样报出I/O error错误,磁盘修复根本无法运行,盘都读不了。

接下来思考后开始怀疑,这个I/O错误指的是不是系统底层硬件上有问题(磁盘修复工具都无法读取,看来是软件无法完成的工作了),于是想起了服务器上8块硬盘上,原本应该是8个绿灯,而现在有2块亮起了红灯。

是不是RAID控制器能给出什么有用的信息?遂重启开机进入RAID管理界面,果然发现了端倪:SSD组成的RAID 1正常工作,而HDD组成的RAID 5处于Offline(即离线/不可用)状态。查看后发现,其中4块好的HDD处于UG状态(推测是正常工作),而有问题的两块处于Frn-Bad状态。

秉着开机时所有HDD全部为绿灯的事实,抱着企业级的HDD(Seagate ST2000NX0253)不会这么容易损坏的心态,查找了一下有没有解决方案,结果还真有:https://support.huawei.com/enterprise/es/doc/EDOC1000163569/e744d41f/restoring-a-hard-drive-in-frn-bad-state

鬼知道为什么最先找到的是西班牙语版的,但我还是说一句菊花NB好吧

SAS3108的RAID管理界面一般有4~5个选项卡,其中第一个可以通过方向键查看磁盘状态。在不同选项卡之间使用Ctrl+N或者Ctrl+P切换。(其实界面最下方有操作说明)

大致步骤如下(华为文档翻译+copy):

  1. 上下键选择到需要修复的RAID阵列,Ctrl+N切换到PD Mgmt(估计是Physical Disk Management的缩写),上下键选到Frn-Bad状态的磁盘,按F2,在菜单中执行Make unconfigured good选项(强制通知RAID控制器本磁盘无物理损坏),然后磁盘会进入Foreign状态。

  2. 之后管理界面会出现第五个选项卡Foreign View。在这里进行RAID配置的恢复。可以参照这个教程:https://support.huawei.com/enterprise/es/doc/EDOC1000163569?section=j04f。 选择到要恢复配置的磁盘标题,然后F2选择Foreign config > Import,完成配置导入工作。

  3. 接下来回到VD Mgmt(Virtual Disk Management),发现之前处在Foreign状态的两块磁盘已经相应地进入了OnlineRebulding状态,分别表示磁盘已经进入了正常工作状态,或是正在进行修复。此时已经可以重新启动,并且正常进入系统了。

  4. 虽然完成配置导入后已经可以启动系统,直接由于不知道在系统正常工作的情况下RAID磁盘的恢复工作是否进行,为了安全起见,本次采用的方法是在RAID管理界面等待修复完成后,再进入系统。修复进度极其缓慢,花了近5个小时才完成一块磁盘的重建= =

后记

后来寻找问题的原因的时候,发现似乎是因为不支持热插拔造成的。

高级作战记录

学长:你看这服务器这么高级,¥%#*#@@#&@%(伸手欲拔出服务器上的硬盘)
我:学长最好还是别拔吧,万一等下出问题...
学长:这又没啥,你看硬盘摆在外面,不就是支持热插拔的吗
(说罢取下一块)
学长:你看,这不是没事吗
(说罢装了回去)

直到几个小时后,有学弟说服务器坏了用不了之后,事态的严重性才扩散开来

(我:得亏学长只拔了一块,拔多了估计真得凉凉)

把WLAN的网络桥接到LAN,按Ctrl依次选中LAN和WLAN,再在WLAN上右键点桥接。

中间可能会需要把网线拔下来,再插上去,一般来说等识别出网络的时间应该在1-2分钟内

不知道是玄学不

从某教育网上摸来的,不知道有用没,先放着

能够升级到校园正版的windows版本有:

win8 企业版和专业版
win7企业版和专业版
vista business 和enterprise版本
升级办法:首先以管理员身份运行命令行CMD,win7和win8都可以在搜索那输入cmd,然后会出来cmd选项,点击右键选择以管理员身份运行, 然后输入命令:

slmgr /ipk KMS密钥

这里的密钥对应你得操作系统版本如下:

Windows 7
Windows 7 Professional FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4
Windows 7 Professional N MRPKT-YTG23-K7D7T-X2JMM-QY7MG
Windows 7 Enterprise 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH
Windows 7 Enterprise N YDRBP-3D83W-TY26F-D46B2-XCKRJ
Windows 7 Enterprise E C29WB-22CC8-VJ326-GHFJW-H9DH4

Windows 8
Windows 8 Professional NG4HW-VH26C-733KW-K6F98-J8CK4
Windows 8 Professional N XCVCF-2NXM9-723PB-MHCB7-2RYQQ
Windows 8 Enterprise 32JNW-9KQ84-P47T8-D8GGY-CWCK7
Windows 8 Enterprise N JMNMF-RHW7P-DMY6X-RF3DR-X2BQT

Windows Vista
Windows Vista Business YFKBB-PQJJV-G996G-VWGXY-2V3X8
Windows Vista Business N HMBQG-8H2RH-C77VX-27R82-VMQBT
Windows Vista Enterprise VKK3X-68KWM-X2YGT-QR4M6-4BWMV
Windows Vista Enterprise N VTC42-BM838-43QHV-84HX6-XJXKV

Windows 8.1
Windows 8.1 Professional GCRJD-8NW9H-F2CDX-CCM8D-9D6T9
Windows 8.1 Professional N HMCNV-VVBFX-7HMBH-CTY9B-B4FXY
Windows 8.1 Enterprise MHF9N-XY6XB-WVXMC-BTDCT-MKKG7
Windows 8.1 Enterprise N TT4HM-HN7YT-62K67-RGRQJ-JFFXW

Windows 10
Windows 10 Professional W269N-WFGWX-YVC9B-4J6C9-T83GX
Windows 10 Professional N MH37W-N47XK-V7XM9-C7227-GCQG9
Windows 10 Enterprise NPPR9-FWDCX-D2C8J-H872K-2YT43
Windows 10 Enterprise N DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4

完整命令如下:以win7 专业版为例

slmgr.vbs /ipk FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 (回车)  
slmgr.vbs /skms ca.swufe.edu.cn (回车)  
slmgr.vbs /ato(回车)  

这样就完成了升级激活的安装了,你可以点击电脑然后鼠标右键查看属性就能看到自己电脑的激活状态了

使用的是Linux操作系统(哪个发行版问题不大),服务用的是cups,配完之后Android系统自带的系统打印服务和Linux的打印服务都可以识别。(Windows过于万能就没做测试了,手头懒得找客户端= =)

然后网上见描述怎么配置cups服务的博客很多,讲的基本上八九不离十,随便看就行。

大致描述一下配置流程:

  1. cups服务默认监听于本机,将其监听地址修改为0.0.0.0,允许来自任意主机的连接,成为网络打印机(也可以设置为自定义网段,比如192.168.1.0什么的,安全性更好);

  2. 禁止非本机访问cups的web管理界面(也是出于安全考虑);

  3. 重启cups服务,添加打印机;

  4. 打印测试。

踩坑记录:

  1. 其中登录web管理界面用的是本机linux账户,cups管理员权限默认需要的组是lpadmin,不是该组的用户不能添加新打印机;

  2. 打印机需要安装合适的驱动才能使用。有的打印机(比如本人本次使用的EPSON L310,基于ESC/P指令集;EPSON官方提供了开源的是ESC/P-R指令集的打印机驱动,两者不一样,无法正常使用)不提供驱动源码,只给了编译好的二进制文件(显然是x86amd64平台的),在我aarch64的开发板上就无法使用。