我先安装了 Windows 10,然后在同一磁盘的剩余空间中安装了 Arch Linux。然而,在安装过程中,不幸的是,我也删除了mkfs
EFI 分区(如所述这里) 尽管由于 Windows 10 它已经存在。
目前 Arch Linux 运行良好,但我无法回到 Windows 10。我尝试通过我的以下方式进行链式加载/etc/grub.d/40_custom
:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Windows 10" {
set root='(hd0,4)' // windows is on sda4
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
# chainloader +1
boot
}
输出如下lsblk
:
╰─$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 232,9G 0 disk
├─sda1 8:1 0 450M 0 part // Windows recovery partition
├─sda2 8:2 0 99M 0 part /boot // EFI
├─sda3 8:3 0 16M 0 part // Microsoft reserved partition
├─sda4 8:4 0 107,3G 0 part // Win10
├─sda5 8:5 0 30G 0 part / // Arch
└─sda6 8:6 0 500M 0 part [SWAP]
sdb 8:16 0 465,8G 0 disk
├─sdb1 8:17 0 39,1G 0 part
├─sdb2 8:18 0 1K 0 part
├─sdb5 8:21 0 24,5G 0 part
└─sdb6 8:22 0 402,2G 0 part
sdc 8:32 0 186,3G 0 disk
└─sdc1 8:33 0 186,3G 0 part
sdg 8:96 1 7,4G 0 disk
└─sdg1 8:97 1 7,4G 0 part
sdi 8:128 1 29,7G 0 disk
└─sdi1 8:129 1 29,7G 0 part
sr0 11:0 1 1024M 0 rom
但显然 chainloader 行中的路径和文件不存在,所以Error: file EFI/Microsoft/Boot/bootmgfw.efi not found
在开始时选择 Windows 10 时会给出这个提示。
我正在考虑使用 Windows CD 启动并尝试修复功能或 fixboot/fixmbr,但我想事先了解并确保在执行此操作时不会破坏 Linux 系统。