配置深度学习主机与环境(TensorFlow+1080Ti):(二)Win10&Ubuntu双系统与显卡驱动安装

1字数 3570阅读 8250
Win10
Ubuntu

配置深度学习主机与环境(TensorFlow+1080Ti):
(一)硬件选购与主机组装
(二)Win10&Ubuntu双系统与显卡驱动安装
(三)CUDA与CUDNN安装
(四)基于Anaconda的TensorFlow安装


网上安装双系统的教程不少,但多数教程所使用的硬件以现在的眼光看来显得有些过时;另外,其原有所使用的方法,对于新的硬件也不再合适。本教程写于2017年7月,希望能够给大家提供些许帮助,避免重走弯路。

目前安装双系统的主要基于两种构架:BIOS+MBR 和 UEFI+GPT,可以简单的理解为EFI是新一代的BIOS,GPT是新一代的分区方式。基本上目前市面上的新机器,都是以UEFI+GPT构架为主。需要注意的是,对于 UEFI固件,一般还是沿用之前的称呼:BIOS,在查询相关资料的时候需要注意,可能BIOS指的就是UEFI。
BIOS即Basic Input/Output System,翻成中文是“基本输入/输出系统”,是一种所谓的“固件”,负责在开机时做硬件启动和检测等工作,并且担任操作系统控制硬件时的中介角色。

新型UEFI,全称“统一的可扩展固件接口”(Unified Extensible Firmware Interface), 是一种详细描述类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。
可扩展固件接口(Extensible Firmware Interface,EFI)是 Intel 为 PC 固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在 OS 加载之前(启动前)在所有平台上一致的、正确指定的启动服务,被看做是有近20多年历史的 BIOS 的继任者。

GUID磁碟分割表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准。它是可拓展固件接口(EFI)标准的一部分,被用于替代BIOS系统中的一32bits来存储逻辑块地址和大小信息的主开机纪录(MBR)分区表。

通常使用BIOS+MBR构架的双系统需要使用EasyBCD软件来添加启动项,使用EFI并不需要,两种方法我都尝试过,最后当然选择UEFI+GPT,更新更简单。

1. 安装前准备

2. BIOS(UEFI)设置(系统性能)

此次BOIS设置为系统基本设置,主要和系统硬件性能相关。包括XMP内存超频设置,风扇管理设置,电源管理设置。总之,使系统能够在保正稳定的情况下,实现较高的性能和较为安静的运行。


UEFI设置
  • 左一为X.M.P设置选项,通常只有一个文档可以选择,选择之后保存内存即可超频。
  • 右上为主板性能选项,感觉是一个比较笼统的设置,可以先将这个选项设置为高性能,再设置X.M.P以免影响内存频率的设置。
  • 右中为启动顺序选项,插入启动盘后会有多个选项,直接用鼠标拖拽排序即可更改启动顺序,SSD放在HDD之前。实际上HDD作为仓储盘,BIOS和系统安装过程中都不必任何操作。
  • 右下为启动菜单选项,点开后会将所有可能的启动选项(分区)列出来,点击可以直接启动,所以不用设置启动顺序,需要启动哪个分区,直接点击即可。注意点击启动之前先保存之前更改的设置。
  • 更多高级设置请参考主板说明书。

3. 安装Windows10

Win10安装建议参考如下视频:

此次配置深度学习主机,以512G SSD为主存储空间,2T HDD作为仓储盘可以在Win10和Ubuntu之间共同使用(相当于一个移动硬盘),用来保存数据。
Win10与Ubuntu分别占用200G和312G SSD空间,两者内部均不再分区。

  • Win10安装之后可以自动更新相关硬件驱动,美滋滋。当然,最好再打开一下设备管理器查看是否所有的硬件都更新好驱动。


    设备管理器
  • 磁盘管理: 快捷键Win+X打开磁盘管理,或者右键单机“我的电脑”选择管理后,再选择磁盘管理。下图是我已经安装好Win10和Ubuntu之后的磁盘状态,可以看到两个EFI分区分别为Win10和Ubuntu的启动分区。Win10的EFI分区是自动分配的,Ubuntu需要自己设置,后面会详述。第一个“恢复分区”也是Win10安装时自动分配的。忽略“恢复分区”和“EFI系统分区”Win10实际上只有一个分区SSD-Win(C:)。


    磁盘管理
  • 下图(来自互联网,非作者自己系统的截图,仅用做说明)为只安装了Win10后应该呈现的磁盘管理状态,SSD中未被Win10(C、EFI、恢复)占用的部分,应该为黑色,标注为“未分配”状态。保持这个状态不要管,不要格式化,后续的Ubuntu将安装在这个“未分配”的分区。安装成功之后就会变成上图所示。


    未安装Ubuntu时的分区(来自互联网)

4. BIOS(UEFI)设置(启动项)

第二次设置主要是关闭BIOS中的“安全启动”项,或“Security Boot”项。在传统BIOS界面中,可以比较顺利的关闭“安全启动”,相关方法可以在网上找到不少,自己仔细查看BIOS选项也可以找到。
但是华硕采用图形界面+鼠标的BIOS设置,在其选项中并没有明确列出来“安全启动”项,着实把我坑了几个小时。总之,如果不关闭“安全启动”项,Ubuntu系统中无法正常更新1080Ti的显卡驱动,并且会进入“循环登录”的状态。
具体设置如下:

  1. Make sure the "OS Type" is "Windows UEFI"
  • Enter "Key Management"
  • Select "Clear Secure Boot keys" (You will have the option "Install default Secure Boot keys" to restore the default keys after you cleared the Secure Boot Keys)
  • After you cleared the Secure Boot Keys, Secure Boot will be automatically disabled. You can set the OS Type to Other OS now.

