Ubuntu 18.04 server + 3090显卡驱动 +cuda安装
此文章为从网络上各部分文章截取拼凑+个人实际安装操作总结而来,如有侵权请联系删除。所有参考原文已在文末列出。
A.安装Ubuntu 18.04 server
- 选English (目前没有中文选项)
- 键盘使用默认
- 提示升级到最新系统版本,不选
- 网络设置(建议安装时配置网络,不配置等系统安装完成后也可自行安装依赖)
- 设置代理服务器,一般不需要,看个人需求
- 设置源,建议改成阿里云镜像(其他国内镜像也行,目的就是图个速度快)
阿里云 http://mirrors.aliyun.com/ubuntu
网易云 http://mirrors.163.com/ubuntu
中科大 https://mirrors.ustc.edu.cn/ubuntu
清华源 https://mirrors.tuna.tsinghua.edu.cn/ubuntu
- 选择系统安装硬盘(如果你有多块硬盘可自行设置,否则直接默认不用管)
- 硬盘信息,系统分区挂载信息
- 格式化你选择的系统安装硬盘
- 设置用户名,密码等基础设置
- 安装openssh server(前面有X,就表示选择安装)
- 其他常用的工具安装,看个人需求(前面有×表示安装)
- 选择取消更新并重启,也可以等待其更新完成
完成以上步骤就等待重启吧,然后输入用户名、密码,就能正常登陆。
-
更改系统时区
先输入 date 查看时间是否正确,然后输入
timedatectl set-timezone Asia/Shanghai
-
安装图像化界面(服务器端不建议这么做,服务器常见是通过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和显卡驱动的版本
注1:**GTX3090需要Compute Capability在8.6以上的cuda,而满足这个要求的cuda又只有11.0以上的版本。而cuda11版本又需要版本号>450的显卡驱动。**其实,从表中我们也可以分析出,cuda和显卡驱动基本都是向下兼容的,意味着我安装最新的cuda和显卡驱动,基本上可以支持以前的几乎所有显卡。
注2:GTX3090各显卡驱动自行携带的cuda版本对应关系(数据截止2021.8.25)
显卡驱动 | CUDA版本 |
---|---|
355.xx | 11.1 |
360.xx | 11.2 |
365.xx | 11.3 |
370.xx | 11.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