Ubuntu 18.04 与 Win10 双系统

早在 Ubuntu 18.04 LTS 正式版发布的时候,就想更新一下系统,体验一下新版本的 Ubuntu。由于原来是使用 Win10 作为常用系统,Ubuntu 16.04 作为开发系统,利用 EasyBCD 进行引导,实现开机选择不同系统。但新版本的 Ubuntu 18.04 却不很好的支持这种方式,当初尝试了很多办法,都没有成功,最后是利用开机进入主板设置通过选择启动硬盘顺序来切换系统。然后在最近一个多月里面,由于一些其他事务的原因,没有太多需要在 Ubuntu 下完成的工作,因此对于这个 Ubuntu 系统启动的问题也就不了了之了。

直到最近,有想法希望将之前做的一个智能家居的原型产品改造,做成一个 IoT 入门科普教程,而由于原来的产品是使用手机蓝牙连接控制的,所以需要在主机上再把程序重写一遍,实现利用 电脑 + 蓝牙 ,使用 python 或者 node 语言,来控制这个产品。

这样就涉及到蓝牙编程的问题了。可能看过我前面文章的朋友都直到,我之前买了一个树莓派3B,那个树莓派是自带蓝牙的,经过一番摸索,我也初步搞明白如何使用树莓派的蓝牙去连接蓝牙设备。但是,我原本的设想是写一套给入门者、或者对 IoT 感兴趣的朋友的教程,如果这个教程需要再买一个新的树莓派,再配合我这个产品,才能学习或者研究,这样可能会将很多原本有意愿的朋友挡在门外。于是,我又想了另外一个方法,可以为电脑添加一个蓝牙适配器(有些使用笔记本的朋友甚至可以不用额外添加),然后使用电脑编程、调式即可。

然而,事情总是没有那么顺利,网上能找到的使用电脑蓝牙编程的资料实在很少,一般常用的无非是 PyBluez ,但比较让人抓狂的是,这一款 python 库只支持 python2.7,新版本的好像支持 python3.3,但我的电脑常用的 Python 是 3.6 版本的,经过一番折腾,然后发现 WIndow 对这个库支持不算太好,尝试了很多的办法都没有太轻松的能完成安装配置。

然后又再查资料,看到比较多的资料关于蓝牙编程的都是使用 Bluez 这个库,然而这个库又只支持 Linux 系统,如果不使用树莓派,那么就必然要回到在电脑上使用 Linux 了,于是修复 Ubuntu 18.04 与 Win10 双系统引导启动又被引到日程上了。

使用 Rufus 将 ISO 文件烧录到 U盘上安装

在 WIndow 系统下,我们可以使用 Rufus 工具来将 ISO 文件烧录到 U盘上安装。有一点需要注意的是,再烧录的时候,Partition scheme 选择 MBD

剩下的就是将 U盘 置入电脑,进入主板设置,调整启动顺序,主要的是 U盘 不要选择 UEFI 模式。

然后在安装的时候,选择手动分区,分区的时候看清楚磁盘。

以我的配置,我有两块 SSD 硬盘,一块安装 Window 系统,另外一块用于安装 Ubuntu,我的分区配置如下:

  • 交换分区 8096M (我的内存是 8GB,一般设置和内存相同就可以)
  • /boot分区 800M (网上一些教程是分 200M,但实际使用过程中很大可能会遇到 /boot 分区占满,然后不能更新,参考 Ubuntu Server 默认的 /boot 是 500M,这里可以设置大一些:800M)
  • /分区 剩下的容量都分配给 / 根目录

然后按一般流程安装完系统即可,这里有一点值得一提,Ubuntu 18.04 可以设置最小化安装,选择了这个,就没有那些多余的软件,当然,Firefox 还是有的,类似我习惯使用 Chrome 的,可以在安装完成后选择卸载。

GRUB2 修复 (重点部分)

接下来,我们来到重点部分了。在这里,之前使用 Ubuntu 16.04 的做法是,进入 WIndow 系统,利用 EasyBCD 创建一个 Ubuntu 的引导,然后就可以在每次开机,进入 WIndow 之前出现一个 蓝色背景的选择界面,然后选择不同的系统即可。

扫描二维码关注公众号,回复: 12471290 查看本文章

但是这一招在 Ubuntu 18.04 却不行。设置完成后,如果选择 Ubuntu 的引导,会出现一个 GRUB 的命令行,引导缺失,不能正常启动。这里,我们就需要修复 GRUB 了。

修复 GRUB 方法

① 使用 Ubuntu 安装 U盘,启动试用模式,也就是所谓的 Live 模式

② 打开终端,添加软件源,安装相关工具包

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

③ 根据界面提示修复即可。这里值得注意的是,我在这里直接选择了 建议 选项,修复完成后,开机会先自动进入 Grub2 选择界面,如果选择 WIndow 系统,才会进入 WIndow 界面,与之前只用 EasyBCD 创建引导的方式不一样。我猜测可能是因为自动修复的原因,这个工具把引导写入了安装 WIndow 硬盘的 MRD 中,关于这点,我没有时间再做验证,如果有兴趣的朋友可以尝试研究一下,或者我如果日后有时间,会再补一个说明。

完成上述步骤后,重启系统,我们将看到 GRUB2 的引导选择界面,这里我们可以选择 WIndow 或者 Ubuntu 系统了。

调整 GRUB 引导启动顺序

默认的 GRUB 是最上面是自动启动 Ubuntu,但如果你像我一样,平常使用 WIndow 可能比较多,希望自动启动的是 WIndow 系统,那么可以通过安装 Grub Customizer 来配置。

具体方法如下:

① 安装 Grub Customizer

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

② 执行 grub-customizer,根据界面提示完成配置

sudo grub-customizer

[附加] 解决 Window 与 Ubuntu 时间不同步问题

安装完 Ubuntu 后,你会发现一个问题,进入 Ubuntu 后再进入 Window 系统,会发现 Window 系统的时间会被修改了。我们可以通过安装 ntpdate 来解决这个问题。

sudo apt-get install ntpdate
sudo hwclock --localtime --systohc