经验整理-win10安装ubuntu18.04.2双系统(NVIDIA Geforce GTX 1060独显)

为什么要装双系统?
始终是觉得在linux下编程更方便,更不容易出现各种组件不存在的情况,在windows下写程序,万一出现缺个什么链接库之类的,要把环境配置好特别麻烦,所以还是linux好用,并且在Linux下使用各种命令行操作,更容易集中注意力解决问题,而且也更炫酷噻。
以前呢使用虚拟机也能满足一些Linux的需求,但笔记本内存条只有8G啊,windows系统占一大块,用虚拟机的话剩下给程序运行的内存就少的可怜了,再加上深度学习GPU的需求,所以还是直接来一个linux系统更加直接方便。

为什么会有问题,写这个经验帖干什么?
以前也装过双系统,下个linux镜像文件,用UltraISO写入U盘,然后网上一搜一大堆教程,跟着安装就行了,没什么问题,但现在呢,对GPU有要求了,就必须要用nvidia显卡,就必须要安装nvidia驱动,老火的就是nvidia厂商对linux的支持非常差,按照原来的方式进行安装可能会出现nvidia显卡驱动的问题,导致系统装好后循环登陆页面无法进入系统、黑屏、logo处卡死等等问题(我猜测可能也跟电脑有关,如果电脑厂商考虑到这块了,做了优化处理可能没问题,反正我的机械革命X8ti-Plus就有这种问题)。这个帖子呢会介绍我安装过程中遇到的问题及解决办法,也会对整个安装过程进行一个梳理介绍,当然不要指望像看到宝典一样一帆风顺就装好了哈,欲练神功,必先自宫,中间肯定还是要碰到很多问题的,那就各种尝试解决,网上还有些帖子劝大家别折腾了,这是系统厂商的问题,老老实实去用windows吧,别听他们的,很多人不喜欢linux的原因是这个,但很多人喜欢linux的原因也是这个。

开始吧!

1. 刻录系统启动盘
我用的linux系统就是ubuntu 18.04.2哈,别搞其他花里胡哨的,去官网下载系统镜像文件,然后用UltraISO写入系统启动U盘,不清楚的查一下怎么操作,注意的就是别下最新的系统,比如最新的是18.04.3,搞个18.04.2就行了,越新的越容易出问题,还有U盘最好先格式化成FAT32的系统。

2. win10下分配Ubuntu安装的空间
就是在win10下的磁盘管理中,给Ubuntu分配一定磁盘空间,将其安装到这个空间中,一般来说,比如win10在C盘,那就去其他盘给ubuntu分配空间,反正别跟win10搞在一个盘就行了。具体磁盘分配可以查一下怎么操作,我遇到的问题就是,在腾出了未分配的400G空间给ubuntu用后,安装ubuntu系统时,无法识别到我腾出的这部分空间,然后默认给我装到C盘去了,那肯定不行啊,C盘空间辣么紧张,后来研究了发现可能是磁盘格式的问题,用DiskGenius把磁盘格式从动态的转成静态的,然后又把MBR格式转成GUID才成功了,具体为什么是这样我也不太清楚,大家有兴趣可以研究下,注意的就是在进行磁盘操作时一定要谨慎,不要把数据搞不见了。

3. win10+Ubuntu彻底删除ubuntu
为什么在这里写这个,还没安呢,就要删除,因为安装ubuntu过程中很可能会出现问题,或者哪个步骤操作不到位,导致安装不完全,那就需要删了重来,参考这篇博客进行删除:https://www.jianshu.com/p/42af78f88962,补充一点就是在使用记事本删除ubuntu引导信息时,首先在win10搜索框中搜索记事本,然后以管理员身份打卡,然后点击文件——打开——P盘——找到ubuntu——右键删除,如下图1所示,然后使用EasyUEFI删除Ubuntu引导(我的系统是UEFI的,所以用这个),不删除的话会在系统启动时,按F10的时候ubuntu的引导还会存在,虽然没有内容了。
经验整理-win10安装ubuntu18.04.2双系统(NVIDIA Geforce GTX 1060独显)_第1张图片
4. 安装前系统BOOT调整
在安装ubuntu前要进入到电脑主板boot进行相关设置调整(我的是开机按F2),主要就是在Security中把Secure Boot设置为“Disabled”,在Boot中把第一启动盘设置为U盘,还有一点就是有可能不同的电脑系统支持不一样,在Advanced的OS Support中,我的电脑是UEFI OS,如果用成另外一种的话就无法进入安装,这个要根据自己的电脑情况进行设置,设置完后插入系统启动U盘,选择保存重启,大体内容如图2所示。
经验整理-win10安装ubuntu18.04.2双系统(NVIDIA Geforce GTX 1060独显)_第2张图片
5. 安装Ubuntu系统
在上一步保存重启后,便进入Ubuntu的安装界面,如图3所示,选择Install Ubuntu,不要按enter,按e进入图4,在倒数第二行输入nomodeset,然后按F10进入安装页面,这里是输入nomodeset是屏蔽掉显卡驱动进行安装,如果直接安装会因为驱动问题导致卡死在Ubuntu启动界面,因此只能屏蔽掉显卡进行系统安装,所以后面的安装系统的分辨率会比较大。
经验整理-win10安装ubuntu18.04.2双系统(NVIDIA Geforce GTX 1060独显)_第3张图片
进入系统安装后,前面的语言选择等内容根据自己喜好进行选择,到了“更新和其他软件”这一步,推荐选择正常安装,选最小安装的话说不定后面又缺什么,麻烦,推荐把“安装Ubuntu时下载更新”去掉,免得安装时间很长,最后那个图形选项也不要选,如图5,然后进入“安装类型”页面,这里务必要选第一项,“安装Ubuntu,与Windows共存”那个,如果选择“其他选项”进行自己创建调整分区,后面的安装会因为系统分辨率的原因,导致图标过大,无法点击某些按钮,导致安装无法进行。然后点击继续,如果进入到图6页面,表示磁盘识别成功,如果没有的话,那就是第二步里面提到的系统无法识别磁盘空间问题了。
经验整理-win10安装ubuntu18.04.2双系统(NVIDIA Geforce GTX 1060独显)_第4张图片
6. 为系统安装Nvidia驱动(最关键)
6.1 进入系统
经过前面的步骤,Ubuntu系统已经安好了,但此时由于显卡驱动的原因,仍然无法直接进入系统,同样的需要屏蔽掉显卡驱动进入系统,重启后,拔掉U盘,由于电脑默认是win10,如果什么都不做的话,系统就进入win10了,因此系统启动时按F10(我的是这样),然后选择Ubuntu,如图7,同样按e进入设置,在倒数第二行加上nomodeset屏蔽显卡驱动,如图8,按F10进入Ubuntu系统。
经验整理-win10安装ubuntu18.04.2双系统(NVIDIA Geforce GTX 1060独显)_第5张图片
6.2 禁用nouveau
进入系统后,由于分辨率原因,会显得图标较大,正常,先禁用系统自带的nouveau驱动(开源驱动,不支持深度学习)

