Win10+Ubuntu18.04LTS双系统安装记录

本文记录过程的时候会同时记录踩过的坑, 这些坑有一些是由于我自己的操作不当, 还有一些是由于网上的教程版本过旧或书写错误造成的, 我都会记录下来, 但是文中的一些文本的描述会与系统标准输出的文本有一定差异, 只要不影响命令的运行的文字笔者不会过分追求一字不差. 那么我们开始吧1.

本文部分内容过时, 请仔细甄别

双系统安装准备

  • Ubuntu官网下载Ubuntu18.04LTS. 虽然Ubuntu19.10已经问世, 但是考虑到LTS版本的长期支持, 还是选择了这个版本2;
  • 关闭Windows10中电源设置中的快速启动;
  • 下载UltraISO rufus 作为启动盘制作工具;
  • SanDisk USB3.0 32G U盘一个作为启动盘3;
  • BIOS中关闭Secure Boot.
  • 在硬盘中4压缩出至少25G的空间作为Ubuntu的系统盘, 我因为考虑到可能长期使用, 压缩了100G, 但是现在已经有不够用的趋势了……

在我尝试压缩我的机械硬盘的时候Windows提示我

压缩提示

而我的机械硬盘上还有300G的空余空间, 我没多想, 只是认为是磁盘里碎片太多, 导致无法找出100G连续的空间进行压缩, 于是我运行了磁盘优化, 但是优化完还是报错, 这时我感觉问题不像我想的那样, 问了google才知道我的磁盘已经在我不知道是什么的时候变成了动态磁盘[^3]! [^3]:在Windows自带的磁盘管理中动态磁盘为黄色, 基本磁盘为深蓝色.

而这块动态磁盘还被分成了4个区, 尽管我的机械硬盘在Win中显示为一块磁盘. 这下知道问题所在就该着手解决了, 查了google知道可以用分区助手DiskGenius来实现动态磁盘逆转回基本磁盘, 在用移动硬盘备份好机械硬盘里所有的文件后开始运行软件, 应该是我的磁盘型号的问题, 这两个软件都无法处理, 只能将其格式化, 转换为基本磁盘后再压缩出100G.

开始操作

安装Ubuntu18.04

  • UltraISOubuntu1804刻录进U盘;

  • 重启电脑, 进入BIOS, 选择USB启动;

  • 进入Ubuntugrub界面后会选择试用(try ubuntu without installing)还是安装(install ubuntu), 都可以, 如果选择Try ubuntu会在桌面的左上角出现一个install, 双击即可. 选择安装Ubuntu.

  • 选择语言为汉语

  • 选择为图像或无线硬件, 以及MP3和其它媒体安装第三方软件

我取消了勾选, 而由于我的安装Ubuntu时下载更新默认勾选且无法选择就只能勾选

准备安装

但是在后续的使用中发现缺少了很多依赖, 并不知道是不是安装时这个选项造成的, 但是还是勾选上吧, 只是安装时间会长一些.

  • 选择安装类型
安装类型

我看到的几乎所有的教程中都提到了要选择其他选项, 而正常来说应该在其他选项的下一个界面中出现100G的空闲空间才对, 但是我只有几个1M的空闲空间, 为此我还返回Windows重新格式化了机械硬盘, 重新压缩卷, 但是都没有用. 后来问了我的同学, 他表示直接选择第一个选项安装Ubuntu, 与其他系统共存就可以, 开机时可以自动使用Ubuntugrub2引导系统, 选完了之后开始安装, 重启电脑.

又出问题了. 我的系统重启后可以进入Ubuntugrub2, 选择进入Ubuntu, 在开机图标界面停留了很长时间, 我就强制关机了, 开机再进入Ubuntu的时候同样是停在了开机图标界面, 当我打算再次强制关机甚至重装系统的时候, 电脑自己关机了, 我不确定这和我第一次的强制关机是否有关系. 在我查了一些文档后发现可能和我的nvidia显卡有关, 即Ubuntu中没有nvidia显卡的驱动, 而独显又主动启动, 导致了开机时的bug, 这里我尝试了两种方法, 均可以进入系统

  • grub2界面将光标停在Ubuntu, 按e, 找到quiet, 在后面加上nouveau.modeset=0, 按F10保存, 进入系统.
  • grub2界面选择第二个选项Advance, 然后选择Resume boot, 进入系统.

