与 Windows 双启动

来自 ArchWiki

本文详细介绍了 Arch/Windows 共存的不同方法。

重要信息

Windows UEFI 与 BIOS 限制

Microsoft 对基于所用 Windows 版本支持的固件启动模式和分区样式施加了限制

注意: 以下几点仅列出 Windows 安装程序 支持的配置,即使 Windows 本身可能仍然在这些不支持的配置上工作。一个很好的例子是 Windows 11,即使绕过 Windows 安装程序的检查,它仍然可以在 BIOS/MBR 配置上工作。
  • Windows 8/8.110 x86 32 位 版本仅支持从 GPT 磁盘以 IA32 UEFI 模式启动,或仅支持从 MBR 磁盘以 BIOS 模式启动。它们不支持从 GPT/MBR 磁盘进行 x86_64 UEFI 启动,从 MBR 磁盘进行 x86_64 UEFI 启动,或从 GPT 磁盘进行 BIOS 启动。市场上,已知仅出厂预装 IA32 (U)EFI 的系统是一些旧款 Intel Mac(2010 年之前的型号?)和 Intel Atom 片上系统 (Clover trail 和 Bay Trail) Windows 平板电脑,它们仅以 IA32 UEFI 模式启动,并且仅从 GPT 磁盘启动。
  • Windows 8/8.110 x86_64 版本仅支持从 GPT 磁盘以 x86_64 UEFI 模式启动,或仅支持从 MBR 磁盘以 BIOS 模式启动。它们不支持 IA32 UEFI 启动,从 MBR 磁盘进行 x86_64 UEFI 启动,或从 GPT 磁盘进行 BIOS 启动。
  • Windows 11 仅支持 x86_64 以及从 GPT 磁盘以 UEFI 模式启动。

对于预装系统

  • 所有预装 Windows XP、Vista 或 7 32 位系统的系统,无论 Service Pack 级别、位数、版本 (SKU) 或固件中是否存在 UEFI 支持,默认情况下都以 BIOS/MBR 模式启动。
  • 大多数预装 Windows 7 x86_64 的系统,无论 Service Pack 级别、位数或版本 (SKU) 如何,默认情况下都以 BIOS/MBR 模式启动。极少数后期预装 Windows 7 的系统已知默认情况下以 x86_64 UEFI/GPT 模式启动。
  • 所有预装 Windows 8/8.1、10 和 11 的系统都以 UEFI/GPT 模式启动。在 Windows 10 之前,固件位数与 Windows 的位数相匹配,即 x86_64 Windows 以 x86_64 UEFI 模式启动,而 32 位 Windows 以 IA32 UEFI 模式启动。

检测 Windows 启动模式的简单方法是执行以下操作[1]

  • 启动进入 Windows
  • Win+R 键启动“运行”对话框
  • 在“运行”对话框中键入 msinfo32 并按 Enter 键
  • 系统信息窗口中,选择左侧的系统摘要,并检查右侧BIOS 模式项的值
  • 如果值为 UEFI,则 Windows 以 UEFI/GPT 模式启动。如果值为 Legacy,则 Windows 以 BIOS/MBR 模式启动。

通常,Windows 根据使用的固件模式强制分区类型,即如果 Windows 以 UEFI 模式启动,则只能安装到 GPT 磁盘。如果 Windows 以 Legacy BIOS 模式启动,则只能安装到 MBR 磁盘。这是 Windows 安装程序强制执行的限制,截至 2014 年 4 月,尚无官方(Microsoft)支持的在 UEFI/MBR 或 BIOS/GPT 配置中安装 Windows 的方法。因此,Windows 仅支持 UEFI/GPT 启动或 BIOS/MBR 配置。

提示: Windows 10 版本 1703 及更高版本支持使用 MBR2GPT.EXE 从 BIOS/MBR 转换为 UEFI/GPT。

