Amax K40 Linux GPU服务器重装记录
因为这台GPU服务器闲置了很久,经过这两天的安装,现在基本能用了。整个过程其实挺坎坷的,因此记录下此次安装过程中遇到的坑,后面好参考。服务器从原先的OpenSuse换成了Ubuntu 16.04 LTS 发行版。
安装系统遇到的问题
安装系统整个流程是这样的:
- 下载Ubuntu镜像,从科大的源上下载
- 制作启动U盘,采用软碟通来制作
- 插入U盘到机器,进入BIOS设置,选择Legacy模式,并将U盘的启动顺序放在最前面
- 启动从U盘启动,进入安装Ubuntu的图形界面,进行重新划分盘然后在盘上安装系统
- 安装好后,重启系统,拔掉U盘,进入BIOS,调整硬盘
ST2000*
的启动顺序,使之排在最前面
其中遇到两个问题。第一个问题是在上述3步骤的时候,选择Legacy还是UEFI。这里Legacy表示选择经典的BIOS启动,BIOS简单来说就是主板上一块固话的flash芯片,它在开机后会最先启动,然后按照里面写好的步骤把主要硬件挨个检查一遍,然后去硬盘找引导程序,然后把引导权交给它,然后就进系统了。UEFI则是一种新的启动方式,Legacy的启动方式要用MBR磁盘格式,UEFI启动方式要用GPT磁盘格式。如果你安装系统时候用的是Legacy,进入系统时选择UEFI则会报错,反过来也是,因此要保持装系统和进系统时两者的一致。 我们的机器是因为比较老旧,所以只支持Legacy,所以选择的时候选择Legacy。
第二个问题是在上述第4步中划分盘的时候,底下的” device for bootloader installation”这个输入框该如何选择。刚开始我们选择了划分好的某个分区,如/dev/sdd1,但是有问题,安装后总有错。后来查看网上的资料,发现都是采用没加下标的盘符,如/dev/sdd。因此在划分盘的时候,在盘开始的位置留一些空间,然后这里选择没下标的盘符,如/dev/sdd,即可。
挂载硬盘的问题
安装好系统后,默认挂载的只有装系统时候的那块盘上的分区,像别的硬盘上的分区如果要开启自动挂载的话,需要在/etc/fstab里面写入记录。
fstab的记录的格式是这样的:
1 | # format <file system> <mount point> <type> <options> <dump> <pass>, for example, |
其中细节可以参考我写的这篇博客。其中type这个参数不好确定,需要用blkid
命令来查看,如下面两种格式:
1 | $ sudo blkid |
知道这个参数之后,就修改/etc/fstab,增加要挂载的硬盘分区,然后重启即可。主要挂载如果参数有错的话,开机启动会报错,进入安全模式,须将其修改后再启动。所以备份原先的fstab是很有必要的。
Caffe编译过程中HDF5库路径的问题
在Ubuntu 16.04中,HDF5文件的lib目录不在系统默认的/usr/local/lib或/usr/lib目录下,而是在/usr/lib/x86_64-linux-gnu/hdf5/serial
目录下,所以在Caffe的Makefile.config中的LIBRARY_DIRS
那行后面增加 /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
。同理,其include目录也不在标准目录,而是在/usr/include/hdf5/serial
目录,因此也需要将其加入到INCLUDE_DIRS
这一行,因此这两行的最终结果如下:
1 | 93 # Whatever else you find you need goes here. |
修改后再重新编译Caffe即可。
cuDNN6.0和tensorflow
在尝试用pip安装tensorflow的时候,安装后执行import tensorflow as tf
的时候,报错,说是找不到cuddnn.so.5,可是pip安装的是用cuDNN5.*编译的二进制文件,也即当前pypi仓库里面是用的cuDNN5.0。为了能用cuDNN 6.0加速性能,我决定自己编译Tensorflow。之前在Ubuntu 14.04上编译过一次,但由于包太老,bazel安装出现问题。这次编译没错,安装官方文档来操作即可。
VNC 显示不全的问题
这个问题现在还没解决,但是基本可以使用了,只不过在VNC界面打开Terminal的时候会报错,而打开Xterm却没问题,网上找了些资料也没好的解决方法。因此这里先把目前的操作记录下来吧。
使用Gnome界面
需要安装一下Gnome图像界面的包:
1 | sudo apt-get install --no-install-recommends ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal |
然后编辑~/.vnc/xstartup文件,修改为如下:
1 |
|
然后关掉之前的VNC连接:
1 | vncserver -kill :1 |
重新设置新的连接:
1 | vncserver -geometry 1840x1020 :1 |
然后再客户端连接服务器,查看是否有问题
安装xfce桌面
这时候需要安装如下的桌面显示包:
1 | sudo apt install xfce4 xfce4-goodies |
然后将~/.vnc/xstartup修改为如下:
1 |
|
然后执行和上面同样的kill掉旧连接,建立新连接。
设置静态IP
服务器重装后,IP地址改变了,但是我们还是希望大家使用熟悉的IP地址,所以需要设置一个静态IP地址。这里实现的步骤如下:
先是执行sudo ifconfig
来查看以太网网卡的名称,因为后面要用到:
1 | $ sudo ifconfig |
可以看到其中有3个网络接口,第三个lo
应该是本地loop接口,不是网卡,前两个,可以看到第一个数据流量大,而第二个数据流量都是0,所以确定网卡名称为enp4s0f0。然后编辑/etc/network/interfaces
文件,内容如下:
1 | # interfaces(5) file used by ifup(8) and ifdown(8) |
其中enp4s0f0
根据你的上条命令的结果自行调整。
修改完后,执行下面的命令重启网络服务:
1 | sudo systemctl restart networking.service |
之后重启系统,就会发现IP已经变为你期望的静态IP。
MatLab 安装
MatLab安装现在还没完成,但已经有一些地方值得记录下来。
先是从学校正版软件中心下载ISO文件,然后解压文件,放在某个目录下,修改其中的installer_inputer,主要修改下面这些地方:
1 | destinationFolder=/usr/local/R2017a |
注意最后一个参数,注释的例子里面都是写的.dat
文件,很误导人,其实在这里写成到network.lic
的绝对路径即可。
然后退出MatLab目录,在别的目录执行:
1 | sudo ./data/public/R2017a_glnxa64_dvd1/install -inputFile /data/public/R2017a_glnxa64_dvd1/installer_input.txt |
这里有个问题,2017a是分2个ISO文件的,一个文件执行完后,另一个文件怎么插入呢?网上有ISO文件编译时的说明,但是想想貌似不可行,以后再试试。