因为毕业设计是做深度学习方面,所以打算在台式机上装上双系统Linux(虽然win也能做,但是想试试在Linux上做)。萌新上手大概花了几天时间终于算是弄好了,于是来记录下自己一路过来的经历。篇幅可能较长,各位看官当着玩即可(
1.第一次选择 Ubuntu 16.04
当初想到要安装双系统的时候,没有一丝犹豫就选择了Ubuntu。理由有几个,一是大多数人都说Ubuntu适合新手上路(见仁见智)。二是考虑到自己不管是对Linux还是深度学习都是刚入门,以后肯定会碰到不少的坑,网上许多的博客文章都是基于Ubuntu的。走一条前人已经踩了个遍的大道难道不好吗。
回到家以后,马上拿了个U盘做了启动盘。双系统安装Ubuntu的教程网上一大堆,这里就不唠叨了。稍微说下我认为要注意的地方。(装之前其实有点怕把电脑搞炸,看了许多文章后才动手。事实上并没有什么好怕的)
先说下我电脑的情况,SSD+HDD的Win10。整个SSD分给Win作为系统盘,目标是把Ubuntu装在HDD腾出来的几百g空间上。
对于分区上的选择,在看网上文章的时候看到几个说法:
SSD腾出十几g的空间来安装Ubuntu的根分区 "/",至于/home /usr等需要大空间的分区建在HDD上。看到这个方案的时候,想到的是这样是为了让Ubuntu本体装在SSD上以便于跑的更快吧。但是那时候觉得这个方案实现不了,因为SSD已经全部分给了Win (实际上有办法把SSD的空闲空间割出来 使用Win自带的磁盘管理,用一个压缩卷的功能即可。如果后悔了也可以使用拓展卷功能把切割出来的空间融合回去)
不使用SSD,完全安装在HDD上。只需要建两个分区,一个是对应内存大小(至少得是内存一半以上)的swap交换分区,二是把剩下的所有空间分给根分区"/"。不用特意去给/home /usr 等分空间。这样做的好处是 手动给/home等分区手动划分空间,如果分的太少后面空间不足就很麻烦了。直接把所有空间分给根分区,想怎么用就怎么用。
其他的,有分N个分区的 等等等等。并没有尝试过,个人觉得网上很多文章都过时了。。根本没必要那么麻烦
分完区以后,下面有一个启动菜单选择的选项。对于双系统来说,挂载在一个名字叫Windows boot manager的地方即可。整个过程并没有像许多文章中提及到的分efi、boot等分区。看到有一篇文章说到,Ubuntu的引导项会放到Win的EFI分区上共存 并不会覆盖。
因为怕把SSD搞炸影响到Win系统。Win是前阵子才装好的,设置方面弄了很久,不想再重新折腾了。。于是选择了方案2。后面在启动系统的速度上,明显感受到Ubuntu比Win10启动的慢很多 (即使Win已经关闭快速启动)大概这就是SSD和HDD的巨大差距吧= = 我只是装来做个毕设罢了,将就一下。
装完以后就碰到一个头疼问题,连不上网。一直使用的USB网卡并没有被识别出来,也没有有线网。没办法只能换回Win上下载驱动。在官网下载好驱动,原以为终于能上网的时候,发现安装不上。原因是Linux内核版本不对,编译出一大堆错误。碰到这个以后真的是一度想鸽了。后来想到去搜下这个网卡的驱动(8812AU)怎么在Linux上安装,找到了一个方法。下载了github上的驱动,后面安装成功顺利上网了。
有了网以后紧接的就是装显卡驱动之类的。装完这些以后,还没开始碰cuda等更麻烦的东西。因为看到自带的python版本为3.5,想升级成3.7。操作的不好直接把python卸载了,于是系统就爆 炸 了。(其实还有的救 不过当时直接就把Ubuntu删掉了)
2.Linux Mint 丑拒
Ubuntu删掉以后,因为当时一直在看的几个文章教程都是安装Linux Mint,加上挺多人说Linux Mint比Ubuntu更好上手。抱着试一试的心态就开始安装Mint了。由于有之前的经历,这次安装很流畅。仍然有网卡不能识别的情况,但是已经知道解决方法,很快就解决了。但是使用了一会,觉得Mint是真的难用。。。 至少比Ubuntu要难用很多。觉得有很多地方都没有Ubuntu做的到位,例如右下角连切换输入法的选项都没有。还有好几个地方忍受不了。写本文的时候已经记不起来了,因为装完用了大概十几分钟就齐了。
3. Deepin 很好看但还是鸽了
删掉Mint之后一直在考虑装什么系统好。没多久无意中看到Deepin。以前是有用过一阵子deepin的,使用体验的确很不错。于是马上下载安装。安装完以后会自带qq、搜狗输入法、chrome等,相比ubuntu的确很方便。而且python自带的版本比ubuntu自带的要高,顺利安装ss3.0 (后面换回Ubuntu的时候 安装ss3.0的坑可大了。。) 显卡驱动方面也很方便,连上网后使用自带的显卡管理自动安装好驱动,并且还会自带显示测试功能以便驱动有问题可以回滚(这个有点良心)。 deepin什么都好,但是到了装cuda的时候就头疼了。不知道为什么一直装不上,看了安装的log,error说的很模糊。网上关于deepin安装深度学习环境的文章很少,又或者已经是很老版本的了。甚至在官方论坛上看到有用户建议如果要搞这方面,请不要使用deepin。。自己尝试过几种方法,不论是显卡管理装的驱动,还是换了cuda自带的驱动,都是安装不上cuda。折腾了半天以后还是弃了。 (后来装好系统以后,无意中看到论坛里有说到deepin是不支持cuda9.0以上的 ???)
4. Ubuntu 18.04
嗯 不废话了。后面就是想试试Ubuntu18.04。装完以后觉得颜值上比16.04好看了点。然而,发现系统连make都不自带。。。想编译安装网驱都不能了。有点无法理解为什么很多基础功能都不自带了,网上也搜不到这种情况。也许是我太倒霉装了个假的Ubuntu18.04吧
5. 回归Ubuntu 16.04
弄到这一步的时候,大概已经折腾了2、3天了。想着要是还搞不好,那还是在Win上搭环境好了。因为第一次搞炸是因为升级python,于是从哪跌倒就从哪站起来。这次换了个方法升级python。后面发现升级好像也没那么复杂,但是那个pip的问题是真的大。因为apt上的ss版本是2.9,并不支持我ss的加密协议,需要3.0版本的ss。于是准备用pip安装github上的新版ss。但是一直显示错误,看遍了百度上的相关文章,把openssl升级了、把pip升级了、把python安装设置改了、把依赖补了。甚至还把系统命令不存在的提示改成python的错误提示样了。还是提示缺少SSL模块,最后google发现还是缺少一个依赖,装上以后重新再安装一次python就可以了。。 最后梯子安装成功。但是升级了python以后,会导致系统的软件和更新出了bug打不开,需要更改系统指向的python。
然后到了显驱、cuda等等。在Ubuntu上安装这些是真的流畅。一路上没碰到过错误,但是安装好cuda10.2后发现,Ubuntu自带推荐的384驱动,并不支持跑cuda10.2。 试过卸载掉原驱动,直接安装cuda10.2里自带的显卡驱动,但是安装后发现nvidia-smi命令能用但是识别不出显卡。百度过后尝试关掉security boot也是不行。后面添加了新的PPA,重装了推荐的430驱动,重装cuda10.1,还有cudnn(需要依次安装本体、runtime、develop、sample)。最后看到cuda测试代码跑成功的提示真的感动的要哭了。
经过这么一次折腾,我有点害怕后面毕设的完成了。只是搭建环境就已经问题一个接一个了。害怕.jpg
另外懂的了一个道理,安装某个东西有问题还是建议跟着官方文档来。前期一直在参考网上文章,然而每个人的安装方法五花八门,而且很多已经过时了。后来跟着nvidia的官方指南安装,一点问题都没。cudnn也是同理。还有的就是,如果百度解决不了,就google吧。
参考文章: