目录

前言

0. 版本匹配

1. Ubuntu 20.04

1.1 安装前准备

1.2 制作 Ubuntu 启动盘

1.3 安装 Ubuntu 到服务器

1.4 扩展磁盘分区并挂载到 /home目录

2. 显卡驱动

3. CUDA

4. cudnn

5. Linux的一些操作

6. Tensorflow

7. Pytorch


前言

最近第二次给实验室的服务器配置深度学习环境,很多步骤都忘了,又得找出各种地方收藏的帖子拼凑着看,还有一些新坑要查,就想写一篇总结记录,留着下次操作的时候方便查阅。

以下步骤有很多方法可以达到目的,我只是选择了其中一种,仅供参考。绝大多数步骤都止于完成目的,没有深刻的理解。如有疏漏,还请朋友们指正。

0. 版本匹配

配置之前需要清楚显卡型号,以及对应的操作系统、显卡驱动、CUDA、cudnn、Tensorflow 和 Pytorch 的版本。举我自己的例子,服务器的显卡型号为3090,也就是NVIDIA GeForce RTX 3090。

1、在 nvidia 官网查询适合显卡的驱动:NVIDIA 驱动程序下载

2、查询 Tensorflow 对应的 CUDA、cudnn 以及 Pytorch 对应的 CUDA 版本:

 从源代码构建  |  TensorFlow (google.cn)

Previous PyTorch Versions | PyTorch

3、查询 CUDA 所支持的驱动和系统版本:CUDA Toolkit Archive | NVIDIA Developer

综上,选择的版本如标题所示,其实当时 tensorflow 2.5.0 和 pytorch 1.8.1 官网还没写相关信息,我是一个一个版本重装试出来的(笨比)。

1. Ubuntu 20.04

1.1 安装前准备

1、一台可以制作U盘启动盘的电脑,我所使用的电脑系统是win10

2、1个8G以上的U盘,最好是USB3.0以上

3、下载Ubuntu 20.04镜像

我选择的是 Ubuntu 20.04.2.0 LTS 桌面版本,官网地址:Download Ubuntu Desktop | Download | Ubuntu

1.2 制作 Ubuntu 启动盘

我选择的是 Rufus 这个工具,Rufus - 轻松创建USB启动盘

打开软件,选择想要刻入的镜像、卷标和文件系统,点击开始,选择“ 以 ISO镜像 模式写入”,等待制作完成后取下U盘。如果电脑上插有多块移动设备,记得在第一项选择设备。

1.3 安装 Ubuntu 到服务器

将制作好的 Ubuntu 启动U盘插到服务器上,开机从U盘启动。

如果是一台全新的还没装过系统的服务器,服务器会从U盘启动,直接进入 Ubuntu 的安装界面。如果厂家预先装了一个不想要的系统,那就需要在开机的时候进入 bios 或者 boot setup 界面(在开机的过程中一般会提示按 F11 或者 Delete 进入),设置从U盘启动。

等待启动,进入安装界面,左边栏选择语言(安装完也能修改语言),可以直接选 “安装 Ubuntu(Install Ubuntu) ”进行下一步,也可以选 “试用 Ubuntu(Try Ubuntu)”,看一下运行状况再安装。

 

之后一路根据个人喜好选择点击继续。由于我只安装Ubuntu系统,在 “安装类型(Installation type)”这里我选择的是 “清除整个磁盘并安装 Ubuntu(Erase disk and install Ubuntu)”,选择所要安装的硬盘后使用 Ubuntu 默认分区方式即可。

安装完成后,系统会提示拔出U盘并重启。

1.4 扩展磁盘分区并挂载到 /home目录

在安装步骤中我将 Ubuntu 系统安装到了一块200G的固态硬盘上,此外还有一块7.8T的机械硬盘,鉴于我们实验室的使用需求,我打算将这块硬盘全部挂载到 /home目录下。

重启进入桌面后,打开终端(在桌面右键,选择 “在终端中打开(open in terminal)”)。

