0. 前言

坑爹的Ubuntu晚上运行还是好好的,第二天中午的时候打开机器发现屏幕分辨率不正常了:2K屏显示800*600左右的分辨率(无法调节),一个图标一拳头大,窗口和网页显示不全。Google查了一下发现可能是nvidia显卡驱动坏了(真的脆),照着几个博客搞了一下还尼玛进不去系统,一直循环登录了???之后又折腾了一整个下午,最后的结果是,重装显卡驱动一直失败:PPA装显示connect不上、run文件装显示build kernel module error。反正我也是不管什么奇怪的配置问题都能遇上,破系统破摔,正好没有Win10,重新装一个双系统。(本文安装配置过程仅作个人参考


1. U盘启动盘制作

1.1 系统下载

Win10的系统从MSDN下载,选择 consumer edition version 1803 x64:

Ubuntu从官网下载Desktop 16.04 LTS即可(貌似是比18.04稳定?)

1.2 制作启动盘

下载UltraISO,文件 -> 打开 -> 选中iso文件,启动 -> 写入硬盘镜像 -> 写入方式:USB-HDD+ -> 写入,制作完成。


2. 安装系统

2.1 安装顺序

这次双系统先安装Win10,之后再安装Ubuntu。主要有两个原因:

(上图来自鸟哥的Linux私房菜,几句话看得不是很懂,本科买的CSAPP还是得看起来了...)

其次,现在唯一的系统坏了,相当于是裸机,安装Win10之后方便后续的磁盘分区。

2.2 安装 Win10

因为主板是华硕的,好像新版的 UEFI 操作确实都比老的 Legacy 方便。先关闭 启动 这一项中的 安全启动(需要删除密码)和 快速启动,不是很清楚原理,但既然很多贴子都这么说,还是照做保险。再按 F8,选择 U盘 前带 EFI 的那一项,就能进入安装引导。接着引导会询问安装在哪一个分区,有的分区不能安装,这时候把所有的分区删了,合成一个大分区,之后可安装成功。之后进行分区,使用DiskGenius,分给C盘128G,D盘2T,剩下的分区用 Win10 自带的磁盘管理删除变为空闲空间,方便安装 Ubuntu 系统时辨别(中间无盘符区域为留给 Ubuntu 的空间):

2.3 安装 Ubuntu

同 Win10, 选择带 EFI 的 U盘启动项。选择 try Ubuntu without installing,可以先随便用一下系统,连接网络等,之后再在图形界面中选择安装 Ubuntu 16.04 LTS。注意不要勾选安装 Ubuntu 时 下载更新和安装第三方软件这两项,可能会导致安装最后的“执行安装后执行触发器 update-notifier-common”卡住(最后拔了网线才安装成功)。接着引导提示:已经安装了 Windows 10,此时勾选“其他选项”。

再之后是对系统分区,选中空闲区域,点击 + 号,根据我的环境,空间分配如下:

**安装启动引导器的设备:/boot 所在的分区**,点击“现在安装”。最后坐等安装完成,重启,拔 U盘。有的博客还有用 EasyBCD 在 Win10 里面添 Ubuntu 引导,但我重启之后发现已经可以在两个系统之间(Ubuntu、Windows Boot Manager)切换了,华硕主板(UEFI)的特点?反正目的达到了,至此双系统安装完毕。


3. 安装 Ubuntu NVIDIA 显卡驱动

(司马显卡驱动)

3.1 下载 run 文件

不建议通过 ppa源 安装,因为你无法配置具体选项且成功后需要经常手动更新驱动。

官网选好分类之后下载 run 文件,并将其复制到英文目录下,因为切换到 tty 下之后,中文全都变成实心方块,辨认不出目录。

3.2 卸载旧驱动

没有安装过 NVIDIA 驱动的主机可以省略:

sudo apt-get remove --purge nvidia*
# 卸载对应版本号
# sudo ././NVIDIA-Linux-x86_64-390.48.run --uninstall
sudo /usr/bin/nvidia-uninstall

3.3 安装各种依赖

不是很清楚,反正照着安装就vans了

sudo apt-get update
sudo apt-get install dkms build-essential linux-headers-generic
sudo apt-get install gcc-multilib xorg-dev
sudo apt-get install freeglut3-dev libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

3.4 禁用 nouveau

应该是将 ubuntu 自带的显卡驱动加入黑名单?

sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
# 添加以下代码:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
# 保存
# 禁用nouveau 内核模块
echo options nouveau modeset=0 | sudo tee -a /etc/modprobe.d/nouveau-kms.conf
sudo update-initramfs -u
reboot # 重启
lsmod |grep nouveau # 无显示则成功,驱动没了桌面分辨率会比较大

3.5 关闭 secure boot、fast boot

安装系统时已经关闭

3.6 在 tty 中安装显卡驱动

按 Ctrl+Alt+F1 进入 tty1,输入用户名、密码(无回显),之后暂停图像输出服务:

sudo service lightdm stop
# 安装驱动
chmod a+x NVIDIA-Linux-x86_64-390.87.run
sudo ./NVIDIA-Linux-x86_64-390.97.run --dkms --no-opengl-files

之后出现的 pre-script failed 是确保用户真的要安装驱动,属实睿智。接着 dkms 选 yes,32 位兼容选 yes,x-org 选 no。最后居然没有出错,我哭了,前面被各种 build error 搞出心里阴影了。

sudo service lightdm start # 重启服务
nvidia-smi # 输出 GPU 信息代表安装成功

4. 配置 cuda 和 cudnn

4.1 配置 cuda

由于项目需要且目前深度学习框架都支持了 cuda9.0,因此从官网下载 cuda9.0 的 run 文件安装,下载完成后输入:

sudo sh cuda_9.0.176_384.81_linux.run

输入 accept 之后开始安装,依次选择不装驱动、安装 cuda、建立链接、不装 sample。

添加路径:

sudo gedit ~/.bashrc
# 添加下面三行
# add for cuda9.0
export PATH="/usr/local/cuda-9.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH"
source ~/.bashrc
nvcc -V # 查看 cuda 是否安装成功

4.2 配置 cudnn

安装cudnn比较容易,同样从官网下载(需注册账号)。下载 cuDNN v7.1.4 Library for Linux,完成后选择提取到此处,得到一个 cuda 文件夹。执行以下命令:

sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

之前看到很多博客在这步之后都添加了软链接,不是很理解。后来发现上面命令中第二步就是将 lib64 文件夹中的文件复制到 /usr 目录下,而在 lib64 中的三个 libcudnn.so 文件,其中两个都是软链接,只有 libcudnn.so.7.1.4 是最终的的文件:

而复制到 /usr 下的三个 so 文件已经没有了这种链接关系(可能是cuda文件夹也是软链接的原因?),因此需要 rm 之后重建:
```sh
sudo rm libcudnn.so libcudnn.so.7
sudo ln -s libcudnn.so.7.1.4 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so
```
---

5. 安装 anaconda

官网上只有 Python 3.7 版本的了,但是以前安装的库好像都是说在3.6的环境下测试的。对于怎么下载之前的版本,网站是这么说的:

There are three ways to get Anaconda with Python 3.5 or 3.6:

  • We recommend that you download the latest version of Anaconda and then make a Python 3.5 (or 3.6) environment.
  • Or download the latest version of Anaconda and run the following command to install Python 3.5 (or 3.6) in the root environment: conda install python=3.5 or conda install python=3.6
  • Or download the most recent Anaconda installer that included Python 3.5 (Anaconda 4.2.0) or Python 3.6 (Anaconda 5.2.0).

感觉前两条说的挺有道理,我信了,还是下载新版。不过官网下的速度很慢,可以在 Win10 下用迅雷下载 Linux 版,再拷过来安装。

运行bash Anaconda3-5.3.0-Linux-x86_64.sh即可。

再之后的 TensorFlow 和 PyTorch,都是一条命令完成。


6. 其他

有关 Linux 软件安装目录:

Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的

/usr:系统级的目录,可以理解为 C:/Windows/,/usr/lib 理解为 C:/Windows/System32。

/usr/local:用户级的程序目录,可以理解为 C:/Progrem Files/ 。用户自己编译的软件默认会安装到这个目录下。

/opt:用户级的程序目录,可以理解为 D:/Software,opt 有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接 rm -rf 掉即可。在硬盘容量不够时,也可将 /opt 单独挂载到其他磁盘上使用。

源码放哪里?

/usr/src:系统级的源码目录。

/usr/local/src:用户级的源码目录。


7. 总结

一趟下来不容易,重装系统和重配环境之后,感觉比以前清白了一点,毕竟第一次装双系统。但也知道了自己有更多不懂的东西,比如装系统时的磁盘管理,uefi、grub、lagacy等各种名词,Linux 系统的整体了解等等,还是计组没学好的锅。不过因为是一步步采坑搭起来的,感觉现在这个系统更亲切了,就算以后再出问题也不会慌了。


参考资料:

  1. https://blog.csdn.net/V_code/article/details/64199525
  2. https://blog.csdn.net/fesdgasdgasdg/article/details/54183577
  3. https://blog.csdn.net/u014561933/article/details/79958017
  4. https://blog.csdn.net/aqxin/article/details/48324377

安装 Win10 & Ubuntu 16.04 双系统以及 Ubuntu 配置深度学习环境记录的更多相关文章

  1. win7 下安装 ubuntu 16.04双系统

    Ubuntu 每年发布两个版本,目前最新正式版版本也升到了 16.04.Ubuntu 16.04 开发代号为"Xenial Xerus",为第六个长期支持(LTS)版本,其主要特色 ...

  2. Windows XP硬盘安装Ubuntu 16.04双系统图文详解

    需要下载的东西有两个,一个是grub4dos,另一个是Ubuntu 16.04 LTS的镜像文件,具体下载地址如下:   1 2 3       1.grub4dos  点击下载 grub4dos 2 ...

  3. Windows下安装Ubuntu 16.04双系统

    本文已有更新:新文章 [2016-05-09 更新说明: ①:我原本写的Ubuntu 16.04安装博客中在安装系统时,在引导项部分,有一点问题没有注意到,感谢@小段阿誉的指出,在下面我有了说明: ② ...

  4. 固态+机械双硬盘分别安装Win10和Ubuntu16.04双系统

    博主的笔记本是256G固态+1T机械,固态事先已经安装好了Win10系统,想着把机械硬盘分出500G用来安装Ubuntu16.04,剩余的继续用作Win下的资料盘.这里不介绍安装Win10过程,也不记 ...

  5. windows10 安装win10和ubuntu 16.04双系统

    安装教程如下 亲测可用 https://www.cnblogs.com/masbay/p/10844857.html 镜像路径如下 http://releases.ubuntu.com/16.04/ ...

  6. 安装Ubuntu 16.04双系统详解(Nvidia显卡)

    Ubuntu16.04双系统安装 一.准备工作 设备:惠普台式机,i5-7400.8G内存.1T机械硬盘.NVIDIA GTX1050显卡.预装系统:Win10. 1.下载ubuntu镜像文件,本人使 ...

  7. Win 10 和 Ubuntu 16.04 双系统,安装完成后,设置默认的启动项

    当安装好了 Windows 和 Ubuntu 双系统之后,默认的启动项是 Ubuntu,我们可以来设置默认的启动项, 开机时,在启动项选择处,可以通过↑↓ 键来选择启动哪个系统,第一行序号是 0 ,第 ...

  8. UEFI+GPT下安装Win10和Ubuntu16.04双系统相关问题(引导、无线连不上网)

    1.安装双系统 1)先制作U盘启动,制作过程不再赘述 2)进入bios,设置从U盘启动 3)如下图,选择第二项为安装Ubuntu 4)前几不没什么问题,就直接往下走,选择语言,往下拉有中文选项 5)下 ...

  9. Windows 10+Ubuntu 16.04双系统切换后时间不同步的问题解决

    主要时时区不对造成的,少了8个小时,解决方法: 在Ubuntu的终端下输入以下命令: sudo timedatectl set-local-rtc 1 参考: http://blog.csdn.net ...

