Ubuntu 18.04 server + 3090显卡驱动 +cuda安装

Ubuntu 18.04 server + 3090显卡驱动 +cuda安装

此文章为从网络上各部分文章截取拼凑+个人实际安装操作总结而来,如有侵权请联系删除。所有参考原文已在文末列出。

A.安装Ubuntu 18.04 server

  1. 选English (目前没有中文选项)

请添加图片描述

  1. 键盘使用默认

请添加图片描述

  1. 提示升级到最新系统版本,不选

请添加图片描述

  1. 网络设置(建议安装时配置网络,不配置等系统安装完成后也可自行安装依赖)

请添加图片描述

  1. 设置代理服务器,一般不需要,看个人需求

请添加图片描述

  1. 设置源,建议改成阿里云镜像(其他国内镜像也行,目的就是图个速度快)

请添加图片描述

阿里云 http://mirrors.aliyun.com/ubuntu
网易云 http://mirrors.163.com/ubuntu
中科大 https://mirrors.ustc.edu.cn/ubuntu
清华源 https://mirrors.tuna.tsinghua.edu.cn/ubuntu

  1. 选择系统安装硬盘(如果你有多块硬盘可自行设置,否则直接默认不用管)

请添加图片描述

  1. 硬盘信息,系统分区挂载信息

请添加图片描述

  1. 格式化你选择的系统安装硬盘

请添加图片描述

  1. 设置用户名,密码等基础设置

请添加图片描述

  1. 安装openssh server(前面有X,就表示选择安装)

请添加图片描述

  1. 其他常用的工具安装,看个人需求(前面有×表示安装)

请添加图片描述

  1. 选择取消更新并重启,也可以等待其更新完成

请添加图片描述

完成以上步骤就等待重启吧,然后输入用户名、密码,就能正常登陆。

  1. 更改系统时区

    先输入 date 查看时间是否正确,然后输入

    timedatectl set-timezone Asia/Shanghai 
    
  2. 安装图像化界面(服务器端不建议这么做,服务器常见是通过SSH远程连接控制)

    sudo apt-get install ubuntu-gnome-desktop
    

B.挂载硬盘

1、df -hl
查看系统硬盘(可用的,已经挂载)

Filesystem      Size  Used Avail Use% Mounted on
udev            7.8G     0  7.8G   0% /dev
tmpfs           1.6G  1.9M  1.6G   1% /run
/dev/sda8        82G   12G   66G  16% /        #现在的系统空间,只有82g
tmpfs           7.9G     0  7.9G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           7.9G     0  7.9G   0% /sys/fs/cgroup
/dev/loop0       13M   13M     0 100% /snap/gnome-characters/103
/dev/loop1      141M  141M     0 100% /snap/gnome-3-26-1604/70
/dev/loop2       15M   15M     0 100% /snap/gnome-logs/37
/dev/loop3       35M   35M     0 100% /snap/gtk-common-themes/319
/dev/loop5      3.8M  3.8M     0 100% /snap/gnome-system-monitor/51
/dev/loop6      2.4M  2.4M     0 100% /snap/gnome-calculator/180
/dev/loop4       87M   87M     0 100% /snap/core/4917
/dev/sda6       945M   76M  805M   9% /boot
/dev/sda1        99M   19M   80M  20% /boot/efi
tmpfs           1.6G   16K  1.6G   1% /run/user/121
tmpfs           1.6G  1.4M  1.6G   1% /run/user/1000

其中 sda8的82G是linux文件系统所在的分区
2、

sudo fdisk -l

查看系统分区情况

Disk /dev/sda: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x59fe59fe