以上设置流程的参考视频来自Youtube,相对于视频中的EFI界面,华硕的BIOS好像又更新的UI,不过区别不大,具体如下:

  • 进入BIOS中的高级设置界面,选择“启动”项设置


    启动
  • 关闭快速启动“Fast Boot”(这步应该需要有)
  • 选择密钥管理,点击删除密钥


    密钥管理
  • 删除后显示安全启动状态关闭


    安全启动状态关闭

关于BIOS安全启动关闭设置的相关资料如下:

  1. 华硕主板禁用UEFI安全启动(Disable Secure Boot for ASUS Motherboard)

5. 制作Ubuntu 16.04LTS启动盘

将ios文件直接解压到空U盘中即可,当然不放心的话也可以使用UltraISO软碟通(试用即可)制作启动盘,实际上两者没差。具体文件如下,可以看到其中包含EFI文件夹:

Ubuntu.iso

6. 安装Ubuntu 16.04LTS

  1. 打开BIOS,选择包含Ubuntu安装文件的U盘为启动项启动。具体在“2. BIOS(UEFI)设置(系统性能)”中有说明。
  • 应该会先选择地区与语言,中英都可以。
  • 是否选择“安装更新和第三方软件”,是否都行,但是选择是,需要确保联网,安装时间也会稍长,对系统不影响。
  • 选择其他选项/Something Else,网上不少教程第一个选项都是“选择与其他系统共存”,在我的安装过程中并没有看到,当然反正不选这个。


    选择 其他选项/Something Else
  • Ubuntu分区选项。下图为分区之后的状态,实际上除了蓝色方框中的部分,红色方框中在未操作的状态下为一整个unkonw分区,对应之前Windows磁盘管理中的黑色“未分配”部分,Ubuntu的所有分区(挂载)都将从这部分划分出来。


    系统分区选项

    双击这一部分,即可出现划分选项。或者单击“未分配”磁盘,点击+/加号,如下图所示(此图来自于网络,非作者系统截图):


    分区设置

    然后会出现分区选项,具体操作如下(此图来自于网络,非作者系统截图):
    分区选项
  • swap交换空间,相当于Win中的虚拟内存,通常需要划分对应物理内存2倍的空间,考虑到深度学习主机内存一般都是32G、64G或者128G,所以选择忽略不划分,之后如有需要还可以在系统设置中添加swap部分。
  • EFI系统分区,选择分区类型为“逻辑分区”,分区位置为“空间起始位置”。分配大小为512M,足矣。
  • 挂载“/”,类型为EXT4日志文件系统,选择“逻辑分区”“空间起始位置”。根目录将挂载除了“/home”和“/usr”之外的其他目录,分配50G
  • 挂载“/usr”,类型为EXT4日志文件系统,选择“逻辑分区”“空间起始位置”。“/usr”为Linux存放软件的地方,分配100G
  • 挂载“/home”,类型为EXT4日志文件系统,选择“逻辑分区”“空间起始位置”。剩余120G左右空间全部分配给“/home”。

/home 用户的home目录所在地,这个分区的大小取决于有多少用户。如果是多用户共同使用一台电脑的话,这个分区是完全有必要的,况且根用户也可以很好地控制普通用户使用计算机,如对用户或者用户组实行硬盘限量使用,限制普通用户访问哪些文件等。
以往Linux系统主要是提供服务器使用,所以/home这个目录使用量并不高。但随著Linux的桌面应用发展,不少人也拿来在日常上使用,这时/home就变成存储媒体中,最占容量的目录。假如你安装Ubuntu主要是桌面应用,那你可能需要把最大的空间留给他。
额外分割出/home有个最大的好处,当你重新安装系统时,你不需要特别去备份你的个人文件,只要在安装时,选择不要格式化这个分区,重新挂载为/home就不会丢失你的数据。
还有一个特别的应用:假如你会在你的计算机上,安装两个或更多的Linux系统,你可以共享/home这个分区。简单地说,你的个人文件可以在切换到其它Linux系统时,仍正常使用

  • “安装引导启动器的设备/Device for boot loader installation”设置为与Ubuntu的EFI分区所对应的部分,文中为p5,故设置为p5作为安装引导启动器的设备。
  • 选择安装后可能会提醒没有选择swap分区,忽略,选择继续即可。


    提醒未分配swap区
  • 选择时区,设置相关用户名,密码,等待即可。注意密码不要设置太复杂,不然sudo命令输入密码很烦。
  • 安装完毕之后应该会要求重启,重新启动即可。
  • 重启之后即会出现EFI登录选项,可以选择Ubuntu或者Win10。如下图所示,如果没有出现的话,尝试在BIOS中将Ubuntu EFI作为第一启动项。至此,双系统安装成功。


    GNU GRUB选项

7. 更新显卡驱动(Ubuntu)

进入Ubuntu桌面系统后分辨率很奇怪,是正常的。因为系统默认使用了开源显卡驱动。且在分辨率设置中无法设置高分辨率,默认只有1024x768选项,如下图所示,主要是因为没有更新显卡驱动。


分辨率设置
  • 打开设置,进入软件更新设置(Software&Updates)


    Software&Updates
  • 选择附加驱动,等待刷新


    选择附加驱动
  • 选择所列出来的可以更新的选项,选择应用改变(Apply Changes)即可。
  • 再次进入分辨率设置界面,发现可以更改分辨率


    分辨率设置
  • 在终端中输入nvidia-smi,可以查询显卡驱动状态。
    查询显卡驱动

8. 参考资料

  1. 亲测UEFI启动模式的电脑安装Win10和Ubuntu双系统

推荐阅读更多精彩内容