系列文章概览:手把手,教你从零搭建一台深度学习的机器【系列文章概览】
摘要:跟随作者,手把手教你搭建出一台属于自己的人工智能学习平台!根据导师要求,需要满足如下条件供实验室成员使用。以下系列文章为安装时记录,此时分享出来,一方面用于记录,方便以后查阅;另一方面,分享于各位小伙伴,提供给有需要的人。
近期实验室进了一个的服务器主机(以下简称机器
),机器的主体配置如下:
CPU | 主板 | 内存 | 固态 | 机械 | GPU |
---|---|---|---|---|---|
i7-11700f | 华硕z590-p | 海盗船32G×2 | 西数1T | 西数4T | 3080Ti |
根据导师要求,需要满足如下条件供实验室成员使用。以下系列文章为安装时记录,此时分享出来,一方面用于记录,方便以后查阅;另一方面,分享于各位小伙伴,提供给有需要的人。
要求:
- 分配
500G固态
为机器安装Ubutu18.04LTS
系统,剩余的作为存储用途。- 同时将4T机械进行分区。
- 为系统装配anconda环境
- 搭建tensorflow、pytorch环境(要求都装配在conda虚拟环境中)。
1.1 制作启动盘
这里制作启动盘的工具是UltraISO
。官网地址:www.ultraiso.com/。UtlraISO 是款收费软件,不过下载安装好以后给我们试用的机会,所以如果你是装机的话足够了。安装好以后打开软件,点击 继续使用
:
点击 文件 -> 打开
,选择下载好的 ISO
镜像文件,然后打开:
点击 启动-
> 写入硬盘映像
:
选项都确定没问题以后可以点击 写入
按钮,此时会提示你会格式化U盘,选择 yes,然后静静的等待刻录完成即可。
1.2 配置BIOS
1. bios简介
BIOS (Basic Input Output System),直译过来后中文名称就是"基本输入输出系统 "。BIOS是个人电脑启动时加载的第一个软件。
其实,它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置 的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制 。此外,BIOS还向作业系统提供一些系统参数。
系统硬件的变化是由BIOS隐藏,程序使用BIOS功能而不是直接控制硬件。现代作业系统会忽略BIOS提供的抽象层并直接控制硬件组件。
以上内容引至百度百科。
2. 如何进入BIOS
进入bios的方式会因主板的不而不同,不同的主板厂商设定的方式不同的。一般在主机刚刚开机出现厂商logo
的时候,通常会在下面有一行小字说明按什么键进入BIOS,这时候按相应的按键就行了。一般为f2
、del
、f12
这些键。也可以去网络上查询当前主板对应的按键。不同主板的bios界面不大相同,但是主体功能是一样的。
3. 关闭安全引导(secure boot)
这一步骤是重中之中,是必须的操作 !!!操作方式基本如下,不同的主板关闭安全引导的方式可能会略有不同。
Security Boot (安全引导),如果只使用Windows操作系统不打算使用Linux的话,这项默认开启就可以了。如果有要安装Linux需求的话,最好还是关闭(disabled )这个选项,否则无法引导。后续将会导致各种各样的问题,如网络驱动无法安装、系统内核无法修改、驱动丢失等等。
Boot Mode (启动模式),有UEFI
和BIOS
两种。如果需要扩展到XP等就操作系统的话,需要将SATA模式
设置为Legacy ,并在这里将启动模式设置为BIOS。而如果要安装Win8、Win10、Linux等比较新的操作系统的话,最好使用UEFI,可以整体提高系统引导速度和安全性。
SATA Mode:SATA模式,有Legacy和AHCI两种。在安装XP系统的时候,需要Legacy模式才能安装。而现在安装最新的Win10等系统的时候,改成AHCI模式更好并能提高硬盘的性能。
1.3 使用启动盘安装系统
这里是以
Ubuntu18.04LTS
作为将要安装的系统。
将装好的启动盘插入机器,重启,并在出现logo界面时根据logo下的提示进入开机引导
。选择选择U盘,我这里是金士顿的,如图。然后回车,便进入了ubuntu安装界面。
选择第二项安装ubuntu,即install ubuntu
接下来就是选择语言的部分,可以选择中文或英文(这里以中文为例)==> 安装ubuntu。
下一步的键盘布局(默认即可),再接下来是选择连接网络,这里先不连接。
接下来的这一步选择正常安装即可(有的版本没有正常安装这一选项,那就全都不选),因为会消耗大量的时间!建议在安装系统后手动进行更新。
选择安装类型,强烈建议选择"其他选项",通过这个选项我们可以自定义磁盘分区,可操作行比较强。
**接下来是分区
,也是装机部分最重要,最难的地方!**以下部分的图片是我用网图,当时装机时忘记拍照了(原理是相同的)。
我们使用提前处理好的1T固态,由于是裸机状态,我们这里显示应该就只有一个空闲 设备(dev/sd*
),大小在1T左右。点击这个设备,选择新建分区表,按照我下面的方式进行分区:
这里我们就使用"懒人分区法",优点是快速简单,缺点是由于没有进行精细的分区,若该磁盘中的某个磁道损坏,系统的修复难度会增加。再进行正式分区之前,我们先来了解几个概念,以便后续操作:
swap
:也叫交换分区、交换空间。作用是在系统的物理内存不够用 的时候,把硬盘内存 中的一部分空间释放出来,以供当前运行的程序使用。在window中称之为虚拟内存
。efi
:EFI是GPT硬盘分区模式中的系统启动分区。/
:Linux系统根目录。
-
配置交换分区
随着内存技术的发展,对于大多数电脑来说,交换分区存在的一一并不大,就拿笔者个人的双系统(运行内存为16G)来说,当时为linux 划定了8G的交换分区,然后就没然后了......,因为笔者的16G内存基本满足日常需要,因此这个分区一直没有用到。
网络上有许多"swap为内存的2倍"也不过是一种以讹传讹的说法。如果交换分区的使用都超过4GB以上了,可想而知服务器的性能应该差很多了。
但是对于一些大型主机来说,运行数据较为庞大,还是为其划定交换分区好一些。笔者查阅了许多资料,大体给定了以下分区建议:
物理内存大小 建议swap大小 说明 <4G
swap = 物理内存大小 x 2 内存较小,运行程序较多时,物理内存出现容量不足的可能性大些。 4-8G
swap = 物理内存大小 无 8-64G
swap = 8G 无 > 64G
swap = 16G 64G以上的交换空间,很少出现物理内存不足的情况了。 选择
空闲
的磁盘,点击新建分区表
,然后就会弹窗,首先需要将用于
设置为交换空间
然后根据根据上方的建议设置交换空间即可。 -
这里我们使用"懒人分区法 ",即直接给
/
划分空间,不再手动给其子目录分配空间。即将空间交给最大的根目录
,让系统自动的管理各个子目录的空间大小。该区域的最小空间为20G
。根据需求,作者这里给/
分配了500G的空间。(以下网图,选择主分区、空间起始位置、EXT4、/
): -
按照往常的装机过程,仅划分这两个区域即可,进行下一步的装机。但是作者这里在完成这一步后,点击安装时却出现了警告,如下图所示。后来发现是因为系统为裸机,没有efi这个分区(EFI是GPT硬盘分区模式中的系统启动分区),从而会报错。
解决办法是为系统划分一个大约
最大1G
的efi分区,操作步骤同上,将用于
这个地方改为efi分区
即可。
最后完成的效果如下(网图):
-
之后就是输入一下个人信息和密码之类的简单操作了,这里不再赘述了。完成这些后等待安装即可。
-
安装完成后需要重启机器,不出意外的话,你就可以正常进入系统了。
1.4 安装网卡驱动
不出意外的话,作者这里出现了意外...... 当我重启机器,兴高采烈的进入系统后发现竟然没有网络!甚至连网络图标都没有!(后来才想起来是因为没有关闭安全启动
导致的,唉~)
第一时间想到了是否机器的网卡损坏了?于是在终端执行一下命令查看网卡是否能够检测到:
bash
lspci | grep -i net
到这里,可以发现系统能够检测到网卡(网卡型号:Realtek PCIe FE Family Controller
),说明硬件没有问题。那么是否是网卡驱动没有安装?于是赶紧打开终端输入了以下命令,果然,是没有安装网卡驱动导致的(正常情况下应该有多个ip)。
bash
ip a
于是,作者根据上一步检测到的网卡型号(Realtek PCIe FE Family Controller
),利用另外一台机器到其对应的官网(Realtek )上下了网卡驱动,要注意驱动版本以及系统版本。
下载驱动后,将驱动文件导入到U盘内,并copy到我们的机器上。采用dkms
工具安装驱动,但是在这之前,我们需要安装一些依赖项,否则,dkms无法安装。这些依赖在启动盘的/pool/main/
下的都存在,因此我们通过启动盘安装这些依赖即可,不必在额外去下载。安装依赖时按照我下面的顺序来即可:
- 进入
/g/gcc-8/
目录- 进入
/l/linux/
目录- 进入
/g/glibc/
目录- 进入
/g/gcc-default/
目录- 进入
/g/gcc-7/
目录- 进入
/m/make-dfsg/
目录- 进入
/d/dpkg-dev/
目录- 进入
/d/dkms
目录(这一步为安装dkms,因此放到最后执行)
进入以上目录后,执行以下命令进行安装。若出现报错,便根据报错提示的缺失包的首字符到对应的包内安装即可:
bash
sudo dpkg -i ./*.deb
至此,我们完成了所有依赖,包括dkms的安装工作。接下来,我们对网卡驱动下手,先将其解压到指定目录/usr/src
下
bash
sudo tar xvf r8125-9.003.02.tar.bz2 -C /usr/src
在解压后的文件夹中添加一个dkms的配置文件 :dkms.conf
(文件所在目录:/usr/src/8125-9.006.04/dkms.conf)(注意这个目录的名字、下面的配置文件内容、编译驱动时的命令中涉及到驱动版本的地方,要根据自己的驱动版本进行修改 <我这里是8125-9.006.04> )
配置文件的内容:
bash
PACKAGE_NAME=Realtek_r8125
PACKAGE_VERSION=9.006.04
DEST_MODULE_LOCATION=/updates/dkms
BUILT_MODULE_NAME=r8125
BUILT_MODULE_LOCATION=src/
MAKE="'make' -C src/ all"
CLEAN="'make' -C src/ clean"
AUTOINSTALL="yes"
接下来使用dkms工具编译驱动:
bash
sudo dkms add -m r8125 -v 9.006.04
sudo dkms build -m r8125 -v 9.006.04
sudo dkms install -m r8125 -v 9.006.04
sudo depmod -a
sudo modprobe r8125
完成以上命令,网卡驱动就安装成功了,如果顺利的话,屏幕右上角也出现了网络的标志。再次输入命令ip a
,可以看到出现了新的ip地址。
以上为正常安装所需要执行的过程,但是作者在执行到
sudo modprobe r8125
时,出现了权限不允许,但是作者已经是使用root(sudo)
身份执行的命令啊?于是作者根据报错的关键词去网络上查找。大多数的回答都是**linux内核
不允许修改**!原来如此,这里的权限不允许,所指的是内核权限!那么管理内核权限的位置之一就是安全引导
这一部分了,于是作者抓紧时间重启机器,进入bios,将安全引导关闭!再次启动机器,发现开机就直接有网络标识了!所以,装机时一定要仔细,不要像作者一样粗心大意!
1.5 更换国内源
网络问题解决了,接下了第一间要做的事情就是将apt源更换为国内的源了(默认为国外的,网速太慢)。
1. 备份
bash
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2.修改
bash
sudo vim /etc/apt/sources.list
将source.list文件内容替换成下面的
shell
# deb cdrom:[Ubuntu 20.04.2.0 LTS _Focal Fossa_ - Release amd64 (20210209.1)]/ focal main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal main restricted
## Major bug fix updates produced after the final release of the
## distribution.
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal universe
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal multiverse
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
# deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu focal partner
# deb-src http://archive.canonical.com/ubuntu focal partner
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted
# deb-src http://security.ubuntu.com/ubuntu focal-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security universe
# deb-src http://security.ubuntu.com/ubuntu focal-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security multiverse
3. 更新
更新软件源
sql
sudo apt update
更新软件
bash
sudo apt upgrade
小插曲:
在执行完软件更新后,作者想通过网络浏览器登录邮箱下载一些配置文件,却发现机器又变成了无网络状态。执行
ip a
命令,发现又变成了只有一个本地地址的状态。怀疑是由于软件更新,导致网络驱动的一些版本依赖发生问题,因此,又执行命令将网络驱动卸载,并重新挂载,至此,网络问题才完全解决。卸载网络驱动:
bashsudo dkms remove r8125/9.006.04 --all
重新安装网卡驱动:
bashsudo dkms add -m r8125 -v 9.006.04 sudo dkms build -m r8125 -v 9.006.04 sudo dkms install -m r8125 -v 9.006.04 sudo depmod -a sudo modprobe r8125