记一次Ubuntu安装

这两天打算弄个mxnet玩玩,然而事实证明这些个神经网络框架就没有一个对Windows友好的。作为一精神软狗,我果然很快就选择了妥协,那我还是装个Ubuntu用吧。(天知道能捅出这么大篓子)

准备安装

分区

那么先介绍一下我的分区,我从File分区末端挤出来了50GB空间用来装Ubuntu,又从Game末端挤出了5GB空间用来导出Ubuntu安装映像。如果你的分区已经被用烂了,存了很多数据然后零零散散删掉了很多数据,这个时候你去调整分区大小(收缩卷),你会发现尽管你空闲空间很多,但是你只能收缩一点点空间出来。这是文件碎片导致的,大致就等于在磁盘的各个部分都有你文件的部分,如果强行收缩,这部分数据就没了。为了数据安全考虑操作系统一般不会允许你这么做。所以,如果遇到这种情况,可以先去做一次磁盘碎片整理,这里推荐Defraggler,比系统自带的好用得多。

准备好了映像文件之后,打开UltraISO准备导出到分区。结果发现这软件只能导出到可移动驱动器。搜索了一下,发现用EasyBCD可以直接从ISO启动,连导出都不必。似乎很多人都这么做过,都成功了,可以一试。于是:

EasyBCD从ISO文件启动

顺便吐槽一下,最新(2017.10.29)的EasyBCD 2.3在Win10下打不开,只得找了旧的2.2版用。

这里猜一下大致的原理。在点击添加条目之后,EasyBCD会对映像文件进行碎片整理,把零碎的、分布于磁盘各处的文件部分整合起来,然后添加引导条目。它会在EFI分区里创建一个文件(\NST\AutoNeoGrub1.mbr),然后通过那个引导文件从ISO启动。

引★导★大★失★败

很强,然而……

在启动的时候进入Windows Boot Manager,选择新添加的引导条目,却出现了找不到引导文件的错误(0x0000000F)。

哈? ( · A · )?

看来ISO引导还是不能用啊。革命尚未成功,同志仍需努力。于是把ISO文件内容导出到那个5G的小分区,跟着官方教程写了配置文件,保存重启。

EasyBCD从NeoGrub启动

启动之后又是那个错误,这次是找不到\NST\NeoGrub.mbr了。

蛤? ( · A · )???

我给你管理员权限就让你干这个?

回过神来,发现Windows Boot Manager里启动Win10的选项不见了。

不见了!!!

第二天

天知道我干了什么。

没办法,到第二天买了个U盘(好贵)。在另外一台电脑上写了Ubuntu的安装映像把Ubuntu装了,后面那5GB的小空间拿来做了交换分区。又下了个电脑店的Win PE,写进U盘里。我知道挺low的,奈何我还真不知道有什么别的办法…更别说这个还挺好用的。

第一次启动,没问题,但是自带的修复引导的道具只能修复MBR的引导。好吧。

第二次启动,往U盘里拷了个EasyBCD,启动不了,似乎是少了什么组件。仔细一看文件目录:

EasyBCD 2.2安装目录

这个命名风格是不是很熟悉?你个系统实用工具上 个什么.NET啊喂!在EasyBCD 2.3的文件目录下甚至还有NewtonSoft.Json.dll。我都要沉默了。

好吧,EasyBCD不能用。那一瞬间我突然想起了七年前,Ubuntu启动画面前自己落寞的背影。对,还有个东西叫BOOTICE啊。

BOOTICE

这个东西果然够Native,够不可移植,PE下顺利打开了。

进去修改BCD。指定了启动磁盘和分区。启动文件是它的默认值,不然我还真不知道该怎么写。

BOOTICE-修改好的配置

因为装好Ubuntu后,引导默认走的是GRUB2,所以不用担心启动不了Ubuntu。重启,引导成功。Windows复活了。

装个系统这么费劲,难受。( ` A ' )