UEFI/GPT 模式下使用 rEFInd 引导 Win10 & Linux 双系统的方案

写这篇文章的初衷在于网络上关于 Windows 和 Linux 双系统的安装大多停留在 BIOS/MBR 时代,而现在计算主板主要为 UEFI/GPT 的架构。本文假设读者已经重装过几次 Windows 系统,对计算机基础知识有一定了解,知道如何进入 BIOS,知道如何对硬盘进行分区。如果在阅读本文过程中遇到不太熟悉的概念,请务必先自行搜索并查阅相关资料。本文不提供 Win10 安装方法,以下内容默认用户电脑已安装 Win10 系统。

一、Win10 准备工作

1. 禁用快速启动

“快速启动” 是 Windows 8 时代引进的新特性,快速启动会关闭用户会话,但不再关闭内核会话,而是将其休眠。关机后部分系统数据以低电压加载至内存,开机时直接从内存调用。同时内核、系统相关的模块及部分驱动会被写到磁盘文件中,机箱断电后由硬盘启动,直接将这里的内容写回内存,从而提高系统启动速度。完全休眠包含大量正在由应用程序使用的内存页,相比之下内核会话休眠数据要小得多,这将大大降低写入磁盘所需的时间。建议关闭该特性的原因是,“快速启动” 会影响 Grub 开机引导过程,可能出现无法载入 Ubuntu 的状况。

按如下操作取消快速启动:

电源选项 > 选择电源按钮的功能 > 更改当前不可用的设置 > 关机设置 > [取消勾选] 启用快速启动 > 保存修改

2. 禁用安全启动(Secure Boot)

UEFI 有 “安全启动” 这个特点,引导程序只会启动那些得到 UEFI 固件签署的引导装载程序。此安全功能可以防止 Rootkit 类的恶意软件,并提供了额外的安全层。但它有一个缺点,如果你想在 Win 10 的电脑上双引导 Linux ,安全机制会阻止这样做。这里告诉大家如何在 Win 10 中禁用 UEFI 安全引导,以支持 Linux 的双系统启动。

虽然在 BIOS 时代,访问 BIOS 是相当简单的,在启动的时候按 F10 或 F12 键即可。但是在 UEFI 的世界里,有一些不一样,某些品牌电脑支持类似 BIOS 的访问启动访问键。要访问 UEFI 设置,你也可以通过 Windows 进入 UEFI 设置界面。让我们来看看如何在 Win 10 中访问 UEFI 设置来禁用安全启动。

按如下步骤操作:

开始菜单 > 设置 > 更新和安全 > 恢复 > 高级启动 > 立即重启 > ...重启... > 疑难解答 > 高级选项 > 启动设置/UEFI固件设置 > 重新启动 > 进入UEFI 工具界面(类似BIOS) > Boot(启动选项卡) > Security > Secure Boot(安全引导) > 保存并退出

注意 1:不同品牌电脑 UEFI 界面会有差异

注意 2:安装完双系统,重启后记得进入 BIOS 改回 UEFI Security Boot On 模式,也就是重新开启 Security Boot

3. 硬盘分区

作者本机已有 256G SSD + 8T HDD,其中 SSD 已经装有了 Win10,现在我想分出一部分空间用来装 Ubuntu。因为安装时我手里临时没有 PE 盘,而且 UEFI 也不支持 DISKGENUS 的 DOS 启动模式,所以我用 Win 10 自带分区工具对已有的 Window 系统盘进行分区。不过我建议大家进入 PE 对系统盘进行分区。

为了直观并加深理解,我们先用 DISKGENIUS 查看一下SSD的分区表:

图1 SSD 分区,MSR分区是微软保留分区

上图表示的是我安装 Linux 后的 SSD 硬盘分区表,我们可以看到硬盘从起始柱面开始有个 500MB 的 ESP 分区,它全名叫 EFI system partition,简写为 ESP 。这个分区就是各个操作系统引导文件放置的地方,电脑启动后主板上的 UEFI 模块会读取每个硬盘的第一个 FAT 分区,如果分区内有 EFI 这个文件目录,就根据 EFI 文件目录的引导文件加载各类型的驱动和引导文件,启动系统同时完成自检。如果第一个 FAT 分区没有 EFI 则选第二个,如果第一块盘没有则选第二块盘,以此类推。

ESP 分区里的 EFI 文件夹如下图所示:

图2 EFI 文件夹
图3 启动引导文件

也许有人问,要是把 Ubuntu 安装到非 Windows 系统盘的另外一个盘会怎么样,这取决于你 UEFI 设置中的启动顺序。

二、Linux (以Ubuntu为例) 安装

1. 从 Windows 制作启动U盘

访问 Ubuntu 的 官方下载 页面,选择相应版本。一般而言它的版本有桌面版,服务器版,32位,64位,LTS,非 LTS 之分。所谓 LTS(Long Term Support)指的是长时间支持版本,并不是每一个新版本的 Ubuntu 都是 LTS 版本,譬如,最新的 18.10 版本就不是 LTS 版本,18.04 就是 LTS 版本。一般来说,推荐下载最近的 LTS 版本会得到更好的官方支援,比如 18.04 的64位桌面版(命名方式:ubuntu-18.04.2-desktop-amd64.iso)。如果官方站点的下载速度较慢,你也可以搜索国内的一些镜像网站加速下载过程。譬如 网易镜像

AMD64是64位系统的代号,因为AMD率先开发了64位的技术。现在所有的桌面系统的64位处理器统称为AMD64处理器,无论是intel的还是AMD的,所以下载Ubuntu_AMD64可以在Intel和AMD上同时使用,没有问题的。

现在许多 Linux 发行版的安装说明都推荐使用 Etcher 来制作 USB 启动盘,因为它跨平台而且简单易用。下载并安装好 Etcher 后,你需要做的仅仅是插上 U 盘,选择 Ubuntu 镜像文件,然点击 Flash! 就行了。

2. Ubuntu 安装注意事项

如果电脑支持 UEFI (Win8以上都支持),不需要用工具特意添加启动项,只需要在 Unbutu 分区的时候,将启动引导器设置为 esp 分区(EFI system partition)。当然前提是你安装的 Linux 发行版支持 uefi,这很好辨认,用压缩工具打开 Linux 镜像,里边有一个 efi 的文件夹就是支持。

图4 Ubuntu安装启动引导器
图5 ESP分区挂载

进入 ubuntu 之后在终端输入 df 命令,你会发现 esp 分区被挂载到了 /boot/efi

用 grub2 引导 Windows 容易,但目前网上还找不到用 Windows Boot Manager 来引导 Linux 的方案。其实在 uefi+gpt 模式下,可以在主板中选择系统启动顺序,就像设置U盘光驱启动顺序一样,如果设置 windows boot manager 为第一启动,那么开机时直接进入 windows 系统,就跟只安装了 windows 单系统时一样;如果设置 ubuntu 为第一启动,开机时会进入 grub 菜单界面,可以选择 ubuntu 或 windows 系统。

如果你嫌grub2引导界面太丑,我们还有一个方案:用 rEFind 管理所有启动引导程序。

3. 交换空间大小设置

推荐按照下表设置交换空间大小:

RAM 大小 推荐的交换空间
小于或等于 2GB 2 倍 RAM
2 GB ~ 8 GB 等于 RAM 大小
大于 8GB 8 GB

三、rEFInd 管理启动引导

1. 完整备份EFI文件夹

在 PE 中或者用 DISKGENIUS 打开 ESP 分区,将 EFI 文件夹及内容完整备份到你认为安全的地方。目录结构大致如下:

/efi/boot

/efi/Microsoft

/efi/Unbuntu

/efi/refind

2. 安装 rEFInd

rEFInd官网:http://www.rodsbooks.com/refind/

下载地址:http://www.rodsbooks.com/refind/getting.html

对于大多数 Linux 用户来说, RPM 或 Debian 软件包是最好的选择。但是,如果您的 Linux 系统不支持这些格式,或者如果您运行的是 OS X,那么使用 refind-install 脚本可能是一个好方法。如果您使用 Windows ,则必须手动安装。

Linux 下安装

Linux 下安装 rEFInd 十分简便,只需要一条命令。首先在官网上下载 A binary zip file,完成后将 refind-bin-0.10.8 解压,进入解压出的文件夹,运行下列命令

sudo bash refind-install

然后切换 root 权限进入 /boot/efi/EFI/refind/ ,重命名 refind.conf-samplerefind.conf

Windows 下手动安装

