现在我有一个全新的 Arch Linux 安装并正在运行。现在我发现我需要与 Windows 进行双启动 - 这是我过去已经做过的事情,但现在我觉得我陷入困境了。
仅安装了一个 HDD,采用 GPT 方案和以下分区:
上次安装 Windows 时,我制作了精确的分区方案,只需运行安装程序,Arch 的启动管理器就会找到条目并允许我选择一个系统。现在 Windows 10 安装程序的工作方式不同了 - 在选择可用空间后,它会创建一个新的 EFI 分区,而不是找到现有的 EFI 分区并使用它,并出错,提示当前 EFI 分区的格式为 NTFS。我不知道该怎么做,因为我对 Windows 安装程序不太了解,而且似乎没有任何明显的方法可以告诉它要使用哪些分区。
答案1
这听起来好像 Windows 不喜欢当前写入的 FAT32 /dev/sda1
。也许磁盘曾经使用 NTFS,而 Windows 正在寻找一些残余……?根据这个(诚然不太确定的)假设,您可以尝试以下操作:
- 备份 ESP。使用
cp
、zip
、tar
或类似工具进行文件级备份就足够了。 - 卸载 ESP。
- 擦除 ESP完全地用 来清理
dd
,如dd if=/dev/zero of=/dev/sda1
。使用此命令时要非常小心!如果你指定了错误的分区,你将处于深的麻烦! - 在 上创建一个新的 FAT 文件系统
/dev/sda1
,如mkdosfs /dev/sda1
。 - 如果有必要,请
/etc/fstab
使用新文件系统的“UUID”或标签进行更新。 - 键入
mount -a
以重新安装分区,包括 ESP。 - 用于
df /boot
仔细检查 ESP 是否正确安装。 - 将备份复制回新格式化的 ESP。
- 仔细检查您的关键文件(内核和引导加载程序)是否存在。
如果您想确保文件系统是 Windows 可以接受的,您可以使用 Windows 紧急磁盘执行类似操作;但我不知道在 Windows 中执行此操作的具体命令。
我想到的另一种可能性是,Windows 可能有一个错误,导致它因为 ESP 的大小而错误识别您的 ESP。有一段时间,Windows 创建的 ESP 只有 100MB,如果我没记错的话。我认为现在它比这个大,但仍然远远少于您拥有的 1GiB ESP。大概您之所以将它设置为这个大小,是因为您要在那里存储 Linux 内核,这是 Arch 用户的常见做法。因此,这个大小是相当合理的,但如果它是导致 Windows 崩溃,您可能需要删除 ESP 并将其重新创建为两个分区 - 要么创建两个 ESP,一个用于 Windows,一个用于 Arch;要么/boot
为 Arch 创建一个分区,为两个操作系统创建一个 ESP,并将其安装在/boot/efi
Arch 中。就我个人而言,我认为这种解释的可能性远低于 Windows 看到杂散(旧)数据或一些稍微畸形的 FAT 数据结构并崩溃的可能性。毕竟,Windows 可以处理更大的 FAT 数据分区。不过,如果前面提到的重新创建 ESP 不起作用,那么将其拆分成两个分区可能值得一试。
答案2
您需要先安装 Windows 才能实现与 Linux 的双启动。
首先;我会买另一个 HDD/SSD 并在其上正确安装 Windows。
然后;我会在它旁边正确安装任何 Linux 发行版。
完成后,我会取出该驱动器,用原始驱动器替换它,然后将其彻底备份到另一台设备上。
然后,我会用新的驱动器替换原来的驱动器,在“Linux”中启动它,然后将所有文件从备份设备拉到“Linux”的新副本上。
这样,如果您失败了,您将获得更多机会再次尝试而没有风险。