目录

开启Secure Boot安装Windows和Ubuntu双系统

现在新的电脑硬件基本都采用UEFI(Unified Extensible Firmware Interface)代替了老旧的BIOS。UEFI与BIOS在安装系统上有诸多不同,本文讲述在一台预装了Windows 10的笔记本电脑上安装Ubuntu 18.04的过程。

Secure Boo是UEFI的一项功能,能防止恶意软件感染引导,是很好的安全措施。在开始之前,我也参阅了一些网上文章,有些提到要关闭Secure Boot,其实是没必要的,较新版本的64位Ubuntu已经能很好的兼容Secure Boot了。本文是在开启Secure Boot的情况下操作的。

本文的素材写于2018年10月,硬件是Lenovo Legion Y7000P-1060 2018,由于不同硬件差异较大,即使相同型号不同批次也可能有变化,所以本文内容不一定适合所有情况,仅供参考。

参考链接:

准备工作

机器本身预装了Windows 10 Home,所以,安装Windows的过程就免了。

不过,有些准备工作得在Windows下进行:

  1. 所有硬盘空间已经被Windows占据,通过磁盘管理工具,将现有的Windows分区压缩,空出一块未分配的空间,供接下来的Ubuntu使用;
  2. 如果你打算在Ubuntu下挂载Windows分区,需禁用Windows的快速启动与休眠功能(设置→系统→电源和睡眠→其他电源设置→选择电源按钮的功能)。

安装Ubuntu

用Ubuntu安装CD或U盘引导,进行安装。

要点在磁盘分区步骤,这里只在未分配空间上新建两个分区:交换分区swap和根分区/(小硬盘没必要划分太多分区)。当然,你可以根据需要划分别的分区,但EFI分区是没必要的,因为预装Windows时已经建了一个,而一台机器上只需要一个EFI分区,Ubuntu会自动识别并将其挂载到/boot/efi/。

机器的硬盘设备名是/dev/nvme0n1,相应的,grub2引导程序也安装在/dev/nvme0n1。

下面是安装好后,在Ubuntu系统下看到的最终磁盘分区情况:

$ sudo parted -l /dev/nvme0n1
Model: SAMSUNG MZVLB512HAJQ-000L2 (nvme)
磁盘 /dev/nvme0n1: 512GB
Sector size (logical/physical): 512B/512B
分区表:gpt
Disk Flags: 
 
数字  开始:  End    大小    文件系统        Name                          标志
 1    1049kB  274MB  273MB   fat32           EFI system partition          启动, esp
 2    274MB   290MB  16.8MB                  Microsoft reserved partition  msftres
 3    290MB   380GB  380GB   ntfs            Basic data partition          msftdata
 5    380GB   384GB  4096MB  linux-swap(v1)
 6    384GB   511GB  127GB   ext4
 4    511GB   512GB  1049MB  ntfs            Basic data partition       隐藏分区, diag

分区1是EFI分区,分区3是Windows的C盘,分区5是Ubuntu的swap分区,分区6是Ubuntu的根分区。

安装完成,正常情况下重启会出现菜单,可以选择进入Ubuntu或Windows。

安装后配置

Secure Boot与硬件驱动

由于开启了Secure Boot,所以一些第三方硬件驱动时需要注册才能使用。

比如安装这台机器的NVIDIA显卡驱动:

$ sudo ubuntu-drivers autoinstall

会提示创建一个注册(enrollment)密码,完毕重启系统,根据提示输入刚才的密码后显卡驱动才能被正确加载。所以,Secure Boot是一个很好的功能,不得已情况下不建议关闭它。

提示截图如下:

重启注册驱动的过程没有截图,可以参考这个链接的图片:SecureBoot - Systemtap Wiki,不同产家显示可能有些许差异,但大致步骤是一样的。

系统时间

缺省情况下Ubuntu的系统时间是UTC,而Windows的系统时间是本地时间,这就导致在两个系统间切换时的时钟混乱问题。解决方法就是将两者调整一致,要么修改Windows,要么修改Ubuntu。

这里选择把Ubuntu的时间设置为本地时间:

$ sudo timedatectl set-local-rtc 1

触控板

用过Mac的人都会对它的触控板赞不绝口,如今Windows 10的触控板支持也不错了,在Linux下稍加配置,也可达到相同的效果。

这里使用的方案是Fusuma,其主页有详细说明:https://github.com/iberianpig/fusuma,就不赘述了。