Device     Boot     Start       End   Sectors   Size Id Type
/dev/sda1  *         2048    204799    202752    99M  6 FAT16
/dev/sda2          204800    466943    262144   128M  7 HPFS/NTFS/exFAT
/dev/sda3          466944 488853503 488386560 232.9G  7 HPFS/NTFS/exFAT  #没有挂载的分区
/dev/sda4       488855550 976771071 487915522 232.7G  f W95 Ext'd (LBA)  #扩展分区,包括sda5~sda8
/dev/sda5       488855552 767055871 278200320 132.7G  7 HPFS/NTFS/exFAT
/dev/sda6       767057920 769056767   1998848   976M 83 Linux
/dev/sda7       769058816 801953791  32894976  15.7G 82 Linux swap / Solaris
/dev/sda8       801955840 976771071 174815232  83.4G 83 Linux


Disk /dev/sdb: 465.8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xcf2bbeb4

Device     Boot Start       End   Sectors   Size Id Type
/dev/sdb1        2048 976769023 976766976 465.8G  7 HPFS/NTFS/exFAT     #另外一块硬盘,未挂载

可以看到系统有两个硬盘分别是 /dev/sda 和/dev/sdb

其中/dev/sda8是现在的系统可用空间,sda3~5和/dev/sdb1这几个个分区没有被挂载

需要将这几个未挂载的分区通过lvm合并为一个虚拟分区,并挂载在指定目录作为系统数据盘。

具体操作:

0、需要安装lvm2

sudo apt install lvm2  # 直接安装

或者

sudo apt install -d lvm2   # 打包下载模式,会下载所有需要的安装包
#然后将所有的安装包拷贝到制定服务器中,通过以下命令安装
sudo dpkg -i *.deb

1、创建物理卷

xxxx@xxxxxxxx:~/lvm2$ sudo pvcreate /dev/sdb1      #pvcreate命令创建物理卷,将/dev/sdb1创建成物理卷
WARNING: ntfs signature detected on /dev/sdb1 at offset 3. Wipe it? [y/n]: y
  Wiping ntfs signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created.    # 创建成功
xxxx@xxxxxxxx:~/lvm2$ sudo pvdisplay            #pvdisplay命令查看已创建的物理卷,可以看到刚才创建的/dev/sdb1已经创建好,空间为465g
  "/dev/sdb1" is a new physical volume of "<465.76 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               <465.76 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               nH4Ctd-nKbk-BiKr-VIRM-LeL5-LcOv-w8lm02

2、依法炮制,分别将/dev/sda5和sda3 创建程物理卷

xxxx@xxxxxxxxx:~/lvm2$ sudo pvdisplay
  "/dev/sda5" is a new physical volume of "<132.66 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda5
  VG Name               
  PV Size               <132.66 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               4hy6FJ-I3kp-MAGk-p5kW-TKiF-ZUV8-NucR68

  "/dev/sdb1" is a new physical volume of "<465.76 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               <465.76 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               nH4Ctd-nKbk-BiKr-VIRM-LeL5-LcOv-w8lm02

  "/dev/sda3" is a new physical volume of "232.88 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sda3
  VG Name               
  PV Size               232.88 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               dxcoPX-8ZER-Pblj-wznH-cNYs-GBsu-sl0yde

3、将刚才创建的几个物理卷打包成卷组

xxxx@xxxxxxx:~/lvm2$ sudo vgcreate vgdata /dev/sdb1 /dev/sda3 /dev/sda5 # 通过vgcreate 命令将刚才创建的三个物理卷打包, 打包后的卷组名称自定义为 vgdata
  Volume group "vgdata" successfully created
xxxx@xxxxxxx:~/lvm2$ sudo vgdisplay
  --- Volume group ---
  VG Name               vgdata        #自定义的卷组名称
  System ID             
  Format                lvm2
  Metadata Areas        3
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                3
  Act PV                3
  VG Size               <831.29 GiB    # 卷组总空间
  PE Size               4.00 MiB
  Total PE              212810
  Alloc PE / Size       0 / 0   
  Free  PE / Size       212810 / <831.29 GiB
  VG UUID               5Om20m-pFlv-9feC-FQNQ-HfOf-brgE-RvDpdA    # uuid