随机推荐

  1. 【题解】UVA11584 Partitioning by Palindromes

    UVA11584 https://www.luogu.org/problemnew/show/UVA11584 暑假开始刷lrj紫/蓝书DP题 这几天做的一道 思路 预处理出所有的回文串是否存在 前提 ...

  2. JavaScript:改变 HTML 内容

    使用Javascript来处理HTML元素的内容是非常强大的功能. <!DOCTYPE html><html><head><meta http-equiv=& ...

  3. 在cengos中安装zabbix server/agent, 并创建一个简单demo

    添加zabbix更新源 rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/6/x86_64/zabbix-release-2.4-1.el6.noarch ...

  4. CSS实战3

    1. z-index  层级   div 层 <!DOCTYPE html> <html> <head lang="en"> <meta ...

  5. 9.异常Exception

    9.1 异常概述 package exception; /* * 异常:程序运行的不正常情况 * * Throwable: 异常的超类 * |-Error * 严重问题,这种问题我们通过异常处理是不能 ...

  6. MySQL——用户与密码

    mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码.通过下面的方式找到root默认密码,然后登录mysql进行修改: grep 'temporary p ...

  7. Linux性能监控工具 gtop

    给大家介绍一款性能监控工具,个人对比界面比top美观,常用指标比较清晰毕竟top上的指标不是每个人都能熟悉,也不是所有指标参数都需要看,对于新手也不便查找,好了说的再多先上图大家参观一下. 1.安装需 ...

  8. django+xadmin在线教育平台(十七)

    8-1 课程列表 拷贝课程列表页到template目录 创建课程相关的urls.py Mxonline2/urls.py中声明包含到course的url中: # 课程app的url配置 url(r&q ...

  9. 编辑文件出现:E212 can’t open file for writing

    前面目录没有创建 还可能是权限问题

  10. angularjs1+requirejs+ bootstrap+ jQuery低版本配合兼容ie8+浏览器

    angularjs兼容低版本IE浏览器(IE8)angularjs在1.3之后的版本都是选择放弃对IE8及更低IE版本的支持,但是就目前的开发形式来看,IE8的使用客户还是蛮多的,最近有个项目要求尽量 ...