1、查看磁盘信息:

sudo fdisk -l  #查看硬盘及分区详细信息
df -h          #查看已经挂载的磁盘的分区及占用情况

如果是第一次使用 sudo 命令,终端会提示输入 sudo 密码,输入用户的密码按回车即可,输入过程界面不会显示,提示密码错误有可能是因为小数字键盘开了 NumLock。

输入 “ sudo fdisk -l " 后可以看到其中有如下信息(一般是拉到最下)。

可以看到 sda 是装了系统的固态硬盘,系统默认分了三个区——sda1是启动引导分区,sda2是扩展分区,sda5是系统根目录所在分区。而 sdb 就是所要操作的机械硬盘(下面的sdb1是分好区的结果,分区的时候没截图)。

此时 sdb 显示的磁盘标签类型(Disklabel type)是 gpt,如果不是 gpt(例如dos)的话,则需要使用 parted 命令修改:

sudo parted /dev/sdb
(parted) mklabel gpt
(parted) quit

2、修改类型为 gpt 后可以用 parted 命令继续分区,但我还是用了 fdisk(笨比):

sudo fdisk /dev/sdb
Command (m for help): n
Partition number (... , default ...):  #自选,默认回车
First sector (...):                    #自选,默认回车
Last sector ... (... , default ...):   #自选,默认回车
Command (m for help): p                #确认没有问题就保存退出
Command (m for help): w                #保存
Command (m for help): q                #退出

3、格式化分区:

sudo mkfs -t ext4 /dev/sdb1     #此处 sdb1 中的 1 对应了上一步的 Partition number

4、创建新 /home目录并挂载: 

sudo mv /home /oldhome          #重命名/home便于后面清理
                                #重命名之后一定要进行下面的操作!!!
                                #否则没有/home目录重启后无法进入系统!!!
                                #这个时候也不要去点文件资源管理器,会卡住!
                                #如果不幸卡住了,重装比较快……以后别误删……
sudo mkdir /home                #创建新/home用于新分区挂载
sudo mount /dev/sdb1 /home      #临时挂载新分区到新/home
cd /oldhome                     #进入到/oldhome文件夹
sudo cp -a * /home              #将旧/home的文件数据复制到新/home,也就是新分区里

5、上述 mount 命令只是临时挂载,开机后还是之前的模样,所以需要配置开机自动挂载,这里推荐用UUID挂载(防止硬盘顺序发生变化带来的麻烦):

sudo blkid                  #查看分区对应的UUID,复制所需要的UUID
sudo vi /etc/fstab          #用vi命令查看并修改fstab文件
                            #这里也可以用vim、gedit等其他命令

#在最后一行添加(如下图):
UUID=xxxx   /home   ext4   defaults   0   0  
#保存退出

6、检查:

sudo mount |grep home         #查看目标分区是否挂载到了/home上
                              #如果没输出显示则表示没挂载
                              #没挂载或者挂载错了则重启进入不了系统!!!

7、重启并清除旧 /home 数据:

sudo rm -r /oldhome

参考文章: 

Linux 磁盘分区和挂载的科普(看完不会对上面的操作一头雾水):玩转 Linux 之:磁盘分区、挂载知多少? - leejun2005的个人页面 - OSCHINA - 中文开源技术交流社区

Ubuntu 20.04 的安装:Ubuntu18.04/20.04完整新手安装教程 - 简书

更换 /home 的挂载分区:ubuntu18.04、20.04 磁盘分区并挂载到home下(更换home的挂载分区)_Zero_Clear的博客-CSDN博客_ubuntu系统升级会导致home盘下内容缺失吗

《鳥哥的 Linux 私房菜》:鸟哥的 Linux 私房菜 -- 浅谈备份策略

2. 显卡驱动

*以下操作在联网情况下进行

3. CUDA

4. cudnn

5. Linux的一些操作

6. Tensorflow

7. Pytorch

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