配置深度学习主机与环境(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. 安装前准备
- U盘(最低8G),用于制作启动盘
-
Win10安装软件
选择第二项:立即下载工具 - Ubuntu 16.04 LTS(长期支持)版本,建议使用16.04版本,以获取长期支持保持系统稳定。
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的显卡驱动,并且会进入“循环登录”的状态。
具体设置如下:
- 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安全启动关闭设置的相关资料如下:
5. 制作Ubuntu 16.04LTS启动盘
将ios文件直接解压到空U盘中即可,当然不放心的话也可以使用UltraISO软碟通(试用即可)制作启动盘,实际上两者没差。具体文件如下,可以看到其中包含EFI文件夹:
6. 安装Ubuntu 16.04LTS
- 打开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
,可以查询显卡驱动状态。
查询显卡驱动
网友评论