Linux 内核没有强制执行此类限制,但这可能取决于使用的引导加载程序和/或引导加载程序的配置方式。如果用户希望从同一磁盘启动 Windows 和 Linux,则应考虑 Windows 的限制,因为引导加载程序的安装过程取决于固件类型和磁盘分区配置。如果 Windows 和 Linux 从同一磁盘双启动,建议遵循 Windows 使用的方法,即选择 UEFI/GPT 启动或 BIOS/MBR 启动。有关更多信息,请参见 https://support.microsoft.com/kb/2581408

引导加载程序 UEFI 与 BIOS 限制

为一种固件类型安装的大多数 Linux 引导加载程序无法启动或链式加载另一种固件类型的引导加载程序。也就是说,如果 Arch 以 UEFI/GPT 或 UEFI/MBR 模式安装在一个磁盘中,而 Windows 以 BIOS/MBR 模式安装在另一个磁盘中,则 Arch 使用的 UEFI 引导加载程序无法链式加载另一个磁盘中 BIOS 安装的 Windows。同样,如果 Arch 以 BIOS/MBR 或 BIOS/GPT 模式安装在一个磁盘中,而 Windows 以 UEFI/GPT 模式安装在另一个磁盘中,则 Arch 使用的 BIOS 引导加载程序无法链式加载另一个磁盘中 UEFI 安装的 Windows。

唯一的例外是 Apple Mac 中的 GRUB,其中 UEFI 模式下的 GRUB 可以通过 appleloader 命令启动 BIOS 安装的操作系统(在非 Apple 系统中不起作用),以及 rEFInd,它在技术上支持从 UEFI 系统启动传统 BIOS 操作系统,但根据其作者 Rod Smith 的说法,在非 Apple UEFI 系统中并非总是有效

但是,如果 Arch 以 BIOS/GPT 模式安装在一个磁盘中,而 Windows 以 BIOS/MBR 模式安装在另一个磁盘中,则如果引导加载程序本身具有从另一个磁盘链式加载的能力,则 Arch 使用的 BIOS 引导加载程序可以启动另一个磁盘中的 Windows。

注意: 要在同一磁盘上与 Windows 双启动,Arch 应遵循 Windows 安装使用的相同固件启动模式和分区组合。

Windows 安装程序 创建一个 100 MiB 的 EFI 系统分区(对于 高级格式 4K 本机驱动器,它会创建一个 300 MiB ESP),因此多个内核的使用受到限制。解决方法包括

  • 将 ESP 挂载到 /efi 并使用具有文件系统驱动程序并能够启动位于其他分区上的内核的引导加载程序
  • 减小 Windows 分区的大小,并将现有 ESP 替换为新的、更大的 ESP
  • 备份并删除 esp/EFI/Microsoft/Boot/Fonts/ 中不需要的字体[2]
  • 备份并删除 esp/EFI/Microsoft/Boot/ 中不需要的语言目录(例如,仅保留 en-US)。
  • 为 initramfs 映像使用更高但更慢的压缩,确保解压缩可加载内核模块和固件。例如
COMPRESSION="xz"
COMPRESSION_OPTIONS=(-9e)
MODULES_DECOMPRESS="yes"

UEFI 安全启动

所有预装 Windows 8/8.1、10 和 11 的系统默认情况下都以 UEFI/GPT 模式启动,并且默认情况下启用了 UEFI 安全启动。这是 Microsoft 对所有 OEM 预装系统的强制要求。

Arch Linux 安装介质尚不支持安全启动。请参阅安全启动#启动安装介质

建议在尝试启动 Arch Linux 之前,在固件设置中手动禁用 UEFI 安全启动。即使禁用安全启动,Windows 8/8.1、10 和 11 也应该继续正常启动。关于禁用 UEFI 安全启动支持的唯一问题是,它需要物理访问系统才能在固件设置中禁用安全启动选项,因为 Microsoft 明确禁止在所有预装 Windows 8/8.1 及更高版本的系统中存在任何远程或以编程方式(从操作系统内部)禁用安全启动的方法

