Manjaro 之后,在第二块硬盘上双启动 Windows Server 2016

Manjaro 之后,在第二块硬盘上双启动 Windows Server 2016

背景和目标

我正处于一种不寻常的情况。

我有两个 HDD。UEFI 模式。

sda      8:0    0   1,8T  0 disk 
├─sda1   8:1    0   1,8T  0 part /
├─sda2   8:2    0  15,6G  0 part [SWAP]
└─sda3   8:3    0 500,6M  0 part /boot/efi
sdb      8:16   0 931,5G  0 disk 
├─sdb1   8:17   0   128M  0 part 
└─sdb2   8:18   0 931,4G  0 part 

笔记:sdb将被格式化。

我的第一次HDD是这样的:

  • 谷氨酰胺磷酸酶分区表
  • 重新索引启动管理器(EFI 文件为/boot/efi/EFI/refind/refind_x64.efi并且/boot/efi分区带有sda3标志boot, esp
  • 曼扎罗(基于 ArchLinux)作为操作系统

我想在第二块硬盘上安装 Windows(Server 2016)以实现双重启动。

我怎样才能安全地做到这一点?

神话和传说

我读到一些人说每个驱动器只需要 1 个 ESP,一些人说在一个驱动器上放置 2 个 ESP,而在另一个驱动器上不放置任何 ESP,一些人说在一个驱动器上只保留 1 个 ESP,而在另一个驱动器上不放置任何 ESP。最后一点对我来说似乎更好,但我可能错了。那么我应该保留多少个 ESP 以及在哪里?我在安装 Windows 时可以选择吗,或者 Windows 会自动在其驱动器上安装一个?

我还听到有人建议拔掉 Linux 硬盘,安全的,有人说 Linux 驱动器不再可启动,因为 NVRAM 已被释放,有人说它可以工作,还有人说即使 Linux 驱动器重新插入,计算机也会自动在 Windows 上启动,绕过启动管理器。

何为真,何为假?我需要安全。

回答

我最终设法解决了这个问题(参见答案)。

现在我的磁盘如下:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0   1,8T  0 disk 
├─sda1   8:1    0   1,8T  0 part /
├─sda2   8:2    0  15,6G  0 part [SWAP]
└─sda3   8:3    0 500,6M  0 part /boot/efi
sdb      8:16   0 931,5G  0 disk 
├─sdb1   8:17   0   450M  0 part (Name: Basic data partition, File system: NTFS, Label: Recovery, Flags: hidden, diag)
├─sdb2   8:18   0   100M  0 part (Name: EFI System partition, File system: fat32, Flags: boot, esp) 
├─sdb3   8:19   0    16M  0 part (Name: Microsoft reserved partition, Flags: msftres)
└─sdb4   8:20   0   931G  0 part (Name: Basic data partition, File system: NTFS, Flags: msftdata)

答案1

要安全地双启动两个操作系统:

  1. 我拔掉了 HDD1(带有 Linux)
  2. 我为 Windows 准备了一个 USB 启动媒体(带有Windows USB/DVD 下载工具但手动复制 NTFS 分区上的文件也可以,而 FAT32 不行,因为一个文件有 4.6GB)从另一台电脑上复制
  3. 我在启动时按下主板(Asrock B350 Pro4)启动画面上的 F2 键,进入UEFI 设置菜单
  4. 从那里我检查了快速启动安全启动被禁用
  5. 然后我从 USB 启动介质的 UEFI 启动
  6. 接下来我启动了 Windows 安装设置的第一步
  7. 我按下Left Shift + F10运行cmd.exe
  8. 接下来我diskpart将第二个磁盘(用于 Windows 安装)的分区表从 MBR 转换为 GPT(下面详细介绍了步骤)
  9. 然后我取消了 Windows 的安装并重新启动应用更改
  10. 所以这次我安装了 Windows
  11. 我关闭了电脑
  12. 我重新插上了 HDD1(带有 Linux)
  13. 启动时它会自动在 Windows 上启动(可能是由于我的启动配置或/和 SATA 顺序)
  14. 所以我重新启动了
  15. 我在启动时按下主板启动画面上的 F2 键,转到UEFI 设置菜单
  16. 我改变了不同分区的启动顺序,并将重新索引第一的
  17. 我重启了
  18. 它启动于重新索引这是我最近 3 条记录 + 1 条关于 Windows 的新记录
  19. 我现在可以在 Manjaro 或 Windows 服务器上启动

使用 diskpart 将分区表从 MBR 转换为 GPT

diskpart
list disk (get the number of the disk to convert)
select disk X (replace X with the disk number)
detail disk (display information, check that you selected the right disk)
clean
convert gpt
exit

答案2

我看到你找到了解决方案,这很好;但我想明确回答你的一些问题:

我读到一些人说每个驱动器只需要 1 个 ESP,一些人说在一个驱动器上放置 2 个 ESP,而在另一个驱动器上不放置任何 ESP,一些人说在一个驱动器上只保留 1 个 ESP,而在另一个驱动器上不放置任何 ESP。最后一点对我来说似乎更好,但我可能错了。那么我应该保留多少个 ESP 以及在哪里?

EFI 规范允许任意数量的 ESP,位于任意位置。不过,如果将多个 ESP 放在一个磁盘上,Windows 7(我不知道后续版本)往往会出现混乱,因此我建议不要这样做。ESP 旨在跨操作系统共享,因此这样做应该没问题,但要注意的是因为由于它是共享的,每个操作系统都可能弄乱对方的文件。当然,即使您有单独的 ESP,也可能会发生同样的事情。出于这个原因,我建议您保留 ESP 的备份。

在安装 Windows 期间我是否可以选择,或者 Windows 是否会自动在其驱动器上安装一个?

如果每个磁盘都有自己的 ESP,那么我不清楚 Windows 在多磁盘环境中会使用哪个 ESP 来做什么。

我还听到有人说要拔掉 Linux 硬盘,以确保安全,有人说 Linux 驱动器不再可启动,因为 NVRAM 已被释放,

一些(但不是全部)EFI 会删除指向不存在文件的 NVRAM 条目。因此,按照您的建议(并确实这样做了)拔下磁盘导致丢失启动项。这些很容易恢复如果您知道如何做并做好了准备,但对于缺乏必要技能的大多数人来说,这种丢失可能非常具有挑战性。因此,我建议在安装新操作系统时不要拔下磁盘;但是,遵循我的建议确实会增加因粗心或错误而丢失操作系统的风险,因此我还建议在继续安装新操作系统之前注意并进行备份。

另一些人说它可以工作,还有一些人说即使 Linux 驱动器插回去,计算机也会自动在 Windows 上启动,绕过启动管理器。

Windows 会将自己的启动管理器设置为默认启动管理器,因此即使不拔下 Linux 磁盘,启动到 Windows 的现象也很常见。如果 Linux 条目没有被破坏,您可以使用第三方 Windows 启动管理器调整启动顺序简易UEFI工具。

另一个恢复工具是 rEFInd。如果你把它放在 USB 闪存驱动器或 CD-R 上,该介质可以作为紧急恢复工具 - 插入它,启动它,然后你可以使用磁盘上可用的引导加载程序启动任何东西,然后使用它的工具(就像efibootmgr在 Linux 中一样)添加或重新排序启动条目,甚至完全重新安装引导加载程序。主要的警告是安全启动 - 我在rEFInd 下载页面不支持安全启动。因此,您必须禁用此功能或自行添加安全启动支持,这可能很麻烦。

相关内容