在双启动 Windows 10 机器上安装 rEFInd

在双启动 Windows 10 机器上安装 rEFInd

我的笔记本电脑上有两个 Windows 10 实例。

当我使用 VisualBCD 检查启动项时,Windows A 的第一个条目是:

这

适用于 Windows B 的版本如下:

这

现在我添加了 2 个条目到重新查找配置文件

    menuentry "Work Station" {
        icon \EFI\refind\themes\icons\os_win.png    
        volume 4:
        loader \Windows\system32\winload.efi
    }
    menuentry "Music Station" {
        icon \EFI\refind\themes\icons\os_unknown.png    
        volume 5:
        loader \Windows\system32\winload.efi
    }

当我重新启动时,我首先进入 rEFInd 引导加载程序。当我选择这两个条目之一时,我收到一条消息,提示启动引导程序无法找到...

我只能通过选择自动找到的条目,返回 Windows 引导加载程序,然后选择 Windows A 或 B 来返回这两个 Windows 实例之一。

我如何才能在不先进入 Windows 引导加载程序的情况下直接启动两个 Windows 实例之一?我就是想不通。我已经使用了 C 或 D 以及菜单项卷部分中卷的 GUID...

答案1

一种方法是拥有 2 个 EFI 分区。

我使用 rEFInd 作为启动管理器 - 这是屏幕截图:

重新索引

如您所见,所选的操作系统是中间的操作系统,并且文本显示Boot Microsoft EFI Boot from ESP这将在 Disk2 分区 4 上启动 Windows。如果我选​​择左边的操作系统,它会说Boot Microsoft EFI Boot from EFI并在 Disk0 分区 3 上启动 Windows(请参阅下面的分区)。

这些是使用自动拾取的重新查找配置文件像这样(Windows 10 的手动节被禁用,因为它总是显示在右侧,我不喜欢这样):

timeout 5
use_nvram false

# UI
hideui hints,arrows,badges
banner themes/colourful/10-6.png
selection_big   themes/colourful/selection_big.png
selection_small themes/colourful/selection_small.png
showtools shell,csr_rotate,apple_recovery,shutdown

# mac stuff
csr_values 10,77
spoof_osx_version 10.9
enable_and_lock_vmx true

# search locations
scanfor internal,external,biosexternal,optical,manual
dont_scan_volumes "RECOVERY","FAT VOLUME","Windows"
#dont_scan_dirs +,EFI:/EFI/Boot,EFI:/EFI/GRUB,C12A7328-F81F-11D2-BA4B-00A0C93EC93B:/EFI/Microsoft
dont_scan_dirs +,EFI:/EFI/Boot,EFI:/EFI/GRUB

menuentry "Windows 10" {
    icon \EFI\refind\myicons\os_win_old.png
    loader \EFI\Microsoft\Boot\bootmgfw.efi
    disabled
}

这些是我的物理分区:

A1398% diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *251.0 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:         Microsoft Reserved                         16.8 MB    disk0s2
   3:       Microsoft Basic Data Windows                 68.2 GB    disk0s3
   4:           Windows Recovery                         1.1 GB     disk0s4
   5:       Microsoft Basic Data Data                    107.4 GB   disk0s5
   6:           Linux Filesystem                         12.9 GB    disk0s6
   7:                 Apple_APFS Container disk1         53.7 GB    disk0s7

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *250.1 GB   disk2
   1:                        EFI ESP                     209.7 MB   disk2s1
   2:                  Apple_HFS SamsungHFS              76.3 GB    disk2s2
   3:                 Apple_APFS Container disk3         50.0 GB    disk2s3
   4:       Microsoft Basic Data SamsungNTFS             85.2 GB    disk2s4
   5:       Microsoft Basic Data exFAT                   26.8 GB    disk2s5
   6:           Linux Filesystem                         10.7 GB    disk2s6

我有 2 个磁盘,ESP卷名称是EFI 分区。卷名并不重要 - 我只是命名了内部卷EFI和外部卷,ESP这样我就能记住区别。

ESP 和 EFI 卷都包含一个目录EFI/Microsoft/Boot,并且都包含 Microsoft 引导加载程序启动管理器并在同一目录中存在 BCD 文件。

rEFInd 调用所选的启动管理器它可以看到 NTFS(因此不需要 rEFInd NTFS 驱动程序)并且查看其自己目录中的 BCD 文件,该文件定义了要运行哪个 Windows 引导加载程序。

EFI 分区

Windows BCD 的每个实例只有一个条目(它自己的),因此在 rEFInd 中选择相关图标会直接启动单独的 Windows 实例,而无需 Windows 引导加载程序询问任何内容。

您可以在msconfigWindows 的启动选项卡上进行设置在每个 Windows 实例中您仅定义一个启动项。

EFI/Microsoft/Boot通过将整个复制到同一磁盘或在同一磁盘上创建第二个 EFI分区,可能仅使用一个 EFI 分区即可复制此行为EFI/Boot,但我还没有尝试过,因为我只希望在连接外部驱动器时第二个 Windows 实例可用。

答案2

我希望你已经搞清楚了安装方法。我想在这里发布我的发现,以便将来寻求真相的人可以参考。

@lx07 的回答很棒。我的情况与他们略有不同(据我所知,和你的情况类似),因为我不是有第二个 WindowsEFI分区。

rEFInd 需要单独的EFI分区来每个您想要列出的操作系统。要EFI为您的第二个 Windows 安装创建新分区,我们需要bcdboot在 Windows 上使用:

在 Windows 上以管理员权限运行diskpart(您也可以使用安装/恢复媒体执行此操作)。我们将使用此程序来管理磁盘上的分区。

如果您有多个磁盘:

list disk
select disk #

#您要添加分区的磁盘号是哪里EFI

然后:

list partition
select partition # 

其中#是安装 Windows 的分区编号。请记住,这应该是没有自己的分区的 Windows 安装EFIEFI在我的情况下,这是我第二个安装的 Windows。通过查看分区的组织方式,您应该能够找出哪个 Windows 没有分区。

然后我们可以缩小这个分区,并创建一个新的EFI分区:

shrink desired = 100
create partition efi size = 100
format quick fs = fat32

为其分配驱动器号S,并记下我们要EFI为其创建的 Windows 分区的驱动器号:

select partition #
assign letter = S
list partition
list volume
exit

其中#是我们新分区的分区号EFI

然后我们可以用来bcdboot制作EFI

bcdboot X:\windows /s S: /f UEFI

X我们的 Windows 安装的驱动器号在哪里。

现在,您应该能够通过EFI在启动菜单中选择正确的选项直接启动第二个 Windows 安装。rEFInd 应该会在加载时自动查找安装,现在应该有两个可启动的 Windows 选项。您可能需要更改启动顺序等。

要让 Windows 启动管理器不出现在您的第一个 Windows 安装中,请在 Windows 上转到System > About > Advanced system settings。转到设置Startup and Recovery并将您的第一个 Windows 安装设置为默认。取消勾选第一个复选框Time to display list of operating systems,它现在应该会跳过启动管理器。

可能有更好的方法来做到这一点(通过重新进行EFI我们的第一个 Windows 安装?)但这对我来说有效,并且除非绝对需要,否则我不想弄乱启动设置。

相关内容