注意
  • 如果 Windows 使用 BitLocker 并将密钥存储在 TPM 中以便在启动时自动解锁,则当禁用安全启动时,它将无法启动,而是显示 BitLocker 恢复屏幕。但这并非永久性的,您只需重新启用安全启动即可轻松再次启动 Windows。
  • 在 Windows 11 上,只要 TPM 正常工作,安装后禁用安全启动不会导致问题。
警告

本文或本节的事实准确性存在争议。

原因

安全启动更改不应影响 BitLocker:问题可能是自签名 Windows 引导加载程序并从引导加载程序链式加载它:只要 Windows 引导加载程序保持使用 MS 密钥签名,并且 Microsoft 证书已注册,就应该没问题。问题是禁用它并启动 Windows,还是禁用、重新启用它然后启动 Windows?第一个是可以理解的,第二个是需要警告的。

(在 Talk:Dual boot with Windows 中讨论)

如果您打算也为 Linux 使用安全启动,则可能需要对安全启动设置进行更改。这些更改会阻止在没有恢复密钥的情况下解锁 BitLocker 磁盘,从而导致永久性数据丢失。在继续操作之前,请检查是否是这种情况,如果尚未完成,请保存您的 BitLocker 恢复密钥。如果 Windows 是由供应商预装的,则这一点尤其重要。

快速启动和休眠

可以休眠两个操作系统,您可以休眠 Windows 并启动 Linux(或其他操作系统),或者您可以休眠 Linux 并启动 Windows,或者休眠两个操作系统。

警告: 如果 Windows 休眠,并且您双启动到另一个操作系统并更改 Windows 和 Linux 都可以读取和写入的文件系统(例如 NTFS)上的文件,并且该文件系统已由 Windows [3] 挂载,则可能发生数据丢失。同样,如果 Linux 休眠,并且您双启动到另一个操作系统等,则可能发生数据丢失。即使您按下关机,Windows 也可能休眠,请参阅#Windows 设置部分。

出于同样的原因,如果您在 Windows 和 Linux 之间共享一个 EFI 系统分区,那么如果您休眠(或启用快速启动关机)Windows,然后启动 Linux,或者休眠 Linux,然后启动 Windows,则 EFI 系统分区可能会损坏。

ntfs-3g 添加了安全保护,以防止对休眠的 NTFS 文件系统进行读写挂载,但 Linux 内核中的 NTFS 驱动程序没有这种安全保护。

默认情况下,Windows 无法读取 Linux 常用的文件系统,例如 ext4。除非您为它们安装 Windows 驱动程序,否则无需考虑这些文件系统。

Windows 设置

快速启动是 Windows 8 及更高版本中的一项功能,它使计算机休眠而不是实际关机,以加快启动时间。

关于快速启动和休眠的 Windows 设置有多种选项,将在接下来的章节中介绍。

  • 禁用快速启动并禁用休眠
  • 禁用快速启动并启用休眠
  • 启用快速启动并启用休眠

有关禁用快速启动的过程,请参阅 Windows 8Windows 10Windows 11 的教程。在任何情况下,如果您禁用某个设置,请确保在安装 Linux 之前禁用该设置然后关闭 Windows;请注意,重新启动是不够的。

禁用快速启动并禁用休眠

这是最安全的选择,如果您不确定问题,建议使用此选项,因为它在从一个操作系统重新启动到另一个操作系统时,需要的用户意识最少。您可以在 Windows 和 Linux 之间共享同一个 EFI 系统分区。

在具有管理员权限的 Windows 命令行 shell 中

> powercfg /H off
禁用快速启动并启用休眠

此选项在从一个操作系统重新启动到另一个操作系统时需要用户意识。如果您想在 Windows 休眠时启动 Linux,这是一个常见的用例,那么

  • 您必须为 Windows 和 Linux 使用单独的 EFI 系统分区 (ESP),并确保 Windows 不会挂载用于 Linux 的 ESP。由于每个驱动器只能有一个 ESP,因此用于 Linux 的 ESP 必须位于与用于 Windows 的 ESP 不同的驱动器上。在这种情况下,如果将 Linux 使用的 ESP 放在与 Linux 根分区不同的驱动器上,Windows 和 Linux 仍然可以安装在同一驱动器的不同分区中。
  • 您不能在 Linux 中读写挂载任何由 Windows 挂载的文件系统,而 Windows 处于休眠状态。您应该对此格外小心,并考虑自动挂载行为。
  • 如果您完全关闭 Windows 而不是休眠,则可以读写挂载文件系统。
