安装 Win10 和 Ubuntu 16.04 双系统

1 安装 Win10 操作系统

如果已经安装了则略过此步骤。

首先将 BIOS 设置为 UEFI 模式,且将 Secure Boot 设为 Enabled,Fast Boot 设为 Enabled。

这里主要有一下几个注意点:

  1. 在安装 Win10 系统时,会自动创建 ESP 分区。安装完成后,可以通过一些工具查看到其中会包含两个文件夹 BootMicrosoft。前者包含了一个 bootx64.efi 文件,后者的 Boot 目录立包含了一个 bootmgrfw.efi 文件,两者内容完全一样(可以通过一些工具检查两者的 CRC , MD5, SHA1 完全一样)。
>   注意:由于两者完全一样,而且我在我的主机上尝试过,如果删除 **bootx64.efi** 文件,无论是硬盘自动启动还是在 BIOS 菜单中选择 Windows boot manager 启动,都可以成功启动 Windows。
>
>   不过,有一些博客上认为,**bootx64.efi** 是 BIOS 必须启动的引导文件,删除了它,则无法成功硬盘自启动。不知道是不是 BIOS 的原因还是其他原因,在我的主机上不存在这种情况。
  1. Windows 激活前,一定要保证时区,时期,时间都正确。如果不行,则刷新 BIOS。

2 安装 Ubuntu 16.04

首先,设置 Fast BootSecure Boot 为 Disabled,并设置以 UEFI 模式启动。

  • Fast Boot 在 Win10 系统里进行关闭,具体为:
    电源选项 > 选择电源按钮的功能 > 更改当前不可用的设置,取消选中启用快速启动(推荐)
  • Secure Boot 和 UEFI 模式 在 BIOS 里进行设置。

在安装 Ubuntu 的时候,需要注意以下几点:

  1. 分区。由于在安装 Win10 时,已经自动建立了 ESP 分区,那么在安装 Ubuntu 的时候,就不需要再建立了。并且,分区列表中会自动显示出这个分区(EFI 标识)。/ 分区只需要分配 30G,交换分区 swap 分配内存的两倍大小,其他的全部划分到 /home 分区。
  2. 启动器安装位置。安装到 EFI 标识对应的分区下即可。
  3. 安装完成后重启。启动时,正常情况下是显示出 Grub 菜单(因为在安装完 Ubuntu 后,会自动将 Ubuntu 的启动器(Grub)放到了 BIOS 的第一个位置,因此硬盘自启动会执行 Ubuntu 启动器的相关程序),而且 Grub 菜单中还包含了 Windows Boot Manager,它是 Win10 的启动器。
  4. 如果启动时,是自启动到 Win10,那么需要先将 BIOS 启动列表里的 Ubuntu 调整至第一个,然后重启。此时,就会自启动到 Ubuntu 了。
  5. 如果自启动到 Ubuntu 后,没有 Windows Boot Manager 选项,那么需要修改 Grub 的配置信息。方法如下:
    sudo vim /etc/default/grub

    GRUB_HIDDEN_TIMEOUT=0 这一行注释掉(也即是在这一行的最前面增加 #),变成这样:
    # GRUB_HIDDEN_TIMEOUT=0

    此外,GRUB_TIMEOUT=10 控制着 grub 菜单的读秒时间,这里是 10 秒,可以根据需要修改成其他值。

    然后再执行:
    sudo update-grub2

    不出意外的话,grub 会找到 Win10 的启动器,然后自动添加它到 grub 的配置文件中,这样重启后就可以在 grub 菜单中看到 Windows Boot Manager了。

    如果重启后还是没有 Windows Boot Manager 菜单,那么需要先确定 ESP 分区的 UUID 是什么。输入以下命令:
    sudo grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
    返回结果:8AA5-3B52
    当然这个 8AA5-3B52 是我的 ESP 分区的 UUID,别的电脑就会变成其他值了。

    然后修改 grub 配置文件:
    sudo gedit /etc/grub.d/40_custom
    在最后面增加:
    menuentry “Windows x86_64 UEFI-GPT” {search --fs-uuid --no-floppy --set=root 8AA5-3B52 chainloader (\${root})/EFI/Microsoft/Boot/bootmgfw.efi}
    需要注意,8AA5-3B52 要修改成你刚才得到的 UUID。

    最后更新 grub:
    sudo update-grub2

3 其他需要注意的地方

通过 UEFI 启动操作系统的过程为:

  • 读取 bootmgfw.efi 或者 grubx64.efi 文件(具体读取哪个,视 BIOS 启动顺序列表中哪个在最前面而定);
  • 读取相关的配置文件,并载入内核到内存。

当安装 Win10 和 Ubuntu 时,操作系统会自动将启动项加入到 BIOS 列表中。对于 Ubuntu,可以通过 efibootmgr 工具来管理 BIOS 列表,也可以直接在 BIOS 里进行管理。

安装 Ubuntu 时,菜单上有三个选项,

1
2
3
1 Try Ubuntu
2 Install Ubuntu
3 ......

如果进入任何一个后一直黑屏,导致的原因是使用 Nvidia, AMD 的显卡,或者有 Optimus, Switchable Graphics 技术的显卡时,Ubuntu 没有合适的驱动,所以不能显示安装界面,会卡在黑屏的地方。解决办法是:
当光标选择 Install Ubuntu 时,按 e,进入启动参数修改界面,把
quiet splash 改为
nomodeset
这样就正常启动安装界面了。

Reference