Windows 下的 rEFInd 安装十分繁琐费劲。首先用 DISKGENIUS 为 ESP 指派新的驱动器号,然后进入 ESP 并打开 EFI 文件夹,新建 rEFInd 文件夹,将下载好的 refind.zip 解压,仿照 refind.conf-sample 新建一个 refind.conf 文件。将解压的文件夹和文件逐个放入 ESP 分区中的 efi/rEFInd 文件夹里,值得注意的是通过 DISKGENIUS 拷贝文件夹只能挨个新建。

3. 使用 BOOTICE 工具修改 UEFI 启动序列

根据 Windows 版本选择下载 BOOTICE 工具,打开工具后:

选择 UEFI 选项卡 > 修改启动序列 > 点击添加 > 找到你新建的 rEFInd 文件夹 > 选择 refind_x64.eif (或者 refind_ia32.efi) > 提示成功后修改菜单标题为 rEFInd > 将该 rEFInd 上移到最顶端 > 点击保存当前启动设置 > 关闭工具并重启计算机

4. 修改 rEFInd 配置

配置文件

默认扫描设置会将 Linux 内核以及 Window Boot Manager 显示在引导界面,为了屏蔽这些不需要的启动项,可以如下设置:

    timeout 设置默认时间20s,时间到后进入默认操作系统。 0表示一直等待选择
    screensaver 设置在进入引导前的屏保时间,通常不启用(加#注释掉即可)
    hideui 隐藏界面功能选项,可以隐藏的选项有:
        banner eEFInd标识图 ->自己决定
        label 每个标签的文字描述以及timeout设置的倒数计时器 ->自己决定
        singleuser 苹果系统子菜单中单用户选项 ->不需要显示
        safemode 苹果系统子菜单中安全模式选项 ->不需要显示
        hwtest Mac硬件测试选项 ->不需要显示
        arrows 无法显示所有的引导菜单时的左右指示箭头 ->不需要显示
        hints 基本按键的简要说明 ->自己决定
        editor 选项编辑器 ->自己决定
        or all 隐藏所有选项
    icons_dir 指定自定义图标目录
    resolution 屏幕分辨率
    default_selection 默认进入的系统选项
    include 引导界面美化常用
    dont_scan_dirs, dont_scan_files, dont_scan_volumes 设置引导器过滤那些目录、文件、卷类型(分区)

5. 推荐主题

https://github.com/EvanPurkhiser/rEFInd-minimal

图6 rEFInd-minimal 主题

四、问题与解决方案

用 bootice 修复 MBR 引导问题

  1. 在bootice界面中,首先选择“目标磁盘”,然后再点击“主引导记录(M)”。

  2. 在弹出的窗口中先点击“windows NT5.x/6.x MBR”,后点击“安装/配置”按钮。

  3. 在弹出的窗口中选择对应的类型。(win7的选择Windows NT 6.x,WinXP的选择Windows NT 5.x)

  4. 然后回到bootice主界面,保持目标磁盘不变,这次点击“分区引导记录(P)”

  5. 然后在弹出的窗口中选择要更改的类型,win7用户选择“bootmgr引导程序”。Win xp用户选择“NTLDR引导程序”,选择后点击“安装/配置”。

  6. 这时会弹出“引导文件重命名”窗口,对于里面的内容不做修改,直接点击“确定”就行了。

用 bootice 编辑或修复 BCD 引导

  1. 打开BOOTICE,选择BCD编辑。

  2. 找到C盘里Microsoft文件夹下的Boot文件夹,选择里面的BCD文件。

  3. 选择好之后选择智能编辑模式,只要理解了启动盘和启动分区的概念就能轻松修复 Windows 引导。

五、参考资料:

  1. 如何在 Win8 上禁用 UEFI 安全引导以安装Linux

    https://linux.cn/article-3061-1.html

  2. 硬件大讲堂:MBR和GPT分区表的那些事儿

    http://diy.zol.com.cn/608/6088274.html

  3. 西瓜君教你一步一步安装单硬盘Win8.1+Ubuntu双系统(UEFI篇)

    http://tieba.baidu.com/p/3338849023?red_tag=x0132009230

  4. Ubuntu桌面生存指南 (3) --- 构建Ubuntu系统基础设施

    http://ghosertblog.github.io/blog/2012/10/30/ubuntu-living-handbook-install/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259