4、利用刚创建好的卷组创建逻辑卷

  • xxxx@xxxxxxxx:~/lvm2$ sudo lvcreate -L 830G -n lvsdata vgdata    # 通过lvcreate 命令将刚创建的卷组 vgdata 生成逻辑卷 lvsdata, -L可以指定虚拟卷的大小, -n 指定逻辑卷的名称,可以自定义
    WARNING: ntfs signature detected on /dev/vgdata/lvsdata at offset 3. Wipe it? [y/n]: y
      Wiping ntfs signature on /dev/vgdata/lvsdata.
      Logical volume "lvsdata" created.
    xxxx@xxxxxxxx:~/lvm2$ sudo lvdisplay    # lvdisplay 显示逻辑卷信息
      --- Logical volume ---
      LV Path                /dev/vgdata/lvsdata    # 逻辑卷的路径
      LV Name                lvsdata                # 逻辑卷名称
      VG Name                vgdata                 # 卷组的名称
      LV UUID                ojeOF0-pyh4-fLSY-RS09-KCSZ-Kd0j-ZiBZx5    # 逻辑卷uuid
      LV Write Access        read/write
      LV Creation host, time zzd12tdl-test23, 2020-04-14 17:19:36 +0800
      LV Status              available
      #open                 0
      LV Size                830.00 GiB               # 逻辑卷大小
      Current LE             212480
      Segments               3
      Allocation             inherit
      Read ahead sectors     auto
    
      - currently set to     256
        Block device           253:0
    

5、逻辑卷创建好后,就可以将该逻辑卷作为一个分区进行挂载

xxxx@xxxxxxxx:~/lvm2$ sudo mkfs -t ext4 /dev/vgdata/lvsdata        # mkfs命令将 刚创建的逻辑卷格式化,-t 指定文件类型 ,该过程可能需要一点时间
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 217579520 4k blocks and 54394880 inodes
Filesystem UUID: d217bfb0-219c-41fe-af9c-008b67396829
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
	102400000, 214990848

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information:          
done
xxxx@xxxxxxxx:~/lvm2$ sudo mount -t ext4 /dev/vgdata/lvsdata /home/data        # 将刚才创建的逻辑卷/dev/vgdata/lvsdata 挂载在本地目录 /home/data下,以后就可以在该路径下访问这个逻辑卷
xxxx@xxxxxxxx:~/lvm2$ df -hl        # 通过df -hl命令查看系统分区
Filesystem                  Size  Used Avail Use% Mounted on
udev                        7.8G     0  7.8G   0% /dev
tmpfs                       1.6G  1.9M  1.6G   1% /run
/dev/sda8                    82G   12G   66G  16% /
tmpfs                       7.9G     0  7.9G   0% /dev/shm
tmpfs                       5.0M  4.0K  5.0M   1% /run/lock
tmpfs                       7.9G     0  7.9G   0% /sys/fs/cgroup
/dev/loop0                   13M   13M     0 100% /snap/gnome-characters/103
/dev/loop1                  141M  141M     0 100% /snap/gnome-3-26-1604/70
/dev/loop2                   15M   15M     0 100% /snap/gnome-logs/37
/dev/loop3                   35M   35M     0 100% /snap/gtk-common-themes/319
/dev/loop5                  3.8M  3.8M     0 100% /snap/gnome-system-monitor/51
/dev/loop6                  2.4M  2.4M     0 100% /snap/gnome-calculator/180
/dev/loop4                   87M   87M     0 100% /snap/core/4917
/dev/sda6                   945M   78M  803M   9% /boot
/dev/sda1                    99M   19M   80M  20% /boot/efi
tmpfs                       1.6G   16K  1.6G   1% /run/user/121
tmpfs                       1.6G  1.4M  1.6G   1% /run/user/1000
/dev/mapper/vgdata-lvsdata  816G   77M  775G   1% /home/data  # 对比之前的系统信息,可以看到多了一个新的系统分区,大小为816G,暂时不清楚为什么不是830G

6、至此硬盘已经整合并挂载在我们指定的目录下,但是通过mount命令挂载的分区在系统重启后会消失,需要重新绑定,我们通过修改/etc/fstab文件来设置开机自动挂载