注意: 您可以通过在 Windows 中将驱动器挂载为外部驱动器并在休眠之前在 Windows 中弹出驱动器来避免驱动器出现此问题。
启用快速启动并启用休眠

与“禁用快速启动并启用休眠”的情况适用相同的注意事项,但由于 Windows 无法完全关闭,只能休眠,因此您永远无法读写挂载任何在 Windows 休眠时由 Windows 挂载的文件系统。

注意: Windows 更新可能会重新启用快速启动,如 [4][死链接 2024-07-30 ⓘ] 中报告的那样。

Windows 文件名限制

Windows 限制文件路径长度小于 260 个字符

Windows 还出于可以追溯到 DOS 的原因,限制了文件名中的某些字符

  • < (小于号)
  • > (大于号)
  • : (冒号)
  • " (双引号)
  • / (正斜杠)
  • \ (反斜杠)
  • | (竖线或管道符)
  • ? (问号)
  • * (星号)

这些是 Windows 的限制,而不是 NTFS 的限制:任何其他使用 NTFS 分区的操作系统都可以正常工作。Windows 将无法检测到这些文件,并且运行 chkdsk 很可能会导致它们被删除。这可能会导致潜在的数据丢失。

NTFS-3G 通过 windows_names 选项将 Windows 限制应用于新文件名:ntfs-3g(8) § Windows_Filename_Compatibility(参见 fstab)。

安装

设置 Linux/Windows 双启动系统的推荐方法是首先安装 Windows,仅使用磁盘的一部分用于其分区。完成 Windows 设置后,启动进入 Linux 安装环境,您可以在其中为 Linux 创建和调整分区大小,同时保持现有 Windows 分区不变。Windows 安装将创建 EFI 系统分区,您的 Linux 引导加载程序可以使用它。如果您是从头开始安装 Windows,请注意 Windows 安装程序创建的 EFI 系统分区对于大多数用例来说都太小了。请参阅#Windows 安装程序创建的 EFI 系统分区太小

先安装 Windows

BIOS 系统

使用 Linux 引导加载程序

您可以使用任何支持多启动的 BIOS 引导加载程序

使用 Windows Vista/7/8/8.1 引导加载程序

本节介绍如何:在分区上而不是 MBR 上安装 Linux 引导加载程序;将此引导加载程序复制到 Windows 引导加载程序可读取的分区;使用 Windows 引导加载程序启动所述 Linux 引导加载程序的副本。