进入系统后要开始下载nvidia的驱动, 打开终端, 输入

1
ubuntu-drivers devices

可以看到类似下面的输出

1
2
3
4
5
6
7
8
== /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0 ==
modalias : pci:v000010DEd00001C8Dsv00001028sd000007E1bc03sc02i00
vendor : NVIDIA Corporation
model : GP107M [GeForce GTX 1050 Mobile]
driver : nvidia-driver-430 - distro non-free
driver : nvidia-driver-435 - distro non-free recommended
driver : nvidia-driver-390 - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin

可以看到我的显卡型号是GP107M [GeForce GTX 1050 Mobile], 推荐的驱动是nvidia-driver-435 - distro non-free recommended, 我使用的是默认安装

1
sudo ubuntu-drivers autoinstall

也可以使用apt安装, 比如sudo apt install nvidia-340可以安装340版本的驱动. 安装驱动后就可以重启电脑, 这时不会卡开机界面了[^4] [^4]:在我这里没有问题但是不代表没有其他问题.

安装Ubuntu下的基本软件

安装文本编辑器vim

在终端输入

1
sudo apt-get install vim 

即可安装, 可以在终端中输入

1
vimtutor

可以查看vim自带的简易教程, 但是如果终端是UTF8编码, 中文是LANG环境, 那么这个命令是看不到中文版的教程的, 可以在终端运行

1
iconv -f gb2312 -t utf8 /usr/share/vim/vim80/tutor/tutor.zh.euc -o ~/vimtutor.txt

其中的vim80为自己的vim版本, 如果不确定的话可以cd \usr/share/vim && ls 看一下, 会将vimtutor.txt的中文版输出到~目录下.

安装TexLive

关于安装教程可以在啸行的install-LaTeX项目处下载, 有很详细的教程, 这里我就说几个要注意的点.

  • 先卸载Ubuntu预装的TeXLive,本来我以为Ubuntu是不自带TeXLive5, 就直接装了TL2019, 但是当我想要用
1
tlmgr update --self --all

升级宏包时, 提示我TeXLive的版本不匹配

升级宏包错误

而且当我使用tex -v查看版本的时候, 发现输出的是TeXLive2017, 然后可以按照install-latex中提到的方法卸载, 虽然安装后再卸载也没出什么问题, 但是安装前还是卸一下好一点.

  • 中文索引引擎zhmakeindex

Windows添加这个引擎并不难, 从CTAN上下载, 或从leo-liu的zhmakeindex项目clone到本地, 但是后者需要自己用go编译, 具体教程可以参考图灵社区, 有必要一提, 我在照教程实践的时候, 在安装zhmakeindex一步中并没有完成, 报了一个我看不懂的错

go报错

由于我不会GOLANG, 也就没有去查相关原因, 知道的大佬可以在评论区补充.

Windows下直接将编译好的zhmakeindex.exe复制到C:\texlive\2019\bin\win32即可, 在命令行中进入写有索引的文件夹中, 执行

1
zhmakeindex filename

即可生成索引文件 filename.ind.

而在Ubuntu下编译失败后我也尝试用这种方法将zhmakeindex直接复制进/usr/local/texlive/2019/bin/x86_64-linux, 然后执行

1
zhmakeindex filename

但是Ubuntu并不认识这个命令, 在群里交流了一下,

在下载的目录里执行

1
ls -hal

会返回下面的结果

这里贴错图了, 原图也丢了, 意思就是 zhmakeindex 没有执行权限

可以发现zhmakeindex没有执行权限x. 于是执行

1
chmod +x zhmakeindex

zhmakeindex添加执行权限, 在该文件夹下的终端运行

1
zhmakeindex

如果得到以下的输出

zhmakeindex 输出

即表示可以执行, 这时可以选择sudo cp ./zhmakeindex /bin/方便调用, 或者在~/.bashrc~/.zshrc中添加别名后更新

1
alias zhmakeindex="/usr/local/texlive/2019/bin/x86_64-linux/zhmakeindex"

其中/usr/local/texlive/2019/bin/x86_64-linux/为存有改过权限的zhmakeindex文件的目录

然后

1
source ~/.zshrc

即可.

安装MATLAB

MATLAB没有什么好说的, 我的学校提供了教育版的MATLAB, 所以不涉及到破解, 一切按流程走就行, 注意最后填写可使用的用户时的用户名填对.

安装VSCode及配置

该部分可以从博客 Arch Linux 与 Windows 10 的双系统安装与折腾 中看到更详细的插件的说明

可以从官网上下载*.deb文件安装, 或者从Ubuntu软件中安装, 我选择的是后者.

暂时我对VSCode的使用就是作为LaTeX的编辑器, 下载的插件有

  • LaTeX Workshop
  • Markdown All in One
  • Chinese (Simplified) Language Pack for Visual Studio Code

settings.json的内容在这里

另外根据我的packages使用习惯增加了用户代码片段latex.json, 在这里

安装通讯工具wine+qq

由于腾讯最近发布的QQ for Linux2.0体验极差, 还是只能选择wine+QQ!的方式解决, 具体教程可以看撸Linux上的教程, 在我的电脑上没有问题, 可以完美的使用.

输入法fcitx-rime以小鹤音形配置

该部分可以从博客 Arch Linux 与 Windows 10 的双系统安装与折腾 中看到更简单的配置方法, 以下内容已经弃用.

这个东西在我用linux虚拟机的时候就把我折磨地痛不欲生, 网上现存的教程太少了, 只能参考其他教程顺藤摸瓜.

在安装小鹤音形之前, 我曾使用自带的ibus输入法中的双拼简单替代, 使用体验并不是太好, 出现的问题有输入法响应不及时, 以及在部分软件中无法被呼出, 比如TeXStudio, 放弃. 也使用过Sougou中的双拼, 出现的问题有候选区乱码 , 并且尝试了解决办法后依然没有解决, 还有一点不符合我使用习惯: 无法设置在中文输入方式下输入半角符号 , 最终还是选择rime挂接码表, 但是还有一个问题就是最新几版的码表已经被隐藏了, 在小鹤音形网盘中的码表资源较旧, 但也不是不能用, 就凑合一下吧.

  1. 首先下载fcitx-rime
1
sudo apt-get install fcitx-rime
  1. 小鹤音形网盘中下载小鹤音形Rime平台for Linux.zip, 解压后会发现有一个bin文件夹, 还有几个*.yaml文件.
  2. 按照我找到的几乎所有教程都说要把所有文件复制到~/.config/fcitx/rime下, 但是这么做的话在部署的时候报错, 看一下log文件, 里面有为数不多的我能看懂的
1
2
E1021 19:55:48.464576 31050 deployment_tasks.cc:242] source file 'flypyplus.dict.yaml' does not exist.
E1021 19:55:48.492090 31050 deployment_tasks.cc:242] source file 'flypy.dict.yaml' does not exist.

表示rime找不到上面两个文件, 而rime要用这两个文件来生成对应的bin文件来调用, 但是在鹤大提供的包里直接把编译结果bin文件给出来了, 那就是为什么rime找不到这两个文件的问题了. 4. 将bin/文件夹下的所有*.bin文件都拿出来, 放到~/.config/fcitx/rime下, 再进行部署就行了. 5. 也可以在这个文件夹下的flypy_user.txt, flypy_top.txt, flypy_sys.txt来添加自己的编码, 这里就不赘述了.

小飞机

由于某些原因, 这里只贴一个项目链接

配置zsh

因为最近刚学了git, 并且有项目在Github上, 而Ubuntu自带的bash并不显示git的分支等信息, 用起来并不是很顺手, 于是用zsh来美化一下. 安装及配置的教程可以看这里.

尾声

至此我的Ubuntu的配置已经可以满足日常使用, 分配出来的100G空间还剩下25G, 看起来还是不太够用, 不过对于不在Linux下玩游戏来说使用也够了, 就这样吧. 如果有表述错误还请评论区指正