1.准备好一个空的U盘,将镜像激活系统文件拷贝好以备用,
2.开启服务器主机,用PrintScreen
键切换主机屏幕,按Enter
键便可以进入原始系统界面,如果过程中有任何卡顿,可以选择按Ctrl+Alt+Del
进行重启。
机柜编号
一组是一个User,从上至下是一个Server,因此编号为’U1S1,U1S2,U1S3…;U2S1,U2S2…….‘
2.在后续界面中,选择one shot
和USB
模式开始从U盘进入系统装载过程。
3.一段时间以后(大约10分钟),就可以正常进入Ubuntu界面了,在此需要创建Root账号【非常重要,一定要谨记用户名和密码】
4.至此,系统以安装完毕,如下图所示,代表你已经成功一半了
5.为了能够远程连接ubuntu,需要配置IP和DNS,如上图所示,点击屏幕右上角上下箭头的那个图标,选择无线网络1或者2(Wired Connection1/2)
,在图形化界面,分别将Address(网络IP,并不是控制IP,一定要先确认好之后再填入)、Network(子网掩码,255.255.255.0)、Gateway(也是分配好的,一定要事先确认好)、DNS Server(也是事先分配好的,请咨询网络管理员)填写完整,并进行保存,则显示网络已配置成功。
6.【如果上述步骤成功,则跳到第7步】若上述步骤不成功,则需要在Terminal中进行网络适配,在管理员用户下,命令步骤如下:
#配置网络
sudo vim /etc/network/interfaces
#用上述命令查看里面的内容,按i进入编辑模式
#将下面的命令添加进去,保存退出
auto eno1
iface eno1 inet static
address 'your ip'/'Port'
gateway 'your gate way'
#重启网络,这样固定IP就已经配置好了
sudo /etc/init.d/metworking restart
#配置DNS
sudo vim /etc/resolvconf/resolv.conf.d/base
#添加,并保存退出
nameserver 'your DNS'
#应用设置
sudo resolvconf -u
7.因为Ubuntu自带的ssh server不好用,因此为了保证其可用,需要先卸载再安装。所以需要安装一个稳定的Xshell,确保ssh可用,命令如下:
// 卸载
sudo apt-get remove openssh-server
// 安装
sudo apt-get install openssh-server
// 重启ssh服务
sudo service ssh --full-restart
8.以上就已经成功安装了系统并且可以远程登陆了。
装配好了系统,下面所有的操作就在自己个人电脑上,远程控制了
命令:
ssh 'your username'@'your ip'
`press your passwd:` 'your password'
在介绍一些安装方法之前,我先将一些命令甩上来:
#查看系统信息
sudo lshw -C display | grep product
#系统更新
sudo apt update
sudo apt upgrade #will ask you Y/n if you want to upgrade
#以上步骤只是为了做环境的预先准备,因为为了保证系统的稳定与安全,后面要对系统自动更新做禁用处理
#查看显卡类别
lspci | grep VGA
#查看显卡详细信息
lspci -v -s 02:00.0
#查看硬件信息
sudo dpkg --list | grep nvidia-*
lspci | grep -i nvidia
#查看ubuntu推荐安装的显卡驱动类型,建议还是问公司同事或者学长学姐,需要安装哪个版本的,如果这一步选择错了,就哭吧。。。
ubuntu-drivers devices
先是安装了官网最新版的驱动,但是最新驱动锁定了cuda10,而我们需要用的pytorch不支持cuda10,因此只能重新安装cuda其他版本,如此处我安装的是官网的410.73**[建议这样安装]**
推荐的原因在于:
1.官方出的会最大限度地利用显卡资源
2.假如日后需要重新安装其他版本的显卡驱动,官方的只要一条uninstall命令就可以快速地卸载干净。前提是你将下载的“.run”的文件保存了下来,我就是因为手贱,将安装包删除了,所以头疼的要死。。。
下面我先来讲讲如何利用官方的显卡驱动:
1.彻底卸载以前的驱动
#彻底卸载以前的驱动
sudo apt-get remove --purge nvidia*
sudo apt-get autoremove
sudo apt-get clean
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
2.禁止集成的nouveau驱动
Ubuntu系统集成的显卡驱动程序是nouveau,它是第三方为NVIDIA开发的开源驱动,我们需要先将其屏蔽才能安装NVIDIA官方驱动。
如果我们直接安装驱动的话,往往会报错:ERROR: The Nouveau kernel driver is currently in use by your system. This driver is incompatible with the NVIDIA driver
将驱动添加到黑名单blacklist.conf中,但是由于该文件的属性不允许修改。所以需要先修改文件属性[文件属性一般不要修改,如笔者在后面手动修改了一个文件的权限,就崩了。。。吐血。。。]
#查看属性
sudo ls -lh /etc/modprobe.d/blacklist.conf
#修改属性
sudo chmod 666 /etc/modprobe.d/blacklist.conf
#用vim打开
sudo vim /etc/modprobe.d/blacklist.conf
#在最后一行加入
blacklist nouveau
#执行文件内容
sudo update-initramfs -u
#重启电脑后,运行
lsmod | grep nouveau
#若没有输出,证明已经屏蔽掉nouveau
3.禁用桌面服务
#执行命令,关闭桌面服务,稍后还会开启,别慌
sudo /etc/init.d/lightdm stop
4.下载官方驱动文件
官方网址为:https://www.geforce.com/drivers
根据自己机子的实际情况选择,请务必选择英文,不然后面配置会出问题:
点击‘START SEARCH’便会得到可以使用的版本:
右击DOWNLOAD
复制连接,在自己已连接的远程窗口,新建一个文件夹以用来存储这个安装文件**[一定不要删除,请给予它最高权限,我就是在第一次安装的时候因为不小心移rm掉了这个文件,只剩哭泣。。。]**
#新建文件夹
sudo mkdir 'yourfile name'
#下载驱动安装文件
cd ->'yourfile name'
sudo wget 'your driver link'
#for example:sudo wget https://us.download.nvidia.com/XFree86/Linux-x86_64/410.73/NVIDIA-Linux-x86_64-410.73.run
5.运行.run
#给run文件赋予权限
sudo chmod a+x NVIDIA-Linux-x86_64-410.73.run
#安装
sudo ./NVIDIA-Linux-x86_64-410.73.run --no-opengl-files
#安装过程中会遇到
#“Would you like to run the nvidia-xconfig utility to automatically update your X configuration file……”
#切记选择NO
#重启电脑
shutdown -r now
#或者
reboot
#在后面的装配过程中,出现过一个问题:shutdown或者reboot命令不可用,如果有人知道答案的话,请告知原因和修正方式
#驱动安装成功,输入下面命令,如有显示,即可成功
nvidia-smi
6.卸载官方驱动
#到.run文件所在的地址
cd ->'yourfile name'
#卸载驱动
sudo chmod +x *.run
sudo ../NVIDIA-Linux-x86_64-410.73.run --uninstall
上述方法可能会出现的问题_循环登陆
主要表现为在登录界面输入密码后依然跳转回登陆界面,无限循环,这是我在使用.run文件安装时遇到的问题,这里有一个亲测有效的解决方案:
当输入安装指令时,不要简单地输入 sudo ./…run,而是输入:
sudo ./NVIDIA.run -no-x-check -no-nouveau-check -no-opengl-files
-no-x-check #安装驱动时关闭X服务
-no-nouveau-check #安装驱动时禁用nouveau
-no-opengl-files #只安装驱动文件,不安装OpenGL文件
这样再reboot,就不会出现循环登录的问题。
1.卸载之前所安装的驱动
#卸载以前安装过的驱动,如果害怕没有卸载干净的话,可以参照上述.run的方法[1,2]操作一遍
sudo apt-get purge nvidia*
2.把显卡驱动加入PPA
#步骤1
sudo add-apt-repository ppa:graphics-drivers/paa
#步骤1‘【有条件选用,请详细看说明】
#如果使用上述命令在后续安装过程中不能找到对应显卡驱动的包的话,请使用下面这一条命令,重新来一遍,如果上述命令可以很好的安装,就不需要运行下面这条命令
sudo add-apt-repository ppa:xorg-edgers/ppa -y
#步骤2
sudo apt-get update
3.此处可以用显卡驱动推荐命令寻找比较适合的显卡驱动
ubuntu-drivers devices
如上图所示,有推荐415、410、396、390、384等版本,但是还是推荐使用3xxx版本,因为4xx版本,可能会默认固定cuda类型,不方便日后使用
4.安装显卡驱动
sudo apt install nvidia-driver-390
5.检查是否安装成功
#运行下面语句,如有输出证明已安装成功
nvidia-smi
6.锁定更新
#虽然是可选的,但是最好设置一下,以保持稳定的运行环境
sudo apt-mark hold nvidia-driver-390
#更严格的控制系统更新的方式是:
7.综合说明
#利用简单的安装手段只需要四句话:
sudo apt-get purge nvidia*
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-390 nvidia-settings
#四行命令搞定
#安装完毕后重启电脑,运行nvidia-smi,查看生效的显卡驱动
驱动安装完毕之后,就可以安装Cuda了,相较于显卡驱动,Cuda的安装显得尤为简单,值得注意的是,多个Cuda版本可以同时共存。在安装了多个cuda版本后,可以在/usr/local/目录下查看自己安装的cuda版本。
1.首先确认自己安装的环境、gcc和g++版本
gcc — version
g++ — version
sudo apt install linux-headers-$(uname -r)
2.选择合适的Cuda版本
此处需要注意,不要安装9.2版本,具体问题详见链接:https://github.com/pytorch/pytorch/issues/6098
当初入坑安装了9.2 ,结果还是得吐血重装9.0
Cuda9.0的安装文件的官网为:
https://developer.nvidia.com/cuda-90-download-archive
可以根据自己的系统的规格选择相应的文件,当选择好了之后就会出现对应的文件安装命令:
如上图所示:
在远程控制的我们,必须要通过Terminal进行处理:
1>新建一个文件夹,用于存储安装文件:
sudo mkdir cuda9
2>右击上图所示的Download选项复制link
#在新建的文件夹下,用cd命令过去
sudo wget 'your cuda link'
#如:
sudo wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64-deb
3> 在下载文件界面上,直接运行上图中所给出的四条命令即可
sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
sudo apt-get update
#此处如果要安装不同版本的cuda的话,只需要将cuda版本添加进命令中即可,但相应的需要在对应版本的deb文件下运行,如安装8.0版本的:sudo apt-get install cuda-8-0
sudo apt-get install cuda
4>同样禁用软件更新
sudo apt-mark hold cuda
**5>配置CUDA相关环境变量 **
#修改~/.bashrc文件(或~/.zhsrc) 在文件末尾添加环境变量,没有就新建一个
vim ~/.bashrc #修改配置文件(如果你用的是zsh,则需要修改 ~/.zshrc文件)
#在文件结尾处添加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export PATH=$PATH:/usr/local/cuda/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda
6>多个cuda版本的安装
利用同样的方法下载你想安装的另一个版本的cuda工具包(注意是runfile类型),在安装过程中,注意cuda symbol link的选择(首次安装,选y,安装额外的版本,选n)
7>查看cuda版本
cat /usr/local/cuda/version.txt
8>多个Cuda版本之间的切换
可以使用stat命令查看当前cuda软链接指向的哪个cuda版本
cd /usr/local/
stat cuda
可以看到,文件类型是symbolic link,而指向的目录正是/usr/local/cuda-9.0,当我们想使用cuda-8.0版本时,只需要删除该软链接,然后重新建立指向cuda-8.0版本的软链接即可(注意名称还是cuda,因为要与bashrc文件里设置的保持一致),想切换其他版本的cuda,只需要改动建立软链接时cdua的正确路径即可
sudo rm -rf cuda
sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda
[注意]
1.需要下载三个文件
2.因为官网需要用自己的用户名和账号登陆,所以没有办法像Cuda那样直接用‘wget’命令进行下载,只能在自己的机子上下载好了再上传至服务器上,再进行安装,因此在下载之前,你需要先进行注册登陆。
Cudnn官方下载网址:
https://developer.nvidia.com/rdp/cudnn-download
1.下载文档:
打开官网并注册登陆后,会出现下面这个界面,点击同意Lincense,便可以进入下载界面,在下载页面就有相应Cuda对应的Cudnn版本,便可以根据自己的需求进行下载,如下图所示,只有Cuda10.0,Cuda9.2,Cuda9.0,三个版本,所以如果需要Cuda8.0版本的,可以点击‘Archived cuDNN Releases’查看更多选项。
如下图所示,根据我的服务器的系统设备,需要下载以下三个文件。
以9.0为例,三个文件分别是:
libcuDNN7_7.0.5.15–1+cuda9.0_amd64.deb
libcuDNN7-dev_7.0.5.15–1+cuda9.0_amd64.deb
libcuDNN7-doc_7.0.5.15–1+cuda9.0_amd64.deb
2.上传到服务器
下载完毕安装包后,需要将其上传至服务器,此时需要使用scp命令。
1>在本地打开terminal,一定要在本地打开自己的terminal,要不然识别不了本机地址:
scp -i 'the address of your file' 'your username of the server'@'IP of the server':'the address of the server'
3.安装
cd ‘address of your download file’
#依次运行下面三条命令,当然后面的文件名一定要与你自己下载的文件名相对应
sudo dpkg -i libcuDNN7_7.0.5.15–1+cuda9.0_amd64.deb
sudo dpkg -i libcuDNN7-dev_7.0.5.15–1+cuda9.0_amd64.deb
sudo dpkg -i libcuDNN7-doc_7.0.5.15–1+cuda9.0_amd64.deb
至此,cuDNN已安装完毕。
因为是在服务器上配置环境,当然配置完成之后,就可以分配给其他人使用了,因此,我们可以新建用户,并通过向sudoers文件中写入的方式,给相应用户以sudo权限。
1>创建用户
参见:
https://blog.csdn.net/weixin_37877130/article/details/80637713
useradd可用来建立用户账号,它和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。
#建立一个新用户账户testuser1,并设置UID为544,主目录为/usr/testuser1,属于users组
#UID必须要大于499
#主目录可以修改,如果当前没有这个目录,系统会自动创建
#组别可以修改,也可以没有组别
useradd -u 544 -d /usr/testuser1 -g users -m testuser1
#修改密码
echo "newpassword" | passwd --stdio 'your username'
2>删除用户
使用userdel删除用户
userdel travis
将用户目录一同删除使用-f
userdel -f travis
3>分配权限
因为需要给一些用户以权限,因此需要修改sudoers
cd /etc/
sudo vim sudoers
#按i进入编辑模式,# User privilege specification下添加
username ALL=(ALL:ALL) ALL
#按esc退出编辑模式,再按‘:wq'保存退出
在这里笔者犯了一个很大的错误,这也是一般新手经常会犯的错误:
【一定不要这么做,可以用上述所说用root用户,sudo打开进行修改】因为在保存退出阶段,系统显示不能退出,权限不足,因此,我就讲sudoers文件的权限进行了修改,用chmod命令将其改为了‘777’ ,从此系统上所有的用户都成了没有权限的用户,包括超级用户的我,所以以至于后面什么都做不了。。。,无奈只能重启解决。
下面说一下我的吐血重启解决步骤:
ubuntu进入单用户模式,修改sudoers权限,修改root密码
在此,最为麻烦的就是第一步,需要进入grub菜单选项而不是命令行模式,因为ubuntu默认隐藏菜单模式,所以一般长按shift进入的是默认的grub命令行模式,所以需要在第一步的重启过程中,当BIOS进度条快加载完毕或者是即将完毕时,按一下‘ESC’键,才可以进入菜单模式,所以在此一定要好好处理,而且给你按‘ESC’键的时间非常少,需要多试几次。当然笔者是在Dell+Ubuntu16.04的模式下操作的,其他系统是否可用不得而知。
如果对如何进入grub模式还有疑问,可以详见,视频里面是对忘记root密码的情况的设置,所以如果有忘记root密码的情况需要进行修改的话,可以参见下面链接内容,笔者就是顺手将root密码改了:
https://www.youtube.com/watch?v=m3rbpR9uuHA
在以上步骤结束之后,服务器就可以面向服务器上所有用户使用了,这里之所以并没有安装python等其他包的原因在于:由于每一个用户所需要的实验环境不同,所以最好由其个人进行自己个人实验环境配置会比较好。
直接利用virualenv
命令创建自己的工作环境,彼此之间的python环境不会有干扰。
其他参考链接:
系统安装:
https://hackernoon.com/up-and-running-with-ubuntu-nvidia-cuda-cudnn-tensorflow-and-pytorch-a54ec2ec907d
linux命令:
http://www.runoob.com/w3cnote/linux-useful-command.html
SCP命令:
http://www.runoob.com/linux/linux-comm-scp.html
其他软件的安装:
https://blog.csdn.net/zuanjue1207/article/details/80696823
Ubuntu中root用户和user用户的相互切换:
http://www.cnblogs.com/weiweiqiao99/archive/2010/11/10/1873761.html
tmux教程
http://blog.jobbole.com/87584/