使用 Arch Linux 修复双启动的 Windows 10 引导加载程序

使用 Arch Linux 修复双启动的 Windows 10 引导加载程序

我先安装了 Windows 10,然后在同一磁盘的剩余空间中安装了 Arch Linux。然而,在安装过程中,不幸的是,我也删除了mkfsEFI 分区(如所述这里) 尽管由于 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 系统。

相关内容