Ubuntu 系统安装教程

最近搞崩了实验室的 Amax 服务器的 Ubuntu 操作系统,于是经历了一番复杂的安装尝试终于把 Ubuntu 安装回去了,本教程仅适合 UEFI 启动的机器参考,具体硬盘配置为 500G 固态硬盘和 4T 机械硬盘,操作系统安装在固态硬盘上(并非双系统,服务器只需要 Linux 系统)。

镜像文件

前往 Ubuntu 的官网下载需要的版本的操作系统的镜像文件到本地,本文以 Ubuntu16.04.6LTS 版本(64 位桌面版)为例,所以得到下图所示的镜像文件。

ubuntu ruby下载安装 ubuntu下载安装教程_Ubuntu

接着,使用 UltraISO 软件制作启动 U 盘,软件安装包到官网下载然后免费试用即可。

先是打开软件左上角的文件,选择打开,找到自己下载的镜像文件然后打开,会出现如下图所示界面;然后,点击软件菜单栏的启动,找到写入硬盘镜像,选择自己的 U 盘。可以先用 FAT23 进行格式化之后,选择 USB-HDD+写入方式,点击写入(注意,写入硬盘镜像会清除 U 盘数据),等待完成,点击返回即可,具体见下面第二张图。

ubuntu ruby下载安装 ubuntu下载安装教程_显卡驱动_02


ubuntu ruby下载安装 ubuntu下载安装教程_显卡驱动_03


至此,启动盘制作完成。

BIOS 设置

开机出现系统 LOGO 时狂按“ESC”或者“F2”键进入 BIOS 设置(这里是 Amax 主机的按键,不同电脑按键不同),进入 Boot 设置关闭Secure BootFast Boot功能,并从 U 盘启动(这一步如不能选择设备则需要将 U 盘设备的 boot 优先级改到最高,然后重启机器)。对于 UEFI 制作的 U 盘会产生两个 U 盘系统,选择带 UEFI 的启动即可,这是因为本机是 UEFI 引导的,传统方式引导选择另一个。

此时,可能出现下面的报错问题,然后主机立即关机。

Failed to open \EFI\BOOT\mmx64.efi - Not Found
Failed to load image \EFI\BOOT\mmx64.efi: Not Found
Failed to start MokManager: Not Found
Something has gone seriously wrong: import_mok_state() failed: Not Found

这是因为 U 盘系统中没有正确的文件,此时用其他电脑打开 U 盘将根目录下EFI/BOOT/目录中grubx64.efi文件改名为mmx64.efi,然后重新从 U 盘启动。

系统安装

此时,会出现几个英文选项,分别是表示试用 Ubuntu 系统、安装 Ubuntu 等,这里选择第一个试用 Ubuntu(我个人的习惯是试用一下系统,观察界面显示等是否有问题),如果出现短暂黑屏后显示 Ubuntu 系统界面是正常的,若界面一直不出来则可能是显卡适配有问题,此处解决方法可以到网络上查找,Nvidia 卡的解决方案是在上面所说的几个选项选中不按回车键而是按 E 键进入编辑模式,添加 nomodeset 选项。

这是,基本上进入了使用 Ubuntu 阶段,可以看到一个模糊的界面,这是显卡驱动不正确的反应,没关系,这样的显示足够配置了。在下图系统中尝试一些功能后,点击桌面上的Install Ubuntu即可开始安装的配置。
安装的具体过程我只列举几个核心的过程,其余文字叙述。

ubuntu ruby下载安装 ubuntu下载安装教程_ubuntu ruby下载安装_04

首先,选择系统语言,自行选择,推荐 English,中文可能会有一些路径或者编码问题。

接着,关于具体软件的安装,保持默认即可,下图的联网更新和第三方软件安装都暂时不勾选。

ubuntu ruby下载安装 ubuntu下载安装教程_Ubuntu_05

下面,最关键的步骤之一,安装系统的位置选择,由于我是 UEFI 引导的系统安装,默认的安装均不合适,这里选择最后一项进行手动分区。

ubuntu ruby下载安装 ubuntu下载安装教程_Ubuntu系统安装教程_06

点击 continue 后进入分区界面,可以点击下方的减号将我安装系统的 500G 固态硬盘原有分区删除,使该硬盘变为未分配状态。找到这个 500G 的未分配空间,点击“+”进行分区,主要需要四个分区,建议不要顺序出错。新建 EFI 引导分区,选择逻辑分区和空间起始位置,use as 选择EFI System Partition,大小给 2048M 即可,不必太大(它的作用和老机器的 boot 分区类似。);然后,新建 swap 交换分区,选择主分区和空间起始位置,use as 选择swap area一般物理内存的两倍即可,我给了 16G;接着,创建挂载点为"/home"的分区,逻辑分区且空间起始位置,use as 选择 Ext4,这里是所有用户的家目录,我给了 200G;最后,挂载点为"/"的根目录分区,主分区且空间起始位置,这是所有用户的共用空间,共享软件也在这个目录下,需要大一点,剩下的都给了这个分区。确认下图的引导安装位置为当前固态硬盘即可选择 continue 下一步了。

ubuntu ruby下载安装 ubuntu下载安装教程_显卡驱动_07

