最近重装了实验室服务器,系统为Ubantu 20.0.4,另外由于要运行深度学习,所以还要配置CUDAtoolkit,踩过很多坑,特此记录。
1.重装Ubantu 20.0.4
主要参考
https://blog.csdn.net/baidu_36602427/article/details/86548203
1.1下载镜像
https://ubuntu.com/download/desktop
界面有两个download,上面是最新稳定版,下面是还在更新的最新版,为了系统稳定性下载上面的。
1.2制作U盘启动盘
1.准备好一个空的U盘,插入后 我的电脑-右键U盘-格式化
2.下载UltraISO软件用来刻录系统 https://cn.ultraiso.net/xiazai.html
3.下载好后打开UltraISO,菜单栏文件-打开-找到下载的Ubantu位置双击 然后菜单栏启动-写入硬盘镜像文件,弹出界面选中插入U盘,其他默认就行,点击写入,结束后确定退出,拔出U盘
1.3重装系统
将U盘插入电脑,重启,根据电脑品牌进入启动项管理(可能是是F2/F10/F11/F12),可以百度自己牌子电脑的启动项管理,设置为U盘启动。
我的U盘插进去后,启动时有两个选项,有一个带EFI,这个根据电脑配置选择相应的启动项,如果不知道自己电脑有没有可以先选带EFI的,若是报错再用不带EFI的重装一遍。
选用后等候一段时间,进入到安装界面。
前两页是选语言和键盘布局,直接默认英文,因为中文路径在运行代码时可能会有意想不到的坑。
第三页,更新选项上面选择正常安装(normal),其他的默认
第四页,安装类型选择最小面的else,手动配置。这里可以借鉴https://blog.csdn.net/baidu_36602427/article/details/86548203中的配置
注意事项
1.有些时候如果先划分/boot区,后面划分别的区时会报错,如果出现这种情况,将/boot区放在最后划分。
2.安装前找到要装的硬盘,sda、sdb、sdc...是不同的硬盘,选定要安装的硬盘,先删除所有分区,然后再根据链接进行安装。
3.由于自己电脑空间和链接中空间不一定一样大,可以将除/home区以外所有分区大小设置和链接中一样,/home区占用剩下的就行,若是遇见1.中情况要最后对/boot进行分区,则倒数第二个装/home分区,预留1024M给/boot分区
4.如果有多块物理硬盘,如果之前的东西需要就不管,不需要就删除
1.5 安装好后更换源
(这个步骤可能会导致驱动依赖不对,装软件的时候还遇到了别的bug,所以还是别换吧)只更新源就好了
sudo apt-get update
sudo apt-get upgrade
如果要换的话
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
sudo nano /etc/apt/sources.list
将原始内容全部注释(在没有#开头的行都加上#)
将一下内容复制,粘贴(复制后鼠标中键)到打开的窗口中
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
复制粘贴好后ctrl+s ,ctrl + x保存退出。
更新源
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get upgrade
安装输入法
- 打开language support, 这时候会自动弹出窗口让安装依赖,直接安装就好了。
- install/remove languages...打开,看下chinese(simplified)有没有勾选,没有的话选上,确认让自动安装依赖
sudo apt install ibus
sudo apt install ibus-gtk ibus-gtk3
sudo apt install ibus-pinyin
- 重启。设置里打开region & language。如果是ubuntu18.04可以点下面加号添加chinese--chinese(intellegent pinyin)然后win+空格可以切换输入法使用了。如果是ubuntu20.0.4,settings--keyboard里可以找到这个设置。
到最后一步,settings -keyboard -- input sources +号 --添加中文
安装驱动
如果之前安装过记得卸载
之前通过ppa安装的,卸载如下
sudo apt-get remove --purge nvidia*
以前是通过runfile安装的,卸载如下:
sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:graphics-drivers/ppa
ubuntu-drivers devices (查看NVIDIA显卡型号和推荐的驱动程序的模型)
sudo apt-get install nvidia-driver- (输入这个然后按table补全看有哪些选择,选最新或者第二新,或者推荐的那个)
sudo reboot #重启后生效
nvidia-smi #如果没报错,则成功
和驱动配套的cuda版本见官网,记得根据自己想要装的cuda版本配置驱动版本
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
2.安装ssh
首先ifconfig查看IP,若报错显示没有net-tools,则根据报错提示命令安装
sudo apt install openssh-server
sudo apt install openssh-client
sudo nano /etc/ssh/ssh_config
在跳出的窗口中,去掉PasswordAuthentication yes前面的#号,保存退出(ctrl+s--ctrl+x)
重启ssh
sudo /etc/init.d/ssh restart
3.配置CUDA
进入官网 https://developer.nvidia.com/cuda-downloads 下载
image.png
下载runfile文件
cd runfile文件位置
sudo sh cuda_11.2.2_460.32.03_linux.run --override #指令前半部分和官网给的第二行一样
(注意如果没有override,有可能会报错)
运行后会卡一下,别急,这时候乱点可能电脑直接崩了,耐心等待一下。
弹出下一个界面选择continue
重点来了
runfile会自己再下一个CUDA驱动,但是本来已有驱动,所以会报错。在下一个界面取消勾选cuda driver(即第一个,方向键选中后回车取消,再方向键选中继续),过一会就装好了。
验证CUDATOOLKIT是否装好: nvcc -V
但是这时候还报错,因为还没有加入环境变量
sudo nano ~/.bashrc
export LD_LIBRARY_PATH=/usr/local/cuda/lib
export PATH=$PATH:/usr/local/cuda/bin
source ~/.bashrc
如果创建了usr,要在usr自己~目录下也加入环境变量
下载cudnn
官网下载:
https://developer.nvidia.com/cudnn
tar -xvf cudnn...
先解压, 后将动态链接库和头文件放入相应目录
mv cuda/include/* /usr/local/cuda/include/
chmod +x cuda/lib64/* && mv cuda/lib64/* /usr/local/cuda/lib64/
安装完成以后,增加环境变量:
echo "export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:${LD_LIBRARY_PATH} \n" >> ~/.bashrc
source ~/.bashrc && ldconfig
[图片上传中...(image.png-91d5d5-1657371226591-0)]
其他硬盘挂载
新建分区
df -h #查看已挂载硬盘
sudo fdisk -l #查看所有物理硬盘
#对比得出未挂载的硬盘
sudo mkdir /mnt/sdb #对每个未挂载的硬盘都创建相应的文件夹名称供后续挂载,以sdb为例
对未挂载的硬盘,sudo fdisk -l 指令后查看是否分区,如果已分区界面如下:
image.png
未分区界面如下:
image.png
对未分区的硬盘进行分区、格式化:
sudo fdisk /dev/sd* #对想分区、格式化的硬盘进行操作
image.png
输入m -- 输入p查看分区 -- 输入n新建分区 -- 如果只分一个区就一直回车/多个区就在选择开头、结尾扇区时选择自己想分配的大小 -- p查看是否新建成功 -- w保存
格式化分区
sudo mkfs.ext4 /dev/sdb1
挂载硬盘(本来已分区未挂载的硬盘直接执行挂载,如果报错,备份内容并执行上一步格式化)
sudo mount /dev/sd* /mnt/sd* #对应
永久挂载
以上挂载是暂时挂载,重启电脑时需要重新挂载,下进行永久挂载
sudo nano /etc/fstab
可以看到下图:
image.png按照格式加入自己挂载:
image.png最后重新读取:
mount -a
[图片上传中...(image.png-82ba29-1657371238512-0)]
网友评论