sudo gedit /etc/modprobe.d/blacklist.conf # 用vi、vim也行
# 在文件 blacklist.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 # 重启,此时不用再输入nomodeset,能直接进入正常系统了
lsmod | grep nouveau # 无显示则成功。

6.3 下载nvidia驱动,并安装
6.3.1 安装nvidia驱动有手动和在线安装,为了避免出现黑屏,循环登陆等情况,这里选择手动安装,首先去nvidia官网下载自己电脑的nvidia显卡对应的驱动,如图9,我的是GeForce GTX 1060系列,笔记本电脑的,驱动下载好后放到主文件夹(其他文件夹也行,方便找到就行了)。
经验整理-win10安装ubuntu18.04.2双系统(NVIDIA Geforce GTX 1060独显)_第6张图片
6.3.2 然后卸载可能存在的旧版本nvidia驱动(对没有安装过nvidia驱动的主机,这步可以省略,但推荐执行,无害),如果你安装失败了也需要执行这一步。

sudo apt remove --purge nvidia* # 若安装失败也是这样卸载
sudo ./NVIDIA-Linux-x86_64-430.50.run –uninstall # 用自己安装的驱动版本,最开始没有就不用执行这一步

6.3.3 接着安装GCC编译器,这里默认安装最新版的,在后面安装nvidia驱动时可能会提示版本过高,我测试也可以安装,忽略即可。

sudo apt update
sudo apt install build-essential
gcc --version # 查看是否安装成功

6.3.4 然后按Ctrl+Alt+F3(F4,F5好像都行),从GUI界面转到tty(全黑色),这是为了装显卡驱动,需要把GUI那些先关闭,然后用下面的命令关闭ubuntu18.04带的图形界面(16.04是lightdm),如果输入命令后跳到登陆界面,则再按Ctrl+Alt+F3返回即可。

sudo service gdm3 stop
cd 下载目录
chmod a+x NVIDIA-Linux-x86_64-430.50.run # 添加权限
sudo ./NVIDIA-Linux-x86_64-430.50.run -no-opengl-files –no-x-check

tips:–no-opengl-files:表示只安装驱动文件,不安装OpenGL文件。这个参数不可省略,否则会导致登陆界面死循环,英语一般称为”login loop”或者”stuck in login”。
tips:–no-x-check:表示安装驱动时不检查X服务,禁用图形界面。
必选参数解释:因为NVIDIA的驱动默认会安装OpenGL,而Ubuntu的内核本身也有OpenGL、且与GUI显示息息相关,一旦NVIDIA的驱动覆写了OpenGL,在GUI需要动态链接OpenGL库的时候就引起问题。

6.3.5 安装过程中会提示gcc版本过高,选择忽略即可,最后x-org最好别安,选no,有的电脑可能导致登陆界面黑屏。

6.3.6 安装完成后重启电脑,按F10选择ubuntu进入,然后使用经典的nvidia-smi命令查看驱动是否安装成功,使用nvidia-settings命令,若弹出设置对话框,也表示驱动安装成功,同时连接外接显示器也没有问题,如果使用nvidia-settings时没有弹出对话框,表示驱动仍有问题,连接外接显示器时就会检测不到,之前在ubuntu16.04中遇到过,但不影响进行深度学习GPU的使用。

Tips:
这两天又发现一些问题:
1.ubuntu系统可能自动更新内核,然后就会造成nvidia又不能用了,解决办法就是进入系统的时候选择ubuntu高级选项,从原来的内核进入,然后把更新的内核删掉。
2.当前最新的的tensorflow-gpu 1.14.0不支持cuda 10.1,会出现libcudart.so.10.0等文件找不到的情况,解决办法是安装低版本的cuda及对应的cudnn,注意查看cuda版本支持的nvidia驱动版本。
如果还是提示找不到那个文件,则手动将文件复制到/usr/lib
sudo cp /usr/local/cuda-10.0/lib64/libcudart.so.10.0 /usr/local/lib/libcudart.so.10.0 && sudo ldconfig
ldconfig命令是一个动态链接库管理命令,是为了让动态链接库为系统共享

最后终于搞定了,其实很有可能你用的电脑不同,Ubuntu版本不同或者是nvidia驱动版本不同而出现各种问题,那就只有各种尝试,各种找办法了,祝你成功!

你可能感兴趣的:(经验之谈,双系统,NVIDIA,win10,Ubuntu18.04)