手把手,从0搭建一台深度学习的机器【一】系统安装及网卡配置

系列文章概览:手把手,教你从零搭建一台深度学习的机器【系列文章概览】

摘要:跟随作者,手把手教你搭建出一台属于自己的人工智能学习平台!根据导师要求,需要满足如下条件供实验室成员使用。以下系列文章为安装时记录,此时分享出来,一方面用于记录,方便以后查阅;另一方面,分享于各位小伙伴,提供给有需要的人。

近期实验室进了一个的服务器主机(以下简称机器),机器的主体配置如下:

CPU 主板 内存 固态 机械 GPU
i7-11700f 华硕z590-p 海盗船32G×2 西数1T 西数4T 3080Ti

根据导师要求,需要满足如下条件供实验室成员使用。以下系列文章为安装时记录,此时分享出来,一方面用于记录,方便以后查阅;另一方面,分享于各位小伙伴,提供给有需要的人。

要求:

  1. 分配500G固态为机器安装Ubutu18.04LTS系统,剩余的作为存储用途。
  2. 同时将4T机械进行分区。
  3. 为系统装配anconda环境
  4. 搭建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,这时候按相应的按键就行了。一般为f2delf12这些键。也可以去网络上查询当前主板对应的按键。不同主板的bios界面不大相同,但是主体功能是一样的。

3. 关闭安全引导(secure boot)

这一步骤是重中之中,是必须的操作 !!!操作方式基本如下,不同的主板关闭安全引导的方式可能会略有不同。

Security Boot (安全引导),如果只使用Windows操作系统不打算使用Linux的话,这项默认开启就可以了。如果有要安装Linux需求的话,最好还是关闭(disabled )这个选项,否则无法引导。后续将会导致各种各样的问题,如网络驱动无法安装、系统内核无法修改、驱动丢失等等。

Boot Mode (启动模式),有UEFIBIOS两种。如果需要扩展到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左右。点击这个设备,选择新建分区表,按照我下面的方式进行分区:

这里我们就使用"懒人分区法",优点是快速简单,缺点是由于没有进行精细的分区,若该磁盘中的某个磁道损坏,系统的修复难度会增加。再进行正式分区之前,我们先来了解几个概念,以便后续操作:

  1. swap:也叫交换分区、交换空间。作用是在系统的物理内存不够用 的时候,把硬盘内存 中的一部分空间释放出来,以供当前运行的程序使用。在window中称之为虚拟内存
  2. efi:EFI是GPT硬盘分区模式中的系统启动分区。
  3. /:Linux系统根目录。
  1. 配置交换分区

    随着内存技术的发展,对于大多数电脑来说,交换分区存在的一一并不大,就拿笔者个人的双系统(运行内存为16G)来说,当时为linux 划定了8G的交换分区,然后就没然后了......,因为笔者的16G内存基本满足日常需要,因此这个分区一直没有用到。

    网络上有许多"swap为内存的2倍"也不过是一种以讹传讹的说法。如果交换分区的使用都超过4GB以上了,可想而知服务器的性能应该差很多了。

    但是对于一些大型主机来说,运行数据较为庞大,还是为其划定交换分区好一些。笔者查阅了许多资料,大体给定了以下分区建议

    物理内存大小 建议swap大小 说明
    <4G swap = 物理内存大小 x 2 内存较小,运行程序较多时,物理内存出现容量不足的可能性大些。
    4-8G swap = 物理内存大小
    8-64G swap = 8G
    > 64G swap = 16G 64G以上的交换空间,很少出现物理内存不足的情况了。

    选择空闲的磁盘,点击新建分区表,然后就会弹窗,首先需要将用于设置为交换空间然后根据根据上方的建议设置交换空间即可。

  2. 这里我们使用"懒人分区法 ",即直接给/划分空间,不再手动给其子目录分配空间。即将空间交给最大的根目录,让系统自动的管理各个子目录的空间大小。该区域的最小空间为20G。根据需求,作者这里给/分配了500G的空间。(以下网图,选择主分区、空间起始位置、EXT4、/):

  3. 按照往常的装机过程,仅划分这两个区域即可,进行下一步的装机。但是作者这里在完成这一步后,点击安装时却出现了警告,如下图所示。后来发现是因为系统为裸机,没有efi这个分区(EFI是GPT硬盘分区模式中的系统启动分区),从而会报错。

    解决办法是为系统划分一个大约最大1G的efi分区,操作步骤同上,将用于这个地方改为efi分区即可。

    最后完成的效果如下(网图):

  4. 之后就是输入一下个人信息和密码之类的简单操作了,这里不再赘述了。完成这些后等待安装即可。

  5. 安装完成后需要重启机器,不出意外的话,你就可以正常进入系统了。

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/下的都存在,因此我们通过启动盘安装这些依赖即可,不必在额外去下载。安装依赖时按照我下面的顺序来即可:

  1. 进入/g/gcc-8/目录
  2. 进入/l/linux/目录
  3. 进入/g/glibc/目录
  4. 进入/g/gcc-default/目录
  5. 进入/g/gcc-7/目录
  6. 进入/m/make-dfsg/目录
  7. 进入/d/dpkg-dev/目录
  8. 进入/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命令,发现又变成了只有一个本地地址的状态。怀疑是由于软件更新,导致网络驱动的一些版本依赖发生问题,因此,又执行命令将网络驱动卸载,并重新挂载,至此,网络问题才完全解决。

卸载网络驱动:

bash 复制代码
sudo dkms remove r8125/9.006.04 --all

重新安装网卡驱动:

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

下一篇:手把手,从0搭建一台深度学习的机器【二】磁盘分区和挂载

相关推荐
WenGyyyL3 分钟前
无人机检测车辆——多目标检测
人工智能·目标检测·无人机
小爬虫程序猿3 分钟前
当API遇上“交通堵塞”:处理API限制的艺术
android·爬虫·python
TsengOnce6 分钟前
Docker安装稳定版本nginx-1.26.2
linux·nginx·docker
Raymond运维9 分钟前
Rocky、Almalinux、CentOS、Ubuntu和Debian系统初始化脚本v9版
linux·运维·ubuntu·centos·debian·rocky·almalinux
DongHappyyy11 分钟前
Python读取prophesee相机输出的raw文件
python·event·raw·prophesee
股票GPT分析13 分钟前
如何在C#中处理必盈接口返回的股票数据?
python·fastapi
goomind23 分钟前
YOLOv11实战PCB电路板缺陷识别
人工智能·python·深度学习·yolo·目标检测·计算机视觉·缺陷检测
彭彭不吃虫子24 分钟前
有效论证的四个方法:①真值表法 ② 逻辑推演法 ③等值演算法 ④ 主析取范式法
人工智能
新加坡内哥谈技术29 分钟前
预测AI如何提升销售绩效管理:五大方式
人工智能
荣世蓥36 分钟前
6. ARM_ARM指令寻址
linux·运维·arm开发