下面就是一路下一步然后配置管理员用户和密码就开始安装了,安装完成会要求选择重启,立即重启就行了。此时会重启计算机,在黑屏之后,拔出 U 盘,这样就会从唯一有引导的固态硬盘启动系统。

系统配置

这时候,我们可以通过安装过程中配置的用户和密码登录桌面系统了,但是我的机器此时屏幕分辨率极低,这是显卡驱动有问题造成的,需要对显卡驱动进行配置。(这里注意,桌面环境循环登录也是这个问题导致的。)

这边使用命令可以查看当前显示器设备,发现 VGA 设备异常,选择重新安装显卡驱动。Ubuntu 预先安装了 nouveau 这个第三方驱动程序安装包,会出问题,需要禁用。

通过命令sudo vim /etc/modprobe.d/blacklist.conf编辑黑名单,在该文件的最后插入下面两行。

blacklist nouveau
options nouveau modeset=0

然后,通过sudo update-initramfs -u更新系统,并通过sudo reboot命令重启系统,重启之后,lsmod | grep nouveau命令来查看是否禁用成功,无输出则表示成功。

下面,去Nvidia 官网根据自己的显卡选择合适的驱动程序下载,下图是我 2080Ti 的驱动搜索,选择 Linux 系统后会下载 run 文件。

ubuntu ruby下载安装 ubuntu下载安装教程_ubuntu ruby下载安装_08

下载得到该显卡最新版驱动NVIDIA-Linux-x86_64-440.82.run,将其放到一个 root 用户方便访问的位置,因为后面的操作不能使用桌面环境,也就是没有界面。

使用ctrl+alt+f1进入命令模式,使用su - root命令(若没有配置 root 密码需要配置一下)进入 root 用户,然后使用service lightdm stop关闭显示管理器,不关闭安装驱动会有错,然后使用apt-get remove nvidia-*删除之前的驱动。在下载的驱动文件所在目录下输入chmod a+x NVIDIA-Linux-x86_64-440.82.run给与该文件可执行权限,然后./NVIDIA-Linux-x86_64-440.82.run -no-x-check -no-nouveau-check -no-opengl-files命令来进行驱动安装,后面的三个选项缺一不可,否则会出现循环登录等问题。安装过程选择比较多,选择能让安装继续的选项即可,若中断了安装,多尝试几次即可。

下面,通过service lightdm start启动服务,就会进入桌面环境,此时已经发现,显示器显示的图像分辨率很清晰了,这表示显卡驱动安装成功,若没有成功可以modprobe nvidia命令来挂载驱动。此时,输入nvidia-smi会出现显卡状态信息。

用户配置

按照实验室的要求,是有一个普通用户组,没有 sudo 权限也就是 root 权限,但是可以在自己的家目录中创建虚拟环境按照 Python 包进行深度学习环境配置,也可以使用各自的 Pycharm 配置进行项目工程。系统只安装一个 conda 和 pycharm,这不难实现。

root 用户下通过groupadd stu创建普通用户组,通过useradd -d "/home/stu1" -m -g stu -s "/bin/bash" stu1来创建一个用户,并为该用户创建家目录。批量用户的创建可以编写 shell 脚本,我这里人不多就没写。

安装 cuda 可以参考网络上的很多教程,去官网下载 runfile 文件即可,默认安装就行,默认安装在/usr/local/目录下,安装版本安装目录不同,如我这里就是cuda-10.2目录,同时,在该目录下也会建立一个链接文件夹cuda指向安装的这个 cuda,通过修改这个链接可以同时安装多个版本的 cuda。

安装之后,通过vim /etc/profile编辑环境变量文件来加入 cuda 的环境变量,加入下面两行即可,然后通过source /etc/profile命令使得环境变量的修改立即生效。

export  PATH=/usr/local/cuda/bin:$PATH
export  LD_LIBRARY_PATH=/usr/local/cuda/lib64$LD_LIBRARY_PATH

此时输入nvcc -V应该有正确结果了。关于 cudnn 的安装就不多说了,就是下载源码后添加到 cuda 安装目录下就行,具体可以自行查阅。

因为 cuda 默认安装在/usr/local目录下,该目录是所有用户的共享软件目录,所以 stu 组任何用户都可以使用 cuda。 下面安装 conda,这里推荐
Miniconda,较为轻量合适,功能和 anaconda 是一样的,只是没有界面和预安装的包。具体可以参考我的文章,注意在安装路径那一步选择/usr/local/anaconda3,该目录需要预先创建,随便叫什么都行。如果你是这个目录的话,为了让每个用户能访问,需要在/etc/profile最后添加下面内容。

export PATH="/usr/local/anaconda3/bin:$PATH"

现在,只有 root 用户创建的环境可以共同访问,其他用户的环境都在各自的家目录下的.conda/文件夹中,其他用户无法访问。

最后,关于 Pycharm 没什么多说的,下载安装包,解压到/usr/local/pycharm目录即可,root 执行一次bin文件夹下的pycharm.sh文件为每个用户配置桌面快捷方式,各个用户打开该软件需要自行软件认证,且每个用户的配置均在该用户家目录下,其他用户看不到项目等信息。

补充说明

本文详细介绍了 Amax 服务器重装 Ubuntu16.04 系统并配置的过程,有些部分没来得及截图,如有问题,欢迎评论。