问题的起源有点长,现象就是现在我的双体系开机能正常呈现发动引导,可是不管选哪个选项都只能进Windows10,无法进已经安装在本机的Fedora Linux了。能确认Fedora是能够正常运转的,我天然就想到在发动引导中增加一个Linux的进口就行了。

需要先明确一些条件常识:

  • 当前双体系是Windows10和Fedora36;
  • 只要一个磁盘
  • 磁盘采用GPT模式 // 只需了解它比传统的MBR模式更强壮更通用就行了

于是在网上查找了一番,找到两种办法:

  1. 用一个叫作EasyBCD软件工具,图形化操作增加一个Linux的引导进口。
  2. 用win10本机自带的BCDEdit指令行工具,手动增加一个引导进口。

办法1确认是不好使的,安装EasyBCD2.4后“增加新条目”居然是灰的,无法操作?!无奈只好运用第二种办法。

第二种办法就需要预先知道fedora体系安装的分区编号、怎样在windows10中查找分区编号、获取这个分区的GUID;一起创立一个引导条目,会得到一个GUID,将这个GUID和咱们已有的fedora分区信息相关起来。

看似简单,但网上windows的信息十分杂乱,好多指令和操作都不起作用,正好经过这篇文章进行一个记载。

查找分区信息

点击win10体系开始菜单,直接输入“cmd”,右键点击“以管理员身份运转”,进行指令行界面;

输入diskpart, 进入类似数据库客户端的指令行界面;

DISKPART> list disk
  磁盘 ###  状态           大小     可用     Dyn  Gpt
  --------  -------------  -------  -------  ---  ---
  磁盘 0    联机              489 GB  1024 KB        *

标明咱们磁盘硬件只要一个,假如刺进U盘就会呈现另一行内容。

DISKPART> select disk 0
磁盘 0 现在是所选磁盘。

挑选磁盘0作为当前磁盘;

然后罗列分区:

DISKPART> list partition
  分区 ###       类型              大小     偏移量
  -------------  ----------------  -------  -------
  分区      1    康复                 499 MB  1024 KB
  分区      2    体系                 100 MB   500 MB
  分区      3    保留                  16 MB   600 MB
  分区      4    首要                  58 GB   616 MB
  分区      5    康复                 604 MB    58 GB
  分区      6    首要                  49 GB    59 GB
  分区      7    首要                  50 GB   109 GB
  分区      8    不知道                4096 MB   159 GB
  分区      9    不知道                 325 GB   163 GB

除了体系的C盘,D盘,E盘,躲藏分区和windows发动分区之外,还包含了fedora的发动分区和体系分区。

想知道哪个是C盘,D盘? 这个成果能够经过“此电脑” -> 右键“管理” -> “磁盘管理” 可视化查看。

DISKPART> select partition 8
分区 8 现在是所选分区。

挑选8分区作为当前分区;咱们需要预先知道哪个分区是linux的发动分区。

DISKPART> detail partition
分区 8
类型    : 0fc63daf-8483-4772-8e79-3d69d8477de4
躲藏  : 是
必需: 否
特点  : 0000000000000000
字节偏移: 171128651776
没有跟这个分区相相关的卷。

经过这个指令咱们知道了分区8的GUID为{0fc63daf-8483-4772-8e79-3d69d8477de4}

创立引导进口

这一部分网上信息特别杂乱,有各种写法,好多底子不好使,为防止误导,直接给出在本机上正确运转的一切指令。

首先点击win10体系开始菜单,直接输入“cmd”,右键点击“以管理员身份运转”,进行指令行界面;然后输入以下指令:

bcdedit /create /d "fedora36" /application BOOTSECTOR
# 指令生产新的进口GUID {84f1af19-d06c-11ed-bef9-0c54157c1bad}
bcdedit /set {84f1af19-d06c-11ed-bef9-0c54157c1bad} device partition=\Device\Harddisk0\Partition8
# 运转成功应当提示“操作完结”。
bcdedit /set {84f1af19-d06c-11ed-bef9-0c54157c1bad} path \EFI\fedora\shimx64.efi
# 运转成功应当提示“操作成功完结。”。
bcdedit /displayorder {84f1af19-d06c-11ed-bef9-0c54157c1bad} /addlast
# 运转成功应当提示“操作成功完结。”。
exit

其中最要害的是第2步操作:让新生成的引导进口和分区相关起来。有很多种写法:bcdedit /set {GUID} device partition=8, bcdedit /set {GUID} device partition=8:,还有的是bcdedit /set {default} device partition=8,不知怎样的用了一个固定引用{default}来表示了新创立的GUID;还有一种是bcdedit /set {GUID} device partition=\Device\HarddiskVolume1,这也不对,Volume只针对像“C盘”这种有盘符的“卷”,而咱们用到的分区是别的一种体系的格局。可是在成果展示的时候却显现的是HarddiskVolume8,不明所以:

bcdedit /enum
实模式发动扇区
---------------------
标识符                  {84f1af1a-d06c-11ed-bef9-0c54157c1bad}
device                  partition=\Device\HarddiskVolume8
path                    \EFI\fedora\shim.efi
description             fedora36

第3步操作中的path选取也要注意。假如安装的是默许的fedora bootloader,用shimx64.efi;假如用GRUB2作为bootloader需要用grubx64.efi

总算成功增加了一个发动进口,可是进入Feodra仍是没成功,真让人溃散!不过这个操作过程将来仍是能够参考的。

在windows中为双系统增加引导启动入口

假如不再需要这个发动进口,再以相同方法在指令行中运转:

bcdedit /delete  {84f1af1a-d06c-11ed-bef9-0c54157c1bad} /cleanup