目录
自己的笔记本已经用了快4年了,硬盘除了不小的问题,存资料不放心、玩游戏不给力,因此准备把这台机子变成一个工作专用的机器。另外由于刚来美帝,实验室没有配电脑,我需要一个Linux系统来干活,因此就琢磨着给自己电脑装个Ubuntu双系统。
Ubuntu双系统的安装
先说一下自己电脑的情况。联想Y430P,系统是从OEM版Win8一路升上来的,去年为了Hyper-V重装了Window 10教育版。也就是说这台电脑从到我手上以来未装过Windows以外的系统,因此装双系统需要有一定的调整。Ubuntu双系统的安装主要参照了另一篇博客。
给Ubuntu系统腾空间
由于之前系统所有硬盘位置都被分配好了,因此需要先给另一个系统足够的安装空间。重新分配空间在Windows下能够非常方便地通过磁盘管理进行解决。磁盘管理可在任务栏Windows图标右键菜单中打开。腾空间有几种方式:
- 插入新的硬盘:如果你舍得花钱或者有闲置盘的话
- 删除某一磁盘分区:删除分区不代表数据丢失,只是将磁盘一块区域变成未使用的状态
- 压缩已有磁盘分区:在不想移动数据的情况下的选择
由于我想让Ubuntu和Windows共用之前Windows独占的固态硬盘空间,因此我只能选择压缩分区(Windows装在C盘),并且由于这是Windows系统所在分区,因此还会降低压缩能力。为了最大化压缩出来的空间,首先将系统重启并且关掉所有能关掉的系统进程与服务,其次是关闭掉C盘的硬盘保护。实验证明,关闭掉硬盘保护后能够压缩的空间比关之前多了两倍!硬盘保护的开关在系统面板->更改设置->系统保护选项卡中,在压缩完毕分区后可以再把硬盘保护打开。压缩完毕后磁盘中会多出一个“未分配”的区域,这便是之后Ubuntu安装的位置。
制作启动盘
如果你有现成的启动盘当然就可以跳过这一步了~这个步骤对于经常装机的同学来说肯定是so easy,过程说到底也就是从官网下一个ISO镜像然后刻录进光盘或者U盘。不过这里我倒是想推荐一个制作启动盘的软件——Rufus,制作流程十分直接,选择ISO后直接按照默认设置就能烧好一个启动盘~之前一直用的是UltraISO,但是完全就是大材小用,而且还收费,只能使用试用版,令强迫症相当不爽。
运行安装程序
插入启动盘后重启进Boot Menu,选择从启动盘启动,然后就按照Linux的安装流程走了~需要解释的是在选择分区的那一步,如果没有什么特殊需要的话其实直接选择"Install Ubuntu alongside with Windows Boot Manage"(默认的第一个选项)就可以了,但如果想自己定义分区大小、挂载点和boot设置的话就选最后一条"Something else",然后分区的设置可以参考之前提到的博文。
需要指出的是,我参考这篇文章最后没有能用Windows Boot Manager来启动Ubuntu,还是只能使用Ubuntu附带的丑陋的GRUB,原因是我的Windows是UEFI安装,这个模式下Windows Boot Manager只能启动Windows系统(可以启动不同版本的)而不能启动Linux。具体解释可以参考EasyBCD的官网说明。
安装完毕以后可以将系统的更新源设置在国内的镜像库(如清华)上,可以使更新快一点。具体方法是进入
系统设置->软件和更新->下载至
之中选择http://mirrors.tuna.tsinghua.edu.cn/ubuntu
。
解决一些系统冲突
在安装完双系统后,如果没有什么意外的话就可以进入Ubuntu啦~但是我在进入后发现有两个问题,一个是时间错位,另一个是另外的系统分区(NTFS格式下的)无法打开。
时间错位的现象是你在进入Ubuntu后再登录Windows,会发现Windows的时间被更改了,与实际时间错位了几个小时。这是由于Ubuntu与Windows的默认时区表示方式不同,导致Ubuntu会修改主板时间。解决方案可以参考AskUbuntu上的问题,我选择的方法是运行timedatectl set-local-rtc 1
。
装系统之前的NTFS分区无法打开,并且会提示“Windows is hibernated, refused to mount”。其原因是Windows的快速启动阻止Ubuntu的访问,将Windows的快速启动功能关掉即可。详情可参见CSDN贴。
调整GRUB的设置
我这安装完双系统之后,默认启动的顺序是linux在前,而我想把Windows设为默认启动系统。这里就需要更改GRUB的配置文件,用sudo加vim或者gedit打开/etc/default/grub
, 更改里面的GRUB_DEFAULT
值为Windows在GRUB界面的顺序即可,保存后用sudo update-grub
覆盖已有配置即可完成更改。此外在GRUB设置中还有个GRUB_GFXMODE
选项,如果想更改GRUB界面的分辨率的话可以将其更改为需要的分辨率。GRUB支持的分辨率可以在GRUB界面按c
进入命令行,输入videoinfo命令查看。
Ubuntu工作环境的配置
安装完系统之后就是一些软件以及环境的配置啦~
常用程序安装
由于我很少使用Linux,因此在Ubuntu下常用的程序也很少,大概有这些:
- Firefox: 虽然Ubuntu自带,但是还是更新一下版本比较好
- Visual Studio Code: 没有Visual Studio,写代码只能用它了
- Anaconda: Python环境,系统自带的Python经常会被各种软件弄乱(如ROS),因此还是装个Anaconda。最好不用sudo安装,放在
/home
底下就可以了。如果今后在编译Python扩展相关的代码时要用Anaconda的python(如使用Anaconda编译pycaffe),那么在
~/.bashrc
末尾加一行export LD_LIBRARY_PATH=$<Anaconda根目录>/lib:${LD_LIBRARY_PATH}
- git: 这就不解释了
- GitKraken:一个非常好使的Git GUI
- CMake: 写跨平台代码时会用到
- aria2c: 快一点的下载器
- synaptic: 图形化deb包管理
这些程序的安装要么用sudo apt install
,要么从官网下载.deb
文件双击安装,非常简单~
此外,还可以安装一个中文输入法,使用ibus的话会比较好看(Gnome中设置输入法参见这里)。如果想安装GooglePinyin或者搜狗拼音的安装包,也可以在系统设置中添加中文语言支持,然后将输入法换成fcitx即可。
Ubuntu美化
如果你忍受不了ubuntu默认的界面风格的话可以对Ubuntu进行美化。具体而言,效果明显的改进就是换主题和图标啦~
- 安装Gnome桌面,具体命令代码如下:
|
|
安装时如果提醒选择X Server的话选择
gdm3
。安装完毕后在用户登陆界面中,用户名的右边按钮选择Gnome桌面登陆。另外,如果是安装的18.04应该是自带Gnome桌面了,安装就会简单不少。
- 安装Tweak工具,这个在应用商店中可以找到。安装完毕后在Extension中打开User themes开关。
- 安装主题和图标,我选择的是Arc-Darker主题和Papirus图标包。前者的安装方式是在作者的OBS Repo中下载
.deb
文件直接安装,后者则是使用如下代码
|
|
安装完毕后在Tweak中选择主题和图标包即可
其他美化方法可以参照知乎中的该回答和该文章。另外如果最开始就打算安装Gnome3的话可以考虑安装Gnome Ubuntu(最高版本是16.04.5)或者更新的Ubuntu(默认就是Gnome)。
NVIDIA显卡驱动安装
由于后面还是打算拿这个系统跑深度学习的,因此显卡还是要装的~首先是驱动安装。安装驱动有两种方式,一个是使用.run
文件,另一种则是使用apt install,后一种比较简单,在安装全新的系统时推荐使用后面一种。
- 使用
.run
文件安装
从官网下载.run
驱动,下载以后放到一个好找的目录下。之后打开终端,输入sudo service lightdm stop
关闭X Server的显示,然后按Ctrl+Alt+F1进入tty模式。找到驱动文件对应的目录,输入如下命令开始安装驱动
|
|
安装过程中的各种选项按需选择即可。安装完毕后再输入sudo service lightdm start
即可重新打开图形界面。
- 使用apt进行安装
打开命令行输入下列命令
|
|
安装完重启即可。安装结束时可能会提醒你关掉主板的Secure Boot,按照提示完成即可。
安装CUDA
CUDA的安装同样有两种方式,一种是使用.run,一种是使用.deb。后者是官方推荐的,而且相比之下deb文件不含驱动,很少有冲突,并且这样对CUDA的卸载和升级更加方便。如果网速比较好的话可以选择Online形式的deb包,这样使用起来就和一般repository差不多了,能自动升级,但是如果连接NVidia的网速不太行的话还是用Offline的deb包更方便。
用N卡做计算加速的话CUDA是必需的。从官网下载.deb
文件,然后在终端运行如下命令
|
|
安装完成后修改环境变量。在终端输入sudo gedit ~/.bashrc
,然后在文件末尾添加如下几行
|
|
注意Linux下PATH的分隔符是冒号
:
而不是分号;
然后重启终端或者使用sudo ldconfig
命令使环境变量生效。验证是否安装成功可以通过编译官方的CUDA Samples完成
安装CuDNN
这里采用的是
.tar
压缩包安装方法,官网还提供.deb
安装文件,貌似可以CUDA+CuDNN一起安装
CuDNN是利用N卡给神经网络计算做加速的库,也是必需的。CuDNN的安装仅仅是把几个库文件拷到CUDA目录下就可以了。从官网下载CuDNN库的.tgz
文件,解压后打开终端进入到解压后的目录,然后运行如下命令即可
|
|
题一下我这里遇到的问题。我在之后安装完tensorflow后发现Tensorflow仍然找不到CuDNN,排除了目录不正确的可能之后发现是libcudnn.so.6.0.20文件的权限设置不正确。不知道为什么压缩包里解压出来的这个文件的权限是
-rwxr-xr-x
,与其他的.so文件不同。之后我用chmod
命令将权限改成正常的-rw-r--r--
后即可正常使用Tensorflow了。
安装ROS
ROS也是我今后工作中会常用到的框架。目前ROS进行LTS支持的版本是Kinetic,并且刚好Kinetic也是支持Ubuntu 16.04的版本,因此我们就安装Kinetic版本的ROS框架。依次执行如下命令:
|
|
最后一行是为ros的Python开发提供支持,其中trollius是catkin-tools的依赖项。安装完之后可以在.bashrc
文件里添加环境设置,使得ros的命令能默认在终端里执行。在终端输入sudo gedit ~/.bashrc
,然后在文件末尾添加如下几行
|
|
ROS是否安装成功可以通过运行ROS示例来测试。
若要使用TUNA镜像,可以将第一行命令中的
http://packages.ros.org/ros/ubuntu
换成https://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/
。
整个安装到这就差不多结束了~Ubuntu的使用还是没有Windows那么友好的,不过在编程环境的配置方面还是能省不少事。以后买新电脑后甚至会考虑让这台机子常开Ubuntu当个服务器使了。