xxxx@xxxxxxxx:~/lvm2$ sudo blkid    # 通过blkid命令查看分区的 uuid 
[sudo] password for tools: 
/dev/sda8: UUID="fdbc6367-9c37-4650-8deb-4372612cc8fc" TYPE="ext4" PARTUUID="59fe59fe-08"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/sda1: SEC_TYPE="msdos" UUID="28E2-10EA" TYPE="vfat" PARTUUID="59fe59fe-01"
/dev/sda2: UUID="E9570E031D501733" TYPE="ntfs" PARTUUID="59fe59fe-02"
/dev/sda3: UUID="dxcoPX-8ZER-Pblj-wznH-cNYs-GBsu-sl0yde" TYPE="LVM2_member" PARTUUID="59fe59fe-03"
/dev/sda5: UUID="4hy6FJ-I3kp-MAGk-p5kW-TKiF-ZUV8-NucR68" TYPE="LVM2_member" PARTUUID="59fe59fe-05"
/dev/sda6: UUID="4700795e-88f1-4089-80e0-cfa873357dba" TYPE="ext4" PARTUUID="59fe59fe-06"
/dev/sda7: UUID="f1ef528d-c356-4f6e-a1a2-9a9d712af70f" TYPE="swap" PARTUUID="59fe59fe-07"
/dev/sdb1: UUID="nH4Ctd-nKbk-BiKr-VIRM-LeL5-LcOv-w8lm02" TYPE="LVM2_member" PARTUUID="cf2bbeb4-01"
/dev/mapper/vgdata-lvsdata: UUID="d217bfb0-219c-41fe-af9c-008b67396829" TYPE="ext4" #可以看到刚才挂载的逻辑卷 在这里
tools@zzd12tdl-test23:~/lvm2$ cat /etc/fstab # 查看/etc/fstab文件,可以看到最初挂载的几个分区在这里都有记录,我们需要将刚才挂载的逻辑卷添加进去
# /etc/fstab: static file system information.
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda8 during installation
UUID=fdbc6367-9c37-4650-8deb-4372612cc8fc /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda6 during installation
UUID=4700795e-88f1-4089-80e0-cfa873357dba /boot           ext4    defaults        0       2
# /boot/efi was on /dev/sda1 during installation
UUID=28E2-10EA  /boot/efi       vfat    umask=0077      0       1
# swap was on /dev/sda7 during installation
UUID=f1ef528d-c356-4f6e-a1a2-9a9d712af70f none            swap    sw              0       0

文件最后添加一句

UUID=d217bfb0-219c-41fe-af9c-008b67396829 /mnt/data   ext4  defaults 0 2
# UUID 填写需要挂载的逻辑卷的uuid , /mnt/data 是需要挂载的目录 , 类型为ext4 , 第一个数字0 表示开机不检查磁盘,第二个数字 0表示交换分区,1代表启动分区(Linux),2表示普通分区

至此 系统硬盘lvm和分区挂载完成,现在可以通过刚才挂载目录/mnt/data 访问绑定的硬盘。

C.扩展硬盘容量

当本地server出现磁盘满了的情况进行lvm的扩容

1.查看磁盘情况

df -hl

请添加图片描述

2.打出存在的卷组

sudo vgdisplay

请添加图片描述

可以看出
Alloc PE / Size 12800 / 50.00 GiB
Free PE / Size 44049 / <172.07 GiB
这两个 第一个就是我的 /dev/mapper/ubuntu–vg-ubuntu–lv 这个磁盘
第二个是 这个磁盘可以扩容的大小 也就是剩余可以扩容多少

3.扩容

sudo lvextend -L 50G /dev/mapper/ubuntu--vg-ubuntu--lv 
# 扩容50G给这个盘 
#如果出现 New size (12800 extents) matches existing size (12800 extents).采用以下方式,将全部空间得给当前盘
sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv

4.重新计算磁盘大小

sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

5.重新查看磁盘情况

df -hl
sudo vgdisplay

请添加图片描述

D.安装N卡驱动

1.在终端输入以下指令查看当前系统推荐安装的显卡版本

ubuntu-drivers devices

2.去英伟达官网下载.run文件,然后安装一些 NVIDIA 显卡依赖的软件,在终端依次执行如下命令:

sudo dpkg --add-architecture i386
sudo apt update
sudo apt install build-essential libc6:i386

3.禁用Ubuntu默认自带的显卡驱动nouveru

sudo bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf"
sudo bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf"

执行完上面两条指令后,我们使用如下命令看看是否成功禁用了开源驱动:

cat /etc/modprobe.d/blacklist-nvidia-nouveau.conf

如果和下面一样,表示成功了。在这里插入图片描述

不放心可以再输入以下指令,没有任何输出则证明成功卸载驱动

lsmod | grep nouveau

4.重启一下系统,运行下载的.run文件

sudo sh NVIDIA-Linux-x86_64-xxx.xx.xx.run #先进入存放.run的路径下再根据具体的驱动版本型号运行指令

如果出现安装错误
An NVIDIA kernel module ‘nvidia-drm’ appears to already be loaded in your kernel…
那么就输入这一行代码

sudo systemctl isolate multi-user.target
sudo modprobe -r nvidia-drm

重启电脑后,分辨率会下降,继续设置,运行.run

请添加图片描述

运行结束后,重启电脑,分辨率正常

5.运行运行代码进行测试,看显卡驱动是否安装成功

nvidia-smi

请添加图片描述

E.安装CUDA

根据表格自行搭配cuda和显卡驱动的版本

img

注1:**GTX3090需要Compute Capability在8.6以上的cuda,而满足这个要求的cuda又只有11.0以上的版本。而cuda11版本又需要版本号>450的显卡驱动。**其实,从表中我们也可以分析出,cuda和显卡驱动基本都是向下兼容的,意味着我安装最新的cuda和显卡驱动,基本上可以支持以前的几乎所有显卡。

注2:GTX3090各显卡驱动自行携带的cuda版本对应关系(数据截止2021.8.25)

显卡驱动CUDA版本
355.xx11.1
360.xx11.2
365.xx11.3
370.xx11.4

1.从官网自行下载所需的CUDA包(.run文件)

2.进入.run文件所在路径

3.给.run文件加上可执行权限

sudo chmod u+x cuda_10.0.130_410.48_linux.run #自行修改对应的版本号

4.运行安装文件

sudo ./cuda_10.0.130_410.48_linux.run #自行修改对应的版本号

注意:
- 首先是一个声明,可以疯狂按着enter键直到过完整个声明;
- do you accept …? accept
- install NVIDIA 什么什么图形驱动…? n(这个是询问你要不要安装cuda自带的显卡驱动,注意一定不要选这项否则系统大概率会崩溃,原因目前未知)

- install the CUDA 10.0 Toolkit? y
- 后边都是填的 y

5.进入~/.bahsrc文件添加环境变量

export CUDA_HOME=/usr/local/cuda-10.0 
export PATH=$PATH:$CUDA_HOME/bin 
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

6.保存~/.bahsrc文件,更新一下

source ~/.bashrc

7.验证安装的CUDA是否成功,运行以下命令来测试是否安装成功:

cd /usr/local/cuda/samples/1_Utilities/deviceQuery 
#注意/usr/local/下可能会有cuda和cuda-xx.x选择自己安装的cuda-xx.xx的路径
sudo make
./deviceQuery
#正常情况下执行完会看到当前cuda版本的信息,此代表了安装成功

后续安装CUDNN参考下面这篇文章:

https://blog.csdn.net/Adieu_csdn/article/details/100081738

参考文献:

https://blog.csdn.net/qq_45945548/article/details/109082751

https://blog.csdn.net/weixin_41735055/article/details/105508462

https://blog.csdn.net/qq_14824885/article/details/82664635

https://blog.csdn.net/yaohuan2017/article/details/108670724

https://www.jianshu.com/p/ac70300b598b

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值