我目前正在使用双启动设置,其中 Windows 10 和 Linux 直到今天都位于同一个物理驱动器上。我刚刚购买了一个新驱动器,并决定将我的 Windows 分区移动到新驱动器并调整我的 Linux 分区的大小以充分利用旧驱动器的全部空间。我将 EFI、Windows 恢复环境和 Microsoft 保留分区保留在旧硬盘上。
在 Parted Live 中移动 Windows 分区后,我使用 Arch Linux 恢复 USB 并运行arch-chroot
Os Prober 找到了 Windows 引导加载程序,但它发现的似乎是 EFI 分区中的 EFI 存根(?抱歉,术语不太清楚,但我正在努力学习)。因此,GRUB2 似乎工作正常,我能够选择操作系统并且 Arch Linux 正确启动。当我尝试启动 Windows 时,它会出错并尝试修复直到退出。很明显,Windows 的 EFI 条目不知道指向分区的新位置,但我似乎找不到有关如何补救的任何信息。grub-mkconfig
os-prober.
现在,我正在尝试将 efi 和 Microsoft 保留分区从旧磁盘克隆到新磁盘,设置主板固件以启动该磁盘,并查看我可以使用 Windows 10 恢复媒体进行哪些操作。为此,我必须调整 Windows 分区的大小并移动它,以便为要克隆的两个分区腾出空间。附注:尽管 Windows 分区仅使用了大约 120GB,但 GParted 正在移动大约 900GB 的数据,这需要花费大量时间。
是否有人能提供一些可能对处于我这种情况的人有帮助的信息?
编辑:为了透明起见,我也问了这个问题这里
答案1
别慌张,我已经找到这个问题的答案了。希望它不会在众多回复中被遗漏。
对于以后搜索此类内容的任何人,我的解决方案是彻底删除 EFI 分区(通过 parted live 或您最喜欢的救援分区管理器)。从那里,我在第一个驱动器的末尾创建了一个 256mb 的新 fat32 格式的分区,并将其命名为 EFI。一些指南会告诉您此分区必须位于驱动器的开头,但根据 UEFI 规范,情况并非如此。
然后,我启动了 Windows 10 安装 USB。输入命令提示符,并使用一些内置函数生成新的启动文件。我主要遵循了找到的指南这里,但要了解更多详细信息,您可以搜索“如何创建 efi 分区 windows”。
此后,我无法启动 Linux,但使用 Linux 救援 CD 安装和配置双启动功能的引导加载程序的过程很简单,而且有据可查。