注意: 一些文档指出 Windows 引导加载程序加载的分区必须是主分区,但已记录使用扩展分区也可以工作。
  • 制作 VBR 的副本
    dd if=/dev/disk of=/path/to/linux.bin bs=512 count=1
    其中 /dev/disk 是安装引导加载程序的分区的路径,/path/to/ 是您希望 Windows 引导加载程序可读取副本的已挂载文件系统。
  • 在 Windows 上,linux.bin 文件现在应该可以访问了。以管理员权限运行 cmd(导航到开始 > 所有程序 > 附件,右键单击命令提示符并选择以管理员身份运行
    bcdedit /create /d "Linux" /application BOOTSECTOR
    BCDEdit 将为此条目返回一个 UUID。这将在后续步骤中称为 UUID
    bcdedit /set UUID device partition=c: (or the drive letter on which linux.bin is kept)
    bcdedit /set UUID path \path\to\linux.bin
    bcdedit /displayorder UUID /addlast
    bcdedit /timeout 30

重新启动后,Windows 和 Linux 现在都应该显示在 Windows 引导加载程序中。

注意: 在某些硬件上,Windows 引导加载程序用于使用第二个电源按钮启动另一个操作系统(例如 Dell Precision M4500)。

有关更多详细信息,请参阅 https://www.iceflatline.com/2009/09/how-to-dual-boot-windows-7-and-linux-using-bcdedit/

UEFI 系统

如果您已经安装了 Windows,它将已经在 GPT 格式化的磁盘上创建了一些分区

  • 一个 Windows 恢复环境 分区,通常大小为 499 MiB,其中包含启动 Windows 所需的文件(即相当于 Linux 的 /boot),
  • 一个 EFI 系统分区,带有 FAT32 文件系统,
  • 一个 Microsoft 保留分区,通常大小为 128 MiB,
  • 一个带有 NTFS 文件系统的 Microsoft 基本数据分区,对应于 C:
  • 可能还有系统恢复和备份分区和/或辅助数据分区(通常对应于 D: 及更高版本)。

使用 Windows 中的“磁盘管理”实用程序,检查分区的标签以及报告的类型。这将帮助您了解哪些分区对于 Windows 至关重要,以及您可以重新利用哪些其他分区。Windows 磁盘管理实用程序还可以用于缩小 Windows (NTFS) 分区,以释放磁盘空间用于 Linux 的其他分区。

警告: 上述列表中的前 4 个分区至关重要,请勿删除它们。

然后,您可以根据需要继续进行分区。引导加载程序需要支持链式加载其他 EFI 应用程序才能双启动 Windows 和 Linux。不应创建额外的 EFI 系统分区,因为它可能阻止 Windows 启动

注意: 这仅在 Linux 安装在第二个硬盘上并且在第二个硬盘上创建了新的 EFI 系统分区时才会出现。

只需挂载现有分区

提示

配备较新版本 Windows 的计算机通常已启用安全启动。您需要采取额外的步骤来禁用安全启动,或使您的安装介质与安全启动兼容(请参阅上面和链接页面)。

先安装 Linux

即使设置 Linux/Windows 双启动系统的推荐方法是首先安装 Windows,但也可以反过来操作。与先安装 Windows 相比,您必须提前为 Windows 预留一个分区,例如 40GB 或更大。或者有一些未分区的磁盘空间,或者在启动 Windows 安装之前,从 Linux 安装中创建和调整 Windows 分区的大小。

UEFI 固件

Windows 将使用已有的 EFI 系统分区。下面是一个概述,假设固件中禁用了安全启动

  1. 启动进入 Windows 安装。注意让它仅使用预期的分区,但在其他方面让它像没有 Linux 安装一样工作。
  2. 按照#快速启动和休眠部分操作。
  3. 修复启动时加载 Linux 的能力,可能通过遵循#安装 Windows 后无法启动 Linux。在#UEFI 系统中已经提到,一些 Linux 启动管理器将自动检测Windows 启动管理器。即使较新的 Windows 安装具有高级重启选项,您可以从中启动进入 Linux,但建议有其他启动进入 Linux 的方法,例如 Arch 安装介质或 Live CD。
带有 GRUB 的 Windows 10

以下假设 GRUB 用作引导加载程序(尽管对于其他引导加载程序,该过程可能类似),并且 Windows 10 将安装在带有现有 EFI 系统分区的 GPT 块设备上(有关更多信息,请参阅 Microsoft 文档中的“系统分区”部分)。

使用块设备上的程序 gdisk 创建以下三个新分区。有关更精确的分区大小,请参阅 [5]

最小大小 代码 名称 文件系统
16 MB 0C01 Microsoft 保留 N/A
~40 GB 0700 Microsoft 基本数据 NTFS
300 MB 2700 Windows RE NTFS

使用软件包 ntfs-3g 中的 mkntfs 程序在新创建的 Microsoft 基本数据分区和 Windows RE(恢复)分区上创建 NTFS 文件系统。

将系统重启进入 Windows 10 安装介质。当提示安装时,选择自定义安装选项,并将 Windows 安装在先前创建的 Microsoft 基本数据分区上。这也应将 Microsoft EFI 文件安装在 EFI 系统分区中。

安装后(无需设置和登录 Windows),重启进入 Linux 并生成 GRUB 配置,以便 Windows 启动管理器在下次启动时在 GRUB 菜单中可用。

故障排除

无法创建新分区或找到现有分区

请参阅#Windows UEFI 与 BIOS 限制

安装 Windows 后无法启动 Linux

请参阅统一可扩展固件接口#Windows 更改启动顺序

恢复 Windows 引导记录

按照惯例(为了便于安装),Windows 通常安装在第一个分区上,并将其分区表及其引导加载程序的引用安装到该分区的第一个扇区。如果您意外地将引导加载程序(如 GRUB)安装到 Windows 分区,或以其他方式损坏了引导记录,您将需要使用实用程序来修复它。Microsoft 在其恢复光盘上,有时在其安装光盘上包含引导扇区修复实用程序 FIXBOOT 和 MBR 修复实用程序 FIXMBR。使用此方法,您可以修复第一个分区的引导扇区上引导加载程序文件的引用,并分别修复 MBR 上对第一个分区的引用。完成此操作后,您将需要重新安装 GRUB 到 MBR,就像最初的意图一样(即,GRUB 引导加载程序可以分配为链式加载 Windows 引导加载程序)。

如果您希望恢复为使用 Windows,可以使用 FIXBOOT 命令,该命令从 MBR 链式加载到第一个分区的引导扇区,以恢复 Windows 操作系统的正常自动加载。

值得注意的是,有一个名为 ms-sys 的 Linux 实用程序(软件包 ms-sysAUR 在 AUR 中),它可以安装 MBR。但是,此实用程序目前仅能够写入新的 MBR(支持所有操作系统和文件系统)以及用于 FAT 文件系统的引导扇区(也称为引导记录;相当于使用 FIXBOOT)。大多数 LiveCD 默认情况下没有此实用程序,因此需要先安装它,或者您可以查看包含它的救援 CD,例如 Parted Magic

首先,再次写入分区信息(表),通过

# ms-sys --partition /dev/sda1

接下来,写入 Windows 2000/XP/2003 MBR

# ms-sys --mbr /dev/sda  # Read options for different versions

然后,写入新的引导扇区(引导记录)

# ms-sys -(1-6)          # Read options to discover the correct FAT record type

ms-sys 也可以写入 Windows 98、ME、Vista 和 7 的 MBR,请参阅 ms-sys -h

恢复意外删除的 EFI 系统分区

如果您有一个 GPT 分区磁盘,并且擦除了(例如,使用 mkfs.fat -F32 /dev/sdxEFI 系统分区,您会注意到Windows 启动管理器将从您的启动选项中消失,或者选择它会将您送回 UEFI。

要解决此问题,请使用 Windows 安装介质启动,按 Shift+F10 打开控制台(或单击下一步 > 修复计算机 > 疑难解答... > 高级 > 命令提示符),然后启动 diskpart 实用程序

X:\Sources> diskpart
DISKPART> list disk

通过键入以下内容选择合适的硬盘驱动器

DISKPART> select disk number

确保存在类型为系统的分区(EFI 系统分区)

DISKPART> list partition

选择此分区

DISKPART> select partition number

并为其分配一个临时驱动器号

DISKPART> assign letter=G:
DiskPart successfully assigned the drive letter or mount point.

为了确保驱动器号被正确分配

DISKPART> list vol
 Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
 ----------  ---  -----------  -----  ----------  -------  ---------  --------
 Volume 0     E                       DVD-ROM         0 B  No Media
 Volume 1     C                NTFS   Partition    195 GB  Healthy    Boot
 Volume 2         WINRE        NTFS   Partition    400 MB  Healthy    Hidden
 Volume 3     G                FAT32  Partition    499 MB  Healthy    System

关闭 diskpart

DISKPART> exit

导航到 C:\(或您的系统驱动器号是什么)

X:\Sources> cd /d C:\

接下来是“魔法”命令,它会重新创建 BCD 存储(/s 用于挂载点,/f 用于固件类型,可选添加 /v 用于详细输出)

C:\> bcdboot C:\Windows /s G: /f UEFI
提示: 如果在一分钟后卡住,请按 Ctrl+c。这种情况有时会发生,但您会收到类似 boot files successfully created 的消息,并且它会工作正常。

现在您应该有Windows 启动管理器作为启动选项工作,从而可以访问 Windows。只需确保永远不要再次格式化您的 EFI 系统分区!

注意: 删除分配给 EFI 系统分区的驱动器号 G,以防止它在我的电脑中显示。

请参阅 [6][7][8]

Windows 安装程序创建的 EFI 系统分区太小

默认情况下,Windows 安装程序 创建一个 100 MiB 的 EFI 系统分区(除了 高级格式 4K 本机驱动器,它会创建一个 300 MiB 的 ESP)。这通常太小,无法容纳您需要的一切。您可以用一个新的、更大的分区替换现有的 EFI 系统分区

如果您是从头开始安装 Windows,您可以在安装期间指定 EFI 系统分区的大小[9]

  1. 选择您的安装目标,并确保它没有分区。
  2. 单击新建按钮,然后单击应用按钮。然后 Windows 安装程序将生成预期的分区(几乎将所有内容分配给其主分区),而仅为 EFI 分配 100MB。
  3. 使用 UI 删除 SystemMSRPrimary 分区。保留 Recovery 分区(如果存在)。
  4. Shift+F10 打开命令提示符。
  5. 键入 diskpart.exe 并按 Enter 键打开磁盘分区工具。
  6. 键入 list disk 并按 Enter 键列出您的磁盘。找到您打算修改的磁盘并记下其磁盘编号。
  7. 键入 select disk disk_number,其中 disk_number 是要修改的磁盘编号。
  8. 键入 create partition efi size=size,其中 size 是 ESP 的所需大小,单位为兆字节 (MiB),然后按 Enter 键。有关推荐大小,请参阅 EFI 系统分区#创建分区 中的注释。
  9. 键入 format quick fs=fat32 label=System 并按 Enter 键格式化 ESP
  10. 键入 exit 并按 Enter 键退出磁盘分区工具,然后再次键入 exit 并按 Enter 键。

Windows 安装完成后,您可以在 Windows 中缩小主分区的大小,然后重新启动并进行通常的 Arch 安装,填充您刚刚创建的空间。

或者,您可以在驱动器上安装 Windows 之前,使用 Arch 安装介质创建一个您首选大小的单个 EFI 系统分区。Windows 安装程序将使用您创建的 EFI 系统分区,而不是创建自己的。

无法在 BIOS 系统上安装 Windows 累积更新

在 BIOS 系统上,Windows 累积更新可能会失败,并显示错误我们无法完成更新。正在撤消更改。请勿关闭计算机。 在这种情况下,在 Windows 中,您需要将Windows 分区设置为活动分区

C:\> diskpart
DISKPART> list disk
DISKPART> select disk number
DISKPART> list partition
DISKPART> select partition number
DISKPART> active
DISKPART> exit

成功安装 Windows 更新后,使用上面的命令将您的 Linux 分区标记回活动分区。

时间标准

  • 推荐:按照 系统时间#Microsoft Windows 中的 UTC,将 Arch Linux 和 Windows 都设置为使用 UTC。如果某些版本的 Windows 设置为在线同步时间,则会将硬件时钟恢复为本地时间。此问题似乎已在 Windows 10 中修复。
  • 不推荐:将 Arch Linux 设置为本地时间并禁用所有时间同步守护程序。这将让 Windows 负责处理硬件时钟校正,您需要记住在 DST 生效时,每年至少启动进入 Windows 两次(在春季和秋季)。因此,如果您通常几天或几周不启动进入 Windows,请不要在论坛上询问为什么时钟慢或快了一个小时。

蓝牙配对

当涉及到将蓝牙设备与 Linux 和 Windows 安装都配对时,两个系统具有相同的 MAC 地址,但会在配对过程中使用不同的链接密钥生成。这会导致设备在与另一个安装配对后无法连接到一个安装。为了允许设备连接到任一安装而无需重新配对,请按照蓝牙#双启动配对进行